** Description changed:

- When lastest 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.
+ [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'
-       
+  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'
-       
+  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'
-       
+  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'
+  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'

** Description changed:

  [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
+  => 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.
+ 
+ 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'

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

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

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

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to