FS#49560 - [lib32-libxcb] 1.12 breaks zsnes and others

Attached to Project: Community Packages
Opened by Pablo Lezaeta (Jristz) - Friday, 03 June 2016, 22:10 GMT
Last edited by Laurent Carlier (lordheavy) - Tuesday, 07 June 2016, 09:45 GMT
Task Type Bug Report
Category Packages: Multilib
Status Closed
Assigned To Laurent Carlier (lordheavy)
Felix Yan (felixonmars)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 19
Private No


I try to run zsnes with lib32-libxcb 1.12 but not even start, I tryied debugin the issue and all come to libxcb, the newer version libxcb now work with zsnes.

I'm reading in mailist that this is something that is happening with many software not rebuild in a few years like adobe-reader.

Additional info:
* zsnes 1.51 default config, first run
* lib32-libxcb 1.12

Steps to reproduce:
try run zsnes with lib32-libxcb 1.12 and see it not start
try run zsnes with lib32-libxcv 1.11.1 and work frawlesly

I think that libxcb has changed something internally or added a bug.
This task depends upon

Closed by  Laurent Carlier (lordheavy)
Tuesday, 07 June 2016, 09:45 GMT
Reason for closing:  Fixed
Additional comments about closing:  ib32-libxcb-1.12-2 built with -O1
Comment by Pablo Lezaeta (Jristz) - Saturday, 04 June 2016, 01:30 GMT
rebuild zsnes have no effect, libxcd is the culprit, maybe an undocumented change
Comment by georg (fordprefect) - Saturday, 04 June 2016, 18:31 GMT
breaking acroread and other 32bit software as well.
for acroread, no rebuild is possible.
Comment by Ronan (ronjouch) - Saturday, 04 June 2016, 18:52 GMT
Hi. Version 1.12 breaks teamviewer too, see comment section of https://aur.archlinux.org/packages/teamviewer/
Comment by georg (fordprefect) - Saturday, 04 June 2016, 18:54 GMT
i tried to send a mail explaining the problem to the xcb mailinglist but it didnt come through yet. either stuck in moderation or lost somewhere.
on their irc channel nobody was responding yesterday and today.
Comment by Pablo Lezaeta (Jristz) - Sunday, 05 June 2016, 00:04 GMT
Maybe the changelog of 1.12 could point to something closest to what happened, any other distro having 1.12 so far?

A temporal alternative is just keep 1.11.1 for now.
Comment by georg (fordprefect) - Sunday, 05 June 2016, 11:10 GMT
message got through, they asked for more usable info.
sent refined stack trace to xcbs mailinglist (see thread [0]).
could you provide stack traces of other affected software using the debug-build of lib32-libxcb (pre-built version [1])?

[0] https://lists.freedesktop.org/archives/xcb/2016-June/010795.html
[1] https://dukun.de/lib32-libxcb-1.12-1-x86_64.pkg.tar.xz
Comment by Ronan (ronjouch) - Sunday, 05 June 2016, 14:25 GMT
@georg thanks for packaging this debug build!

Attached is what I could get from the core dump, but I'm new to this and I see complaints about missing symbols that I don't know what to do with; if there's more to extract with some configuration, please help.
Comment by georg (fordprefect) - Sunday, 05 June 2016, 14:32 GMT
@ronan: i dont know too much about this either, but seeing failures in ?? () makes me guess that the function the crash occurs in was not identified. we'll see if this helps. thank you for helping!
Comment by itzexor (itzexor) - Monday, 06 June 2016, 08:24 GMT
there are some additional reports in this thread: https://bbs.archlinux.org/viewtopic.php?id=213238
Comment by Lukáš Mandák (LukeRichese) - Monday, 06 June 2016, 11:33 GMT
Reporting from forum thread.
I had no luck witch getting any usefull information from wine but I was able to reproduce this bug with the RadeonSSDGuru utility.
It comes in 32 and 64 bit versions. 64 bit works fine with 1.12-1, 32 bit crashes on startup when using 1.12-1 but works with 1.11-1.

Attached stack trace when using lib32-libxcb prebuild by @georg.
Comment by mirh (mirh) - Monday, 06 June 2016, 19:42 GMT
Also happen with Steam (system runtime) and fglrx driver.
   dumps.zip (60.9 KiB)
Comment by Patrick Smits (PS0) - Tuesday, 07 June 2016, 06:24 GMT
Building this library with optimization level 1 (-O1) seems to solve the problem.
Comment by Ilya Lipnitskiy (lipnitsk) - Tuesday, 07 June 2016, 06:36 GMT
I am experiencing similar crashes with a proprietary 32-bit binary that uses libxcb. I have noticed that rebuilding libxcb with the '-g' or '-O1' GCC option fixes the problem for me, which is unfortunate. I have a feeling that these crashes may be related to the recent switch to GCC 6, maybe some UB or an optimizer issue with -O2?

As a temporary workaround, applying disable_O2.patch to the PKGBUILD fixed the crash for me. Maybe we should rebuild this package with that change until the issue is resolved if this fixes the problem for others?
Comment by Laurent Carlier (lordheavy) - Tuesday, 07 June 2016, 07:40 GMT
I've pushed lib32-libxcb-1.12-2 with O1 in CFLAGS as a workaround
Comment by georg (fordprefect) - Tuesday, 07 June 2016, 07:47 GMT
i can confirm this works for acroread.
Comment by Phillip Schichtel (pschichtel) - Tuesday, 07 June 2016, 08:33 GMT
I can confirm this for TeamViewer as well