Apache2 で mod_fcgid を使用して Trac 0.11 を実行しているときに発生する次の例外を修正しようとしています:
Unhandled exception in thread started by <bound method Connection.run of <trac.web._fcgi.Connection object at 0x88b5fec>>
Traceback (most recent call last):
File "/usr/lib/python2.6/dist-packages/trac/web/_fcgi.py", line 661, in run
except socket.error, e:
AttributeError: 'NoneType' object has no attribute 'error'
_fcgi.py の関連するブロックを次のようにロックするように変更しました。
def run(self):
"""Begin processing data from the socket."""
self._keepGoing = True
while self._keepGoing:
try:
self.process_input()
except EOFError:
break
except socket.error, e:
if e[0] == errno.EBADF:
break
raise
except select.error, e:
if e[0] == errno.EBADF: # Socket was closed by Request.
break
raise
self._cleanupSocket()
例外の原因となっている行はexcept socket.error, e:
. Pydocs を読むと、「socket」はクラスであり、「error」という名前のメンバーが存在するはずですが、なぜこの例外が発生するのでしょうか?
私は通常、C または Java をコーディングしていて、Python で何かをしたことがありません。誰かが私を啓発できますか? :)
ありがとう、
オオヤマネコ