Skype Pidgin Plugin
Posted 08-01-2008 at 12:57 PM by Vermind
As some might know,
there is a plugin to use a running Skype instance through Pidgin. Unfortunately using Skype through Pidgin on my Ubuntu 8.04 causes Pidgin to crash sometimes, with a
Bug entry here.
I read that this could be worked around with the
environment variable, but the same issue still occurred even with it.
Found a workaround: compiling libX11 without XCB. XCB is a lightweight replacement for the core of libX11, or Xlib, functionality. However, to allow multithreaded use of the X library, libX11 had a locking mechanism. They used a libX11-specifc locking mechanism in XCB and the for the XCB-based libX11, and it was not foolproof, and allowed deadlocks. This might be what my crash originated from.
The new, yet unreleased version of XCB and XCB/libX11 has a socket handoff mechanism that should remove the deadlock situations in certain cases. However, since it's not released, Ubuntu is not making use of it yet. Therefore, my current workaround is using libX11 without XCB at all, as opposed to the Ubuntu Hardy default libX11 which has XCB. Unfortunately, compiz requires XCB (unless compiled without it, which fails with 'alphasort' is missing), so I am trading off compiz and in stability in Pidgin.
there is a plugin to use a running Skype instance through Pidgin. Unfortunately using Skype through Pidgin on my Ubuntu 8.04 causes Pidgin to crash sometimes, with a
Code:
pidgin: ../../src/xcb_lock.c:77: _XGetXCBBuffer: Assertion `((int) ((xcb_req) - (dpy->request)) >= 0)' failed.
I read that this could be worked around with the
Code:
LIBXCB_ALLOW_SLOPPY_LOCK=1
Found a workaround: compiling libX11 without XCB. XCB is a lightweight replacement for the core of libX11, or Xlib, functionality. However, to allow multithreaded use of the X library, libX11 had a locking mechanism. They used a libX11-specifc locking mechanism in XCB and the for the XCB-based libX11, and it was not foolproof, and allowed deadlocks. This might be what my crash originated from.
The new, yet unreleased version of XCB and XCB/libX11 has a socket handoff mechanism that should remove the deadlock situations in certain cases. However, since it's not released, Ubuntu is not making use of it yet. Therefore, my current workaround is using libX11 without XCB at all, as opposed to the Ubuntu Hardy default libX11 which has XCB. Unfortunately, compiz requires XCB (unless compiled without it, which fails with 'alphasort' is missing), so I am trading off compiz and in stability in Pidgin.