Skip to content

events framework should be made asynchronous

Not sure why, but app it's blocking on event registration until I hit ctrl-c. This might be a stalled socket in my box, but surfaces the blocking problem behind the events framework. It also explains some delays I've been observing in the app initialization from time to time.

Should move events to twisted domain.

2013-06-20 08:57:00,755 - leap - INFO - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2013-06-20 08:57:00,756 - leap - INFO - LEAP client version 0.2.1-133-g5a24038-dirty
2013-06-20 08:57:00,759 - leap - INFO - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2013-06-20 08:57:00,759 - leap - INFO - Starting app
2013-06-20 08:57:00,912 - leap - DEBUG - Qt4 reactor installed
2013-06-20 08:57:00,914 - leap.common.events.component - DEBUG - ensure component daemon
2013-06-20 08:57:00,915 - leap.common.events.daemon - INFO - Running server on port 0.
2013-06-20 08:57:01,016 - leap.common.events.component - INFO - Sending registration request to server on port 8090: event: UPDATER_NEW_UPDATES
port: 42269
m
^CTraceback (most recent call last):
  File "app.py", line 169, in 
    main()
  File "app.py", line 153, in main
    bypass_checks=bypass_checks)
  File "/home/kali/leap/leap_client/src/leap/gui/mainwindow.py", line 115, in __init__
    callback=self._new_updates_available)
  File "/home/kali/Virtualenvs/leap-client/local/lib/python2.7/site-packages/leap/common/events/__init__.py", line 67, in register
    return component.register(signal, callback, uid, replace, reqcbk, timeout)
  File "/home/kali/Virtualenvs/leap-client/local/lib/python2.7/site-packages/leap/common/events/component.py", line 141, in register
    return service.register(request, callback=reqcbk, timeout=timeout)
  File "/home/kali/Virtualenvs/leap-client/local/lib/python2.7/site-packages/protobuf.socketrpc-1.3.2-py2.7.egg/protobuf/socketrpc/service.py", line 114, in 
    timeout, callback)
  File "/home/kali/Virtualenvs/leap-client/local/lib/python2.7/site-packages/protobuf.socketrpc-1.3.2-py2.7.egg/protobuf/socketrpc/service.py", line 194, in call
    rpc_thread.join(timeout)
  File "/usr/lib/python2.7/threading.py", line 958, in join
    self.__block.wait(delay)
  File "/usr/lib/python2.7/threading.py", line 358, in wait
    _sleep(delay)
KeyboardInterrupt
Exception in thread Thread-1 (most likely raised during interpreter shutdown):
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 808, in __bootstrap_inner
  File "/home/kali/Virtualenvs/leap-client/local/lib/python2.7/site-packages/leap/common/events/daemon.py", line 190, in run
  File "/home/kali/Virtualenvs/leap-client/local/lib/python2.7/site-packages/leap/common/events/daemon.py", line 73, in run
  File "/usr/lib/python2.7/SocketServer.py", line 235, in serve_forever
: 'NoneType' object has no attribute 'select'
(leap-client)

(from redmine: created on 2013-06-19, closed on 2013-07-25)