[Bug 1741913] Re: [master] Twisted seems to not handle disconnect from client correctly

Lee Trager 1741913 at bugs.launchpad.net
Fri Oct 30 22:14:21 UTC 2020


** Changed in: maas
       Status: Fix Committed => Fix Released

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to twisted in Ubuntu.
https://bugs.launchpad.net/bugs/1741913

Title:
  [master] Twisted seems to not handle disconnect from client correctly

Status in MAAS:
  Fix Released
Status in twisted package in Ubuntu:
  Confirmed

Bug description:
  [Impact]

  Web http/wsgi doesn't fail gracefully when the client closes the
  connection, causing 'Traceback' in MAAS /var/log/maas/rackd.log as
  follows:

  ....
     File "/usr/lib/python3/dist-packages/twisted/python/failure.py", line 385, in raiseException
       raise self.value.with_traceback(self.tb)
   builtins.AttributeError: 'NoneType' object has no attribute 'writeHeaders'
  ....
     File "/usr/lib/python3/dist-packages/twisted/web/http.py", line 1474, in loseConnection
       self.channel.loseConnection()
   builtins.AttributeError: 'NoneType' object has no attribute 'loseConnection'
  ....

  [Test Case]

  [Regression Potential]

  [Other Information]

  * Upstream bug:
  https://twistedmatrix.com/trac/ticket/9410

  * Upstream fix:
  https://github.com/twisted/twisted/commit/169fd1d93b7af06bf0f6893b193ce19970881868

  # git describe --contains 169fd1d93b
  twisted-19.7.0~20^2~13

  # rmadison
   => python3-twisted | 17.9.0-2ubuntu0.1 | bionic-updates | all
   => python3-twisted | 18.9.0-11 | focal | all
   => python3-twisted | 18.9.0-11 | groovy | all

  [Original Description]

  When latest master just moving around the UI caused a wierd
  stacktrace. It didn't seem to affect the experience of using MAAS, but
  needs to be looked into.

  2018-01-08 15:33:45 -: [critical] WSGI application error
   Traceback (most recent call last):
     File "/usr/lib/python3/dist-packages/twisted/python/context.py", line 122, in callWithContext
       return self.currentContext().callWithContext(ctx, func, *args, **kw)
     File "/usr/lib/python3/dist-packages/twisted/python/context.py", line 87, in callWithContext
       self.contexts.pop()
     File "/usr/lib/python3/dist-packages/provisioningserver/utils/twisted.py", line 875, in callInContext
       return func(*args, **kwargs)
     File "/usr/lib/python3/dist-packages/twisted/web/wsgi.py", line 522, in run
       self.started = True
   --- <exception caught here> ---
     File "/usr/lib/python3/dist-packages/twisted/web/wsgi.py", line 500, in run
       self.write(elem)
     File "/usr/lib/python3/dist-packages/twisted/web/wsgi.py", line 455, in write
       self.reactor, wsgiWrite, self.started)
     File "/usr/lib/python3/dist-packages/twisted/internet/threads.py", line 122, in blockingCallFromThread
       result.raiseException()
     File "/usr/lib/python3/dist-packages/twisted/python/failure.py", line 385, in raiseException
       raise self.value.with_traceback(self.tb)
   builtins.AttributeError: 'NoneType' object has no attribute 'writeHeaders'

  2018-01-08 15:33:45 -: [critical] WSGI application error
   Traceback (most recent call last):
     File "/usr/lib/python3/dist-packages/twisted/python/context.py", line 122, in callWithContext
       return self.currentContext().callWithContext(ctx, func, *args, **kw)
     File "/usr/lib/python3/dist-packages/twisted/python/context.py", line 87, in callWithContext
       self.contexts.pop()
     File "/usr/lib/python3/dist-packages/provisioningserver/utils/twisted.py", line 875, in callInContext
       return func(*args, **kwargs)
     File "/usr/lib/python3/dist-packages/twisted/web/wsgi.py", line 522, in run
       self.started = True
   --- <exception caught here> ---
     File "/usr/lib/python3/dist-packages/twisted/web/wsgi.py", line 500, in run
       self.write(elem)
     File "/usr/lib/python3/dist-packages/twisted/web/wsgi.py", line 455, in write
       self.reactor, wsgiWrite, self.started)
     File "/usr/lib/python3/dist-packages/twisted/internet/threads.py", line 122, in blockingCallFromThread
       result.raiseException()
     File "/usr/lib/python3/dist-packages/twisted/python/failure.py", line 385, in raiseException
       raise self.value.with_traceback(self.tb)
   builtins.AttributeError: 'NoneType' object has no attribute 'writeHeaders'

  2018-01-08 15:33:45 -: [critical] Unhandled Error
   Traceback (most recent call last):
     File "/usr/lib/python3/dist-packages/twisted/application/app.py", line 396, in startReactor
       self.config, oldstdout, oldstderr, self.profiler, reactor)
     File "/usr/lib/python3/dist-packages/twisted/application/app.py", line 311, in runReactorWithLogging
       reactor.run()
     File "/usr/lib/python3/dist-packages/twisted/internet/base.py", line 1243, in run
       self.mainLoop()
     File "/usr/lib/python3/dist-packages/twisted/internet/base.py", line 1252, in mainLoop
       self.runUntilCurrent()
   --- <exception caught here> ---
     File "/usr/lib/python3/dist-packages/twisted/internet/base.py", line 851, in runUntilCurrent
       f(*a, **kw)
     File "/usr/lib/python3/dist-packages/twisted/web/wsgi.py", line 510, in wsgiError
       self.request.loseConnection()
     File "/usr/lib/python3/dist-packages/twisted/web/http.py", line 1474, in loseConnection
       self.channel.loseConnection()
   builtins.AttributeError: 'NoneType' object has no attribute 'loseConnection'

  2018-01-08 15:33:45 -: [critical] Unhandled Error
   Traceback (most recent call last):
     File "/usr/lib/python3/dist-packages/twisted/application/app.py", line 396, in startReactor
       self.config, oldstdout, oldstderr, self.profiler, reactor)
     File "/usr/lib/python3/dist-packages/twisted/application/app.py", line 311, in runReactorWithLogging
       reactor.run()
     File "/usr/lib/python3/dist-packages/twisted/internet/base.py", line 1243, in run
       self.mainLoop()
     File "/usr/lib/python3/dist-packages/twisted/internet/base.py", line 1252, in mainLoop
       self.runUntilCurrent()
   --- <exception caught here> ---
     File "/usr/lib/python3/dist-packages/twisted/internet/base.py", line 851, in runUntilCurrent
       f(*a, **kw)
     File "/usr/lib/python3/dist-packages/twisted/web/wsgi.py", line 510, in wsgiError
       self.request.loseConnection()
     File "/usr/lib/python3/dist-packages/twisted/web/http.py", line 1474, in loseConnection
       self.channel.loseConnection()
   builtins.AttributeError: 'NoneType' object has no attribute 'loseConnection'

To manage notifications about this bug go to:
https://bugs.launchpad.net/maas/+bug/1741913/+subscriptions



More information about the foundations-bugs mailing list