[Twisted-Python] self.channel.writeHeaders(version, code, reason, headers)\nbuiltins.AttributeError: \'NoneType\' object has no attribute \'writeHeaders\'\

Waqar Khan wk80333 at gmail.com
Sun Aug 4 18:57:10 MDT 2019


Hi Glyph,
  Thanks for the suggestion.
I tried the suggestion.. While it fixes the self.channel NoneType issue..
It creates another issue.

Traceback (most recent call last):
  File
"/usr/local/Cellar/python/3.7.1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/asyncio/events.py",
line 88, in _run
    self._context.run(self._callback, *self._args)
  File "/usr/local/lib/python3.7/site-packages/twisted/internet/defer.py",
line 827, in adapt
    adapt.actual.callback(extracted)
  File "/usr/local/lib/python3.7/site-packages/twisted/internet/defer.py",
line 460, in callback
    self._startRunCallbacks(result)
  File "/usr/local/lib/python3.7/site-packages/twisted/internet/defer.py",
line 568, in _startRunCallbacks
    self._runCallbacks()
--- <exception caught here> ---
  File "/usr/local/lib/python3.7/site-packages/twisted/internet/defer.py",
line 654, in _runCallbacks
    current.result = callback(current.result, *args, **kw)
......
    request.finish()
  File "/usr/local/lib/python3.7/site-packages/twisted/web/server.py", line
268, in finish
    return http.Request.finish(self)
  File "/usr/local/lib/python3.7/site-packages/twisted/web/http.py", line
1071, in finish
    "Request.finish called on a request after its connection was lost; "
builtins.RuntimeError: Request.finish called on a request after its
connection was lost; use Request.notifyFinish to keep track of this.


 I have got some handle on the issue. I was wondering if you have any
advise on how to debug the issue.
Somewhere in the codebase are async/await code (from asyncio world). Hence,
when the connection is closed down by client, seems like those pending
coroutines are lingering on.

def connectionLost(self, channel, reason):

    t =  asyncio.all_tasks(asyncio.get_event_loop())

    print("pending tasks ", len(t))

The above does shows the list of pending tasks.  I am wondering if you have
any advice on how to kill these coroutines?
Also, I apologize if this is the wrong community to ask and if I should
post it to asyncio community?
Thanks for all the help.
Regards,
Waqar





On Sat, Aug 3, 2019 at 3:56 PM Glyph <glyph at twistedmatrix.com> wrote:

>
>
> On Aug 2, 2019, at 4:31 PM, Waqar Khan <wk80333 at gmail.com> wrote:
>
> Hi,
>   I have a twisted server. And I have been seeing this annoying issue.
> Normally. when i develop and test it out. everything is fine..
> But then I try to loadtest is via https://locust.io/
>
> Again, everything is fine.. until I "stop" the test.
> Then, I see this
> 'Traceback (most recent call last):\n  File
> "/usr/local/Cellar/python/3.7.1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/asyncio/events.py",
> line 88, in _run\n    self._context.run(self._callback, *self._args)\n
>  File "/usr/local/lib/python3.7/site-packages/twisted/internet/defer.py",
> line 827, in adapt\n    adapt.actual.callback(extracted)\n  File
> "/usr/local/lib/python3.7/site-packages/twisted/internet/defer.py", line
> 460, in callback\n    self._startRunCallbacks(result)\n  File
> "/usr/local/lib/python3.7/site-packages/twisted/internet/defer.py", line
> 568, in _startRunCallbacks\n    self._runCallbacks()\n--- <exception caught
> here> ---\n  File
> "/usr/local/lib/python3.7/site-packages/twisted/internet/defer.py", line
> 654, in _runCallbacks\n    current.result = callback(current.result, *args,
> **kw)\n  File
> ....
>  File "/usr/local/lib/python3.7/site-packages/twisted/web/server.py", line
> 238, in write\n    http.Request.write(self, data)\n  File
> "/usr/local/lib/python3.7/site-packages/twisted/web/http.py", line 1118, in
> write\n    self.channel.writeHeaders(version, code, reason,
> headers)\nbuiltins.AttributeError: \'NoneType\' object has no attribute
> \'writeHeaders\'\n'
>
>
> I found this similar bug report:
> https://github.com/buildbot/buildbot/issues/4045
> But I am using 19.2.1 twisted version..
>
>
> There is a prerelease version, with this bug fixed, that is awaiting final
> release upload right now; can you try with Twisted==19.7.0rc1 ?  That
> should fix this issue.  If not, then we have some investigating to do :-).
>
> -g
>
> -g
> _______________________________________________
> Twisted-Python mailing list
> Twisted-Python at twistedmatrix.com
> https://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/twisted-python/attachments/20190804/444ec03e/attachment-0002.html>


More information about the Twisted-Python mailing list