Package: python-x2go
Severity: grave
Control: forwarded -1 https://bugs.x2go.org/1016


Forwarding X2Go upstream bug #1016:
 https://bugs.x2go.org/1016

```
I'm using x2go python bindings, and noticed that X2GoSession's .suspend() can
break with gevent 1.1. I've downgraded gevent to 1.0.2 and unchanged code
works fine with it.

 Sample code (i believe taken from a sample code):


 class Client(X2GoClient):
    def do_connect(self):
        ...
        sid = self.register_session(server=session_args.pop('server', None),
                                    username=session_args.pop('username',
None),
profile_name=session_args.pop('profile_name',
None),
                                    port=session_args.pop('port', None),
                                    return_object=True)
        sid.update_params(session_args)
        sid.connect()
        self.clean_sessions(sid.uuid)
        sid.start(cmd='XFCE')

        session_name = sid.get_session_name()
        if session_name is None:
            log.error("X2Go session creation: Session name is None,
terminating")
            return
        sid.suspend()
        ...


 Traceback:


  File "/usr/lib/python2.7/dist-packages/x2go/session.py", line 2303, in
suspend
    self._lock.release()
  File "gevent/_semaphore.py", line 266, in
gevent._semaphore.BoundedSemaphore.release (gevent/gevent._semaphore.c:4866)
  File "gevent/_semaphore.py", line 268, in
gevent._semaphore.BoundedSemaphore.release (gevent/gevent._semaphore.c:4802)
thread.error: Semaphore released too many times
```

The issue is actually quite severe as gevent threads in applications using python-x2go bail out and stop working once that exception is raised.

Mike

--

DAS-NETZWERKTEAM
mike gabriel, herweg 7, 24357 fleckeby
mobile: +49 (1520) 1976 148
landline: +49 (4354) 8390 139

GnuPG Fingerprint: 9BFB AEE8 6C0A A5FF BF22  0782 9AF4 6B30 2577 1B31
mail: mike.gabr...@das-netzwerkteam.de, http://das-netzwerkteam.de

Attachment: pgp84BPqqB7ll.pgp
Description: Digitale PGP-Signatur

Reply via email to