Uploaded image for project: 'Qpid Proton'
  1. Qpid Proton
  2. PROTON-2776

Exception in IOHandler.on_selectable_expired/update after wakeup from sleep

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • python-binding
    • Fedora GNU/Linux, python binding 0.38.0

    Description

      This occasionally happens after my laptop wakes up from overnight sleep.

      IOHandler.on_selectable_expired() is invoked with selectable that has
      _terminated=True and _transport=None so when IOHandler.update()
      is called it crashes when trying to handle the exception
      (since transport is None):

      Traceback (most recent call last):
      File "/path/.venv/lib/python3.7/site-packages/proton/_handlers.py", line 1293, in update
      capacity = transport.capacity()
      AttributeError: 'NoneType' object has no attribute 'capacity'
      During handling of the above exception, another exception occurred:
      Traceback (most recent call last):
      File "/path/my-project.py", line 285, in run
      self.container.run()
      File "/path/.venv/lib/python3.7/site-packages/proton/_reactor.py", line 197, in run
      while self.process():
      File "/path/.venv/lib/python3.7/site-packages/proton/_reactor.py", line 262, in process
      event.dispatch(self._global_handler)
      File "/path/.venv/lib/python3.7/site-packages/proton/_events.py", line 158, in dispatch
      _dispatch(handler, type.method, self)
      File "/path/.venv/lib/python3.7/site-packages/proton/_events.py", line 131, in _dispatch
      handler.on_unhandled(method, *args)
      File "/path/.venv/lib/python3.7/site-packages/proton/_reactor.py", line 905, in on_unhandled
      event.dispatch(self.base)
      File "/path/.venv/lib/python3.7/site-packages/proton/_events.py", line 158, in dispatch
      _dispatch(handler, type.method, self)
      File "/path/.venv/lib/python3.7/site-packages/proton/_events.py", line 129, in _dispatch
      m(*args)
      File "/path/.venv/lib/python3.7/site-packages/proton/_handlers.py", line 1237, in on_selectable_expired
      self.update(t, s, r.now)
      File "/path/.venv/lib/python3.7/site-packages/proton/_handlers.py", line 1296, in update
      if transport.closed:
      AttributeError: 'NoneType' object has no attribute 'closed'
      

      I have proposed a fix at https://github.com/apache/qpid-proton/pull/364.

      Attachments

        Activity

          People

            Unassigned Unassigned
            jmennius Ievgen Popovych
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: