#642537 iceweasel: randomly crashes by receiving from X the following: ABORT: Request 155.34: BadLength #642537
- Package:
- iceweasel
- Source:
- firefox-esr
- Submitter:
- Cengiz Gunay
- Date:
- 2011-10-04 05:51:08 UTC
- Severity:
- important
After having to upgrade iceweasel (because of dependency requirements) to either 5.* or to 6.* it started randomly crashing. It runs for a few minutes and then I receive this error on the console: ###!!! ABORT: Request 155.34: BadLength (poly request too large or internal Xlib length error); 215 requests ago: file /build/buildd-iceweasel_6.0.2-1-i386-0rGvYM/iceweasel-6.0.2/toolkit/xre/nsX11ErrorHandler.cpp, line 199 To make sure it's not the add-ons, I ran it like this: MOZILLA_DISABLE_PLUGINS=1 gdb --args /usr/lib/iceweasel/firefox-bin -g -safe-mode And got the stack trace: (gdb) bt full #0 0xb74d3667 in raise () from /lib/i386-linux-gnu/libc.so.6 No symbol table info available. #1 0xb74d6a52 in abort () from /lib/i386-linux-gnu/libc.so.6 No symbol table info available. #2 0xb773bee7 in mozalloc_abort (msg=0xbfc5c454 "###!!! ABORT: Request 155.34: BadLength (poly request too large or internal Xlib length error); 215 requests ago: file /build/buildd-iceweasel_6.0.2-1-i386-0rGvYM/iceweasel-6.0.2/toolkit/xre/nsX11Erro"...) at /build/buildd-iceweasel_6.0.2-1-i386-0rGvYM/iceweasel-6.0.2/memory/mozalloc/mozalloc_abort.cpp:76 No locals. Die: DW_TAG_unspecified_type (abbrev = 24, offset = 213332010) has children: FALSE attributes: DW_AT_name (DW_FORM_strp) string: "decltype(nullptr)" Dwarf Error: Cannot find type of die [in module /usr/lib/debug/usr/lib/xulrunner-6.0/libxul.so] It's obviously not coming from iceweasel, but I don't have any clue on what package to change to fix this problem. I already upgraded my Xorg packages. I would appreciate if you can give me any insight (I assume it's some package I stupidly forgot to upgrade) Thanks!
Try running iceweasel --sync, it should make X requests synchronously, which would get you a meaning full backtrace. Mike
Ok, it crashed also with --sync and gave a very similar backtrace: Program received signal SIGPIPE, Broken pipe. [Switching to Thread -1312818320 (LWP 19884)] 0xb763013e in send () from /lib/i386-linux-gnu/libpthread.so.0 (gdb) bt full #0 0xb763013e in send () from /lib/i386-linux-gnu/libpthread.so.0 No symbol table info available. #1 0xb7378a53 in PR_GetConnectStatus () from /usr/lib/libnspr4.so.0d No symbol table info available. #2 0xb594ca23 in NSSSSL_VersionCheck () from /usr/lib/i386-linux-gnu/libssl3.so.1d No symbol table info available. #3 0xb593fa2e in SSL_PreencryptedFileToStream () from /usr/lib/i386-linux-gnu/libssl3.so.1d No symbol table info available. #4 0xb5941d33 in SSL_GetStatistics () from /usr/lib/i386-linux-gnu/libssl3.so.1d No symbol table info available. #5 0xb5950ccb in SSL_ResetHandshake () from /usr/lib/i386-linux-gnu/libssl3.so.1d No symbol table info available. #6 0xb595408e in SSL_InheritMPServerSIDCache () from /usr/lib/i386-linux-gnu/libssl3.so.1d No symbol table info available. Die: DW_TAG_unspecified_type (abbrev = 30, offset = 169483515) has children: FALSE attributes: DW_AT_name (DW_FORM_strp) string: "decltype(nullptr)" Dwarf Error: Cannot find type of die [in module /usr/lib/debug/usr/lib/xulrunner-6.0/libxul.so]
SIGPIPE is actually not a crash, but gdb happens to stop when seeing those. Either "continue" execution or type the following gdb command before starting: handle SIGPIPE nostop noprint pass Mike
I used the "handle" command for SIGPIPE and iceweasel ran a long time this time. But eventually after 30 minutes, it crashed, taking down gdb with it! Although, I was able to load the core file it generated, and here is the stack trace: $ gdb /usr/lib/iceweasel/firefox-bin core ... Program terminated with signal 5, Trace/breakpoint trap. #0 0xb76d8a81 in __nptl_create_event () from /lib/i386-linux-gnu/libpthread.so.0 (gdb) set pagination off (gdb) bt full #0 0xb76d8a81 in __nptl_create_event () from /lib/i386-linux-gnu/libpthread.so.0 No symbol table info available. #1 0xb76da1b6 in pthread_create@@GLIBC_2.1 () from /lib/i386-linux-gnu/libpthread.so.0 No symbol table info available. #2 0xb742c709 in PR_JoinThread () from /usr/lib/libnspr4.so.0d No symbol table info available. Die: DW_TAG_unspecified_type (abbrev = 27, offset = 212961860) has children: FALSE attributes: DW_AT_name (DW_FORM_strp) string: "decltype(nullptr)" Dwarf Error: Cannot find type of die [in module /usr/lib/debug/usr/lib/xulrunner-6.0/libxul.so] GDB loaded a lot of symbol information, but the thread library doesn't seem to have any (I didn't see a -dbg package for pthread?). From the looks of it, can this be a race condition with the newly starting threads?
That really doesn't look remotely related to your initial problem. Mike
2011/9/27 Mike Hommey <mh@glandium.org> But it still crashes? Anything else you want me to try? Should this go upstream? BTW, I still get the X error when running it outside of gdb.
I hadn't notices, but that wasn't a crash either. It was a trace/breakpoint trap. Unless you can get a meaningful backtrace for it, there's not much we can do. Mike
2011/9/29 Mike Hommey <mh@glandium.org>: Well, it is crashing gdb while I'm debugging it. Is there a way of preventing this?
Apart from trying a different version of gdb, no idea. Mike