2016-04-26 7 views
0

エキスパート。centos 7.2 python 2.7.5 WSGIServerがキーファイル引数を配信できません

私はsslを使ってpythonサーバーを作っています。 したがって、gevent.pywsgi.WSGIServerを使用しています。 しかし、私がkeyfile ..を配信しようとすると、それは_ssl.cに配信されません。これは、Python用のcライブラリです。

私のコードは以下の通りです。..

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

は確かに、キーファイルは、適切な値を持っています。しかし、これはキーファイルargumnetのために、その関数のPyString_Checkに_ssl.cのコードで

load_cert_chain_args

に達したときには、セグメンテーションフォールトを作ります。 (/Python-2.7.5/Module/_ssl.c + 2695行を確認できます)。

私がload_cert_chain_argsのキーファイルargを確認すると、私はこのログを見ることができます。

=(リモート0xd231d4では不明)キーファイル=キーファイルの@エントリ

が、私は、このメモリの値を確認します。

X/sの0xd231d4L:メモリにキーファイルについての適切な値がありますが..私はなぜこのメイク分からない

「正しい文字列がここにあります」。

これはpagetableの問題です..多分私はgdbを使用してキーファイルの値を見ることができません。

しかし_ssl.cのload_cert_chainがSegmemtation 障害(PyString_Check(キーファイル))を行う理由を私は知りません。

私はメモリ内の値を見ることができますが、gdbがリモートログで未知のままである理由はわかりません。

私はCentOS 7でPython 2.7.5を使用しており、python-gevent 1.0-2.el7を使用しています。

Thx。

+0

gdbでprintコマンドを使用してキーファイルが表示される場合私は "print keyfile => $ 1 = <未知のリモート(mem addr)>のようには見えません。なぜそれがpagetableの問題なら、x/sコマンドを使うのは不可能だと思います。 – Levi

答えて

0

最後に私は答えを見つけます。 PythonのCモジュールを_ssl.cしないPyObject純粋な文字列を送達

iはCentOSの7.2にインストールされているのPython 2.7.5-34を用い、

私の問題を解決するために、以下のリンクは本当に役に立ちます。

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

ありがとう!

関連する問題