2016-04-26 4 views
0

экспертов.centos 7.2 python 2.7.5 WSGIServer не может доставить аргумент ключа ключа

Я делаю сервер python с помощью ssl. Итак, я использую gevent.pywsgi.WSGIServer. Но когда я пытаюсь доставить keyfile .., который не доставляет _ssl.c, который является библиотекой c для python.

Мой код ниже ..

rack.append(WSGIServer(('', conf.ssl_port), application, backlog=2500, 
        keyfile=conf.keyfile, certfile=conf.certfile)) 

Конечно, файл_ключа имеет правильные значения. но когда это будет достигнуто в коде _ssl.c в

load_cert_chain_args

на этой функцию в PyString_Check для argumnet делает ключевой файл ошибку сегментации. (Вы можете подтвердить строку /Python-2.7.5/Module/_ssl.c + 2695).

когда я подтверждаю файл key_ load_cert_chain_args, я могу видеть этот журнал.

файл_ключа = файл_ключа @ запись = (неизвестно на удаленном 0xd231d4)

, но когда я подтвердить значение этой памяти в.

х/s 0xd231d4L: «правильная строка находится здесь»

Я не знаю, почему это делают .. хотя в памяти есть соответствующее значение около файл_ключа.

если это pagetable проблема .. возможно, я не вижу значение keyfile с помощью gdb.

, но я не знаю, почему _ssl.c в load_cert_chain делает Segmemtation ошибку (PyString_Check() ключевого файла).

и я не знаю, хотя я могу видеть значение в памяти, почему gdb остается неизвестным в удаленном журнале.

Я использую Python 2.7.5 на Centos 7 и используя python-gevent 1.0-2.el7).

Thx.

+0

и если я вижу ключевой файл, используя команду print на gdb ..Я не вижу, как «print keyfile => $ 1 = . Почему? Если это проблема с pagetable, я думаю, что это невозможно увидеть с помощью команды x/s ... – Levi

ответ

0

Наконец-то я нахожу ответ.

, когда я использовал Python 2.7.5-34, который установлен в CentOS 7.2,

, которые обеспечивают чистую строку не как PyObject в _ssl.c питона с модулем.

для решения моей проблемы, ниже ссылки действительно полезны.

https://github.com/gevent/gevent/issues/702

Спасибо!