[tor-bugs] #33945 [Circumvention/BridgeDB]: Failed assertion breaks BridgeDB's email responder

Tor Bug Tracker & Wiki blackhole at torproject.org
Tue Apr 21 00:29:12 UTC 2020


#33945: Failed assertion breaks BridgeDB's email responder
----------------------------------------+-----------------------
     Reporter:  phw                     |      Owner:  phw
         Type:  defect                  |     Status:  assigned
     Priority:  High                    |  Milestone:
    Component:  Circumvention/BridgeDB  |    Version:
     Severity:  Normal                  |   Keywords:  s30-o22a3
Actual Points:                          |  Parent ID:  #31279
       Points:  2                       |   Reviewer:
      Sponsor:  Sponsor30-can           |
----------------------------------------+-----------------------
 BridgeDB's email responder stops working after a while. The issue is
 probably related to the exception below but I don't know how exactly. As
 part of our Python 3 port, we
 [https://gitweb.torproject.org/bridgedb.git/commit/?id=c1a48d1b568b00fab19a308e6497881f31d17680
 modifed the context manager], which may be a good place to start
 debugging.

 {{{
 Unhandled Error
 Traceback (most recent call last):
   File "/home/bridgedb/virtualenvs/bridgedb/lib/python3.7/site-
 packages/twisted/python/log.py", line 103, in callWithLogger
     return callWithContext({"system": lp}, func, *args, **kw)
   File "/home/bridgedb/virtualenvs/bridgedb/lib/python3.7/site-
 packages/twisted/python/log.py", line 86, in callWithContext
     return context.call({ILogContext: newCtx}, func, *args, **kw)
   File "/home/bridgedb/virtualenvs/bridgedb/lib/python3.7/site-
 packages/twisted/python/context.py", line 122, in callWithContext
     return self.currentContext().callWithContext(ctx, func, *args, **kw)
   File "/home/bridgedb/virtualenvs/bridgedb/lib/python3.7/site-
 packages/twisted/python/context.py", line 85, in callWithContext
     return func(*args,**kw)
 --- <exception caught here> ---
   File "/home/bridgedb/virtualenvs/bridgedb/lib/python3.7/site-
 packages/twisted/internet/posixbase.py", line 614, in _doReadOrWrite
     why = selectable.doRead()
   File "/home/bridgedb/virtualenvs/bridgedb/lib/python3.7/site-
 packages/twisted/internet/tcp.py", line 243, in doRead
     return self._dataReceived(data)
   File "/home/bridgedb/virtualenvs/bridgedb/lib/python3.7/site-
 packages/twisted/internet/tcp.py", line 249, in _dataReceived
     rval = self.protocol.dataReceived(data)
   File "/home/bridgedb/virtualenvs/bridgedb/lib/python3.7/site-
 packages/twisted/protocols/basic.py", line 454, in dataReceived
     self.lineReceived(line)
   File "/home/bridgedb/virtualenvs/bridgedb/lib/python3.7/site-
 packages/twisted/mail/smtp.py", line 445, in lineReceived
     return getattr(self, 'state_' + self.mode)(line)
   File "/home/bridgedb/virtualenvs/bridgedb/lib/python3.7/site-
 packages/twisted/mail/smtp.py", line 705, in dataLineReceived
     m.eomReceived() for m in self.__messages
   File "/home/bridgedb/virtualenvs/bridgedb/lib/python3.7/site-
 packages/twisted/mail/smtp.py", line 705, in <listcomp>
     m.eomReceived() for m in self.__messages
   File "/home/bridgedb/virtualenvs/bridgedb/lib/python3.7/site-
 packages/bridgedb-0.10.0+11.g4cdd6a61.dirty-
 py3.7.egg/bridgedb/distributors/email/server.py", line 230, in eomReceived
     self.responder.reply()
   File "/home/bridgedb/virtualenvs/bridgedb/lib/python3.7/site-
 packages/bridgedb-0.10.0+11.g4cdd6a61.dirty-
 py3.7.egg/bridgedb/distributors/email/autoresponder.py", line 574, in
 reply
     response = self.getMailData()
   File "/home/bridgedb/virtualenvs/bridgedb/lib/python3.7/site-
 packages/bridgedb-0.10.0+11.g4cdd6a61.dirty-
 py3.7.egg/bridgedb/distributors/email/autoresponder.py", line 392, in
 getMailData
     client, lang)
   File "/home/bridgedb/virtualenvs/bridgedb/lib/python3.7/site-
 packages/bridgedb-0.10.0+11.g4cdd6a61.dirty-
 py3.7.egg/bridgedb/distributors/email/autoresponder.py", line 101, in
 createResponseBody
     bridges = context.distributor.getBridges(bridgeRequest, interval)
   File "/home/bridgedb/virtualenvs/bridgedb/lib/python3.7/site-
 packages/bridgedb-0.10.0+11.g4cdd6a61.dirty-
 py3.7.egg/bridgedb/distributors/email/distributor.py", line 145, in
 getBridges
     with bridgedb.Storage.getDB() as db:
   File "/home/bridgedb/virtualenvs/bridgedb/lib/python3.7/site-
 packages/bridgedb-0.10.0+11.g4cdd6a61.dirty-
 py3.7.egg/bridgedb/Storage.py", line 352, in __enter__
     return next(self.gen)
   File "/home/bridgedb/virtualenvs/bridgedb/lib/python3.7/site-
 packages/bridgedb-0.10.0+11.g4cdd6a61.dirty-
 py3.7.egg/bridgedb/Storage.py", line 472, in getDB
     assert _REFCOUNT == 0
 builtins.AssertionError:
 }}}

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/33945>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list