# firefox crashes due to cairo ?

## toralf

Starting with version 40.x (or 39.x ???) sometimes firefox silently crashes - till now I could not catch a core dump or so.

But within .xsession-errors I found this :

```
firefox: /var/tmp/portage/x11-libs/cairo-1.14.2/work/cairo-1.14.2/src/cairo-pattern.c:187: _cairo_pattern_set_error: Assertion `status < CAIRO_STATUS_LAST_STATUS' failed.
```

Any hints how to get a useful trace (currently I'm re-emerging x11-libs/cairo with USE flag splitdebug) ?

----------

## Hu

If you keep gdb attached to Firefox, then when Firefox crashes, gdb will interrupt the process and you can collect a core and/or backtrace then.  However, if Firefox raises spurious signals during normal operation, you may need to tell gdb to ignore them.

----------

## charles17

See also topic 7801326 and bug 551850.

----------

## toralf

Hhm, probably I hit a different issue here - ff was frozen - xkill helped :

```
(gdb) bt full

#0  0x000003fff7bcd357 in __libc_send (fd=79, buf=buf@entry=0x3ffba39e000, n=n@entry=31, flags=flags@entry=0) at ../sysdeps/unix/sysv/linux/x86_64/send.c:31

        resultvar = <optimized out>

        oldtype = 0

        result = <optimized out>

#1  0x000003fff1119756 in pt_Send (fd=0x3ff806f1c70, buf=0x3ffba39e000, amount=31, flags=0, timeout=0) at /var/tmp/portage/dev-libs/nspr-4.10.8/work/nspr-4.10.8/nspr/pr/src/pthreads/ptio.c:1914

        syserrno = <optimized out>

        bytes = -1

        fNeedContinue = 0

#2  0x000003fff0cb80cc in ssl_DefSend (ss=ss@entry=0x3ff7fcbf000, buf=0x3ffba39e000 "\025\003\003", len=31, flags=flags@entry=0) at ssldef.c:94

        rv = <optimized out>

        lower = 0x3ff806f1c70

        sent = 0

#3  0x000003fff0ca952d in ssl3_SendRecord (ss=ss@entry=0x3ff7fcbf000, epoch=epoch@entry=0, type=type@entry=content_alert, pIn=0x3ffe1679b32 "\350\275\377\003", pIn@entry=0x3ffe1679b30 "\001", nIn=0, 

    nIn@entry=2, flags=flags@entry=0) at ssl3con.c:2964

        sent = <optimized out>

        contentLen = 2

        spaceNeeded = <optimized out>

        numRecords = <optimized out>

        wrBuf = 0x3ff7fcbf0a0

        rv = <optimized out>

        totalSent = 0

        capRecordVersion = 0

#4  0x000003fff0ca9aaa in SSL3_SendAlert (ss=ss@entry=0x3ff7fcbf000, level=level@entry=alert_warning, desc=desc@entry=close_notify) at ssl3con.c:3255

        sent = <optimized out>

        bytes = "\001"

        rv = SECSuccess

#5  0x000003fff0cbdb76 in ssl_SecureClose (ss=0x3ff7fcbf000) at sslsecur.c:1144

No locals.

#6  0x000003fff4b7fc2f in ?? () from /usr/lib64/firefox/libxul.so

No symbol table info available.

#7  0x000003fff4b7fc9d in ?? () from /usr/lib64/firefox/libxul.so

No symbol table info available.

#8  0x000003fff2c3bb49 in ?? () from /usr/lib64/firefox/libxul.so

No symbol table info available.

#9  0x000003fff2c3c1d1 in ?? () from /usr/lib64/firefox/libxul.so

No symbol table info available.

#10 0x000003fff2c3d2ef in ?? () from /usr/lib64/firefox/libxul.so

No symbol table info available.

#11 0x000003fff2c3dfd9 in ?? () from /usr/lib64/firefox/libxul.so

No symbol table info available.

#12 0x000003fff2c48c29 in ?? () from /usr/lib64/firefox/libxul.so

No symbol table info available.

#13 0x000003fff2baee89 in ?? () from /usr/lib64/firefox/libxul.so

No symbol table info available.

#14 0x000003fff2bc974a in ?? () from /usr/lib64/firefox/libxul.so

No symbol table info available.

#15 0x000003fff2e26e4c in ?? () from /usr/lib64/firefox/libxul.so

No symbol table info available.

#16 0x000003fff2dfb61d in ?? () from /usr/lib64/firefox/libxul.so

No symbol table info available.

#17 0x000003fff2babb42 in ?? () from /usr/lib64/firefox/libxul.so

No symbol table info available.

#18 0x000003fff111bf8c in _pt_root (arg=0x3fff6b36180) at /var/tmp/portage/dev-libs/nspr-4.10.8/work/nspr-4.10.8/nspr/pr/src/pthreads/ptthread.c:212

        rv = <optimized out>

        thred = 0x3fff6b36180

        detached = 0

        id = 4397533210368

        tid = 31749

#19 0x000003fff7bc550c in start_thread (arg=0x3ffe167a700) at pthread_create.c:310

---Type <return> to continue, or q <return> to quit--- 

        __res = <optimized out>

        pd = 0x3ffe167a700

        now = <optimized out>

        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {4397533210368, 3480418855277030146, 1, 4398046488224, 8388608, 4397533210368, 3480418855256058626, 3480371248026479362}, mask_was_saved = 0}}, priv = {

            pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}

        not_first_call = <optimized out>

        pagesize_m1 = <optimized out>

        sp = <optimized out>

        freesize = <optimized out>

        __PRETTY_FUNCTION__ = "start_thread"

#20 0x000003fff70e3f2d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

No locals.

(gdb) quit

```

----------

