2
J'ai écrit un proxy HTTP Twisted Python et je continue d'obtenir le Traceback suivant après avoir navigué vers une page via le proxy.Aide de Twisted Web Proxy!
Traceback (most recent call last):
File "C:\ZBrownTechnology\Web Lock\Proxy.py", line 57, in <module>
reactor.run()
File "C:\Python26\lib\site-packages\twisted\internet\base.py", line 1165, in run
self.mainLoop()
File "C:\Python26\lib\site-packages\twisted\internet\base.py", line 1177, in mainLoop
self.doIteration(t)
File "C:\Python26\lib\site-packages\twisted\internet\selectreactor.py", line 140, in doSelect
_logrun(selectable, _drdw, selectable, method, dict)
--- <exception caught here> ---
File "C:\Python26\lib\site-packages\twisted\python\log.py", line 84, in callWithLogger
return callWithContext({"system": lp}, func, *args, **kw)
File "C:\Python26\lib\site-packages\twisted\python\log.py", line 69, in callWithContext
return context.call({ILogContext: newCtx}, func, *args, **kw)
File "C:\Python26\lib\site-packages\twisted\python\context.py", line 59, in ca
llWithContext
return self.currentContext().callWithContext(ctx, func, *args, **kw)
File "C:\Python26\lib\site-packages\twisted\python\context.py", line 37, in callWithContext
return func(*args,**kw)
File "C:\Python26\lib\site-packages\twisted\internet\selectreactor.py", line 156, in _doReadOrWrite
self._disconnectSelectable(selectable, why, method=="doRead")
File "C:\Python26\lib\site-packages\twisted\internet\posixbase.py", line 250,
in _disconnectSelectable
selectable.readConnectionLost(f)
File "C:\Python26\lib\site-packages\twisted\internet\tcp.py", line 508, in readConnectionLost
self.connectionLost(reason)
File "C:\Python26\lib\site-packages\twisted\internet\tcp.py", line 677, in connectionLost
Connection.connectionLost(self, reason)
File "C:\Python26\lib\site-packages\twisted\internet\tcp.py", line 519, in connectionLost
protocol.connectionLost(reason)
File "C:\Python26\lib\site-packages\twisted\web\http.py", line 489, in connectionLost
self.handleResponseEnd()
File "C:\Python26\lib\site-packages\twisted\web\proxy.py", line 88, in handleResponseEnd
self.father.finish()
File "C:\Python26\lib\site-packages\twisted\web\http.py", line 900, in finish
"Request.finish called on a request after its connection was lost; "
exceptions.RuntimeError: Request.finish called on a request after its connection
was lost; use Request.notifyFinish to keep track of this.
Qu'est-ce que cela signifie? Comment je le répare? Est-ce un problème de module ou un problème dans mon code? Je suis sur Windows XP en utilisant Python 2.6
Et il n'y a aucun moyen, actuellement, de le faire taire? J'ai besoin du proxy pour fonctionner dans le backgraound, mais si des erreurs sont survenues, il les affichera. Maintenant, il aussi, une fois qu'il commence à afficher cette erreur, donner une erreur de navigateur aux utilisateurs utilisant le proxy. Internet Explorer ne peut pas afficher la page internet. Est-ce une partie du bug? Connaissez-vous une meilleure façon d'écrire un proxy? –
J'ai été capable de trouver un patch temporaire pour ce bug si quelqu'un était intéressé. Je viens de commenter la ligne de code dans le module qui soulève l'erreur. Ça fonctionne parfaitement maintenant! –
Cela ne résout pas le bug, il en introduit un autre :). Mais s'il vous plaît continuez la discussion sur le bug que JP a lié au tracker. – Glyph