[Mono-osx] Assertion failed: Cairo Reference Count - only on Mac

Ashok Gelal ashokgelal at gmail.com
Thu Jan 20 01:00:01 EST 2011


Hello All,
When I run my application for few minutes, I get the attached SIGABRT crash.
I'm aware that this bug has been widely discussed in Cairo community, and
some of them have claimed of this being fixed already (see the following
links).

https://bugs.freedesktop.org//show_bug.cgi?id=19655
http://lists.cairographics.org/archives/cairo-bugs/2009-January/002915.html

I've tried running the application with Mono 2.6 and 2.8 but I get the same
crash every time I run it (the time duration is not fixed though - sometimes
it crashes immediately and sometimes after running for a while). Today I
downloaded Mono 2.10 hoping that the latest release might have it fixed but
I'm getting the same crash. Please note that this crash only occurs in Mac
but not on Windows or Linux.

Do anyone have had seen this REFERENCE COUNT assertion fail error before and
know a 'hack' to fix it? I'm ready to release the Mac version of our
application but only held by this nasty bug.

Assertion failed: (CAIRO_REFERENCE_COUNT_HAS_REFERENCE
(&font_face->ref_count)), function cairo_font_face_destroy, file
cairo-font-face.c, line 191.
Stacktrace:

  at (wrapper managed-to-native) Cairo.NativeMethods.cairo_text_extents
(intptr,string,Cairo.TextExtents&) <IL 0x00034, 0xffffffff>
  at Cairo.Context.TextExtents (string) [0x00000] in
/private/tmp/monobuild/build/BUILD/mono-2.10/mcs/class/Mono.Cairo/Mono.Cairo/Context.cs:885
  at GraphsExtension.View.TimeGraphView.DrawXLabels (Cairo.Context)
[0x00096] in GraphsExtension\View\TimeGraphView.cs:229
  at GraphsExtension.View.TimeGraphView.DrawFramework (Cairo.Context)
[0x0007e] in GraphsExtension\View\TimeGraphView.cs:155
  at GraphsExtension.View.TimeGraphView.OnExposeEvent (Gdk.EventExpose)
[0x00015] in GraphsExtension\View\TimeGraphView.cs:102
  at Gtk.Widget.exposeevent_cb (intptr,intptr) <IL 0x00014, 0x00061>
  at (wrapper native-to-managed) Gtk.Widget.exposeevent_cb (intptr,intptr)
<IL 0x00020, 0xffffffff>
  at (wrapper managed-to-native) Gtk.Application.gtk_main () <IL 0x00022,
0xffffffff>
  at Gtk.Application.Run () <IL 0x00000, 0x0000a>
  at MetaGeek.NetworkManager.GtkView.View.MainView.Run () [0x00000] in
NetworkManager.GtkView\View\MainView.cs:130
  at MetaGeek.inSSIDer.Controller.MainViewController.Run () [0x0004b] in
MetaScanner\Controller\MainViewController.cs:184
  at MetaGeek.inSSIDer.Inssider..ctor () [0x00015] in
MetaScanner\inSSIDer.cs:16
  at MetaGeek.inSSIDer.Inssider.Main (string[]) [0x00001] in
MetaScanner\inSSIDer.cs:9
  at (wrapper runtime-invoke) <Module>.runtime_invoke_void_object
(object,intptr,intptr,intptr) <IL 0x00050, 0xffffffff>

Native stacktrace:

0   mono                                0x000b5829
mono_handle_native_sigsegv + 377
1   libSystem.B.dylib                   0x91ffe46b _sigtramp + 43
 2   ???                                 0xffffffff 0x0 + 4294967295
3   libSystem.B.dylib                   0x9208b89d raise + 26
 4   libSystem.B.dylib                   0x920a19bc abort + 93
5   libSystem.B.dylib                   0x9208e4fc __pthread_markcancel + 0
 6   libcairo.2.dylib                    0x02776ed6 cairo_font_face_destroy
+ 150
7   libcairo.2.dylib                    0x0278d972
_cairo_scaled_font_fini_internal + 34
 8   libcairo.2.dylib                    0x0278ddaa
cairo_scaled_font_destroy + 154
9   libcairo.2.dylib                    0x0278e103 cairo_scaled_font_create
+ 643
 10  libcairo.2.dylib                    0x02779f1f
_cairo_gstate_ensure_scaled_font + 111
11  libcairo.2.dylib                    0x0277a01e
_cairo_gstate_text_to_glyphs + 78
 12  libcairo.2.dylib                    0x02775346 cairo_text_extents + 198
13  ???                                 0x196ea2e6 0x0 + 426681062
 14  ???                                 0x196ea267 0x0 + 426680935
15  ???                                 0x196ed262 0x0 + 426693218
 16  ???                                 0x196ebb72 0x0 + 426687346
17  ???                                 0x196eb7c8 0x0 + 426686408
 18  ???                                 0x196eb74a 0x0 + 426686282
19  ???                                 0x180bd5ee 0x0 + 403428846
 20  libgtk-quartz-2.0.0.dylib           0x02348bdb
_gtk_marshal_BOOLEAN__BOXED + 107
21  libgobject-2.0.0.dylib              0x028f3e79 g_closure_invoke + 329
 22  libgobject-2.0.0.dylib              0x02904158 signal_emit_unlocked_R +
2168
23  libgobject-2.0.0.dylib              0x0290535a g_signal_emit_valist +
1210
 24  libgobject-2.0.0.dylib              0x02905929 g_signal_emit + 41
25  libgtk-quartz-2.0.0.dylib           0x02475986 gtk_widget_event_internal
+ 598
 26  libgtk-quartz-2.0.0.dylib           0x023474ec gtk_main_do_event + 1740
27  libgdk-quartz-2.0.0.dylib           0x026b384f
_gdk_window_process_updates_recurse + 559
 28  libgdk-quartz-2.0.0.dylib           0x026b38af
_gdk_window_process_updates_recurse + 655
29  libgdk-quartz-2.0.0.dylib           0x026c0f03 -[GdkQuartzView
drawRect:] + 307
 30  AppKit                              0x905198fd -[NSView
_drawRect:clip:] + 3721
31  AppKit                              0x90516fc9 -[NSView
_recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]
+ 2217
 32  AppKit                              0x90512ea2 -[NSView
_displayRectIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:] + 3309
33  AppKit                              0x90473a57 -[NSView displayIfNeeded]
+ 818
 34  libgdk-quartz-2.0.0.dylib           0x026c49e6
_gdk_windowing_after_process_all_updates + 86
35  libgdk-quartz-2.0.0.dylib           0x026b4a0e
gdk_window_process_all_updates + 302
 36  libgtk-quartz-2.0.0.dylib           0x022be29f gtk_container_idle_sizer
+ 79
37  libgdk-quartz-2.0.0.dylib           0x0268a7db gdk_threads_dispatch + 91
 38  libglib-2.0.0.dylib                 0x029615de g_main_context_dispatch
+ 558
39  libglib-2.0.0.dylib                 0x0296503b g_main_context_iterate +
1179
 40  libglib-2.0.0.dylib                 0x02965327 g_main_loop_run + 455
41  libgtk-quartz-2.0.0.dylib           0x02346321 gtk_main + 177
 42  ???                                 0x180d6b5b 0x0 + 403532635
43  ???                                 0x180d6b23 0x0 + 403532579
 44  ???                                 0x180d6a63 0x0 + 403532387
45  ???                                 0x180d3cf7 0x0 + 403520759
 46  ???                                 0x004a8e5f 0x0 + 4886111
47  ???                                 0x004a8d07 0x0 + 4885767
 48  ???                                 0x004a8d8c 0x0 + 4885900
49  mono                                0x00010eb4 mono_jit_runtime_invoke +
164
 50  mono                                0x001baeeb mono_runtime_invoke +
138
51  mono                                0x001bd4e5 mono_runtime_exec_main +
669
 52  mono                                0x001bc8cf mono_runtime_run_main +
852
53  mono                                0x00087ca2 mono_main + 6930
 54  mono                                0x00003826 start + 54
55  ???                                 0x00000003 0x0 + 3

Debug info from gdb:

/tmp/mono-gdb-commands.zgmuwk:1: Error in sourced command file:
unable to debug self

=================================================================
Got a SIGABRT while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
=================================================================

Abort trap

Press any key to continue...





Thanks,
Ashok
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-osx/attachments/20110119/a1ce1ae4/attachment-0001.html 


More information about the Mono-osx mailing list