Hi All I was hoping to get some tips on the following. I'm working on python bindings and plugins for the opensync library, and am getting a segfault in g_slice_alloc. #0 magazine_chain_pop_head (mem_size=12) at /build/buildd/glib2.0-2.22.3/glib/gslice.c:470 #1 thread_memory_magazine1_alloc (mem_size=12) at /build/buildd/glib2.0-2.22.3/glib/gslice.c:777 #2 IA__g_slice_alloc (mem_size=12) at /build/buildd/glib2.0-2.22.3/glib/gslice.c:815 #3 0x00482fee in osync_list_copy (list=0x8d5afb0) at /build/buildd/libopensync-0.40~20100330/opensync/common/opensync_list.c:313 Full backtrace at the end, but I don't think it adds much, except that the app is multi-threaded. glib version is 2.22.3, so the fatal line is ChunkLink *chunk = (*magazine_chunks)->data; I've pretty much figured out that the code using the gslice stuff runs through once ok, but falls over the second time around. If I had to guess, I would say that something is reinitialising the slice allocator unsafely in another thread, but I'm guessing wildly. Can anyone provide some insight on what I should look for ? Thanks Mark #0 magazine_chain_pop_head (mem_size=12) at /build/buildd/glib2.0-2.22.3/glib/gslice.c:470 #1 thread_memory_magazine1_alloc (mem_size=12) at /build/buildd/glib2.0-2.22.3/glib/gslice.c:777 #2 IA__g_slice_alloc (mem_size=12) at /build/buildd/glib2.0-2.22.3/glib/gslice.c:815 #3 0x00482fee in osync_list_copy (list=0x8d5afb0) at /build/buildd/libopensync-0.40~20100330/opensync/common/opensync_list.c:313 #4 0x004be714 in osync_plugin_info_get_objtype_sinks (info=0x8e03c28) at /build/buildd/libopensync-0.40~20100330/opensync/plugin/opensync_plugin_info.c:176 #5 0x00c70673 in PluginInfo_num_objtype_sinks (self=0x0, args=0xb777e56c) at /build/buildd/libopensync-0.40~20100330/obj-i486-linux-gnu/wrapper/opensyncPYTHON_wrap.c:4188 #6 _wrap_PluginInfo_num_objtype_sinks (self=0x0, args=0xb777e56c) at /build/buildd/libopensync-0.40~20100330/obj-i486-linux-gnu/wrapper/opensyncPYTHON_wrap.c:11480 #7 0x02e35b52 in PyCFunction_Call () from /usr/lib/libpython2.6.so.1.0 #8 0x02e94051 in PyEval_EvalFrameEx () from /usr/lib/libpython2.6.so.1.0 #9 0x02e95b39 in PyEval_EvalCodeEx () from /usr/lib/libpython2.6.so.1.0 #10 0x02e941f2 in PyEval_EvalFrameEx () from /usr/lib/libpython2.6.so.1.0 #11 0x02e95b39 in PyEval_EvalCodeEx () from /usr/lib/libpython2.6.so.1.0 #12 0x02e1fff7 in ?? () from /usr/lib/libpython2.6.so.1.0 #13 0x02df289c in PyObject_Call () from /usr/lib/libpython2.6.so.1.0 #14 0x02e037b4 in ?? () from /usr/lib/libpython2.6.so.1.0 #15 0x02df289c in PyObject_Call () from /usr/lib/libpython2.6.so.1.0 #16 0x02e8eb54 in PyEval_CallObjectWithKeywords () from /usr/lib/libpython2.6.so.1.0 #17 0x02e046f8 in ?? () from /usr/lib/libpython2.6.so.1.0 #18 0x02df203e in PyObject_Size () from /usr/lib/libpython2.6.so.1.0 #19 0x02e8c2a2 in ?? () from /usr/lib/libpython2.6.so.1.0 #20 0x02e9464b in PyEval_EvalFrameEx () from /usr/lib/libpython2.6.so.1.0 #21 0x02e95b39 in PyEval_EvalCodeEx () from /usr/lib/libpython2.6.so.1.0 #22 0x02e1fff7 in ?? () from /usr/lib/libpython2.6.so.1.0 #23 0x02df289c in PyObject_Call () from /usr/lib/libpython2.6.so.1.0 #24 0x02e037b4 in ?? () from /usr/lib/libpython2.6.so.1.0 #25 0x02df289c in PyObject_Call () from /usr/lib/libpython2.6.so.1.0 #26 0x02df51f5 in PyObject_CallFunction () from /usr/lib/libpython2.6.so.1.0 #27 0x02e0461b in ?? () from /usr/lib/libpython2.6.so.1.0 #28 0x02df1c38 in PySequence_GetItem () from /usr/lib/libpython2.6.so.1.0 #29 0x02e234d8 in ?? () from /usr/lib/libpython2.6.so.1.0 #30 0x02e903c2 in PyEval_EvalFrameEx () from /usr/lib/libpython2.6.so.1.0 #31 0x02e95b39 in PyEval_EvalCodeEx () from /usr/lib/libpython2.6.so.1.0 #32 0x02e1fff7 in ?? () from /usr/lib/libpython2.6.so.1.0 #33 0x02df289c in PyObject_Call () from /usr/lib/libpython2.6.so.1.0 #34 0x02df73d2 in PyObject_CallMethod () from /usr/lib/libpython2.6.so.1.0 #35 0x0087f5c4 in ?? () from /usr/lib/libopensync1/plugins/python-module.so #36 0x004b6c9b in osync_plugin_discover (plugin=0x8d6a3c8, data=0x8dd0490, info=0x8e03c28, error=0xb5f5014c) #37 0x0047cec5 in _osync_client_handle_discover (message=0x0, user_data=0x0) at /build/buildd/libopensync-0.40~20100330/opensync/client/opensync_client.c:969 #38 _osync_client_message_handler (message=0x0, user_data=0x0) at /build/buildd/libopensync-0.40~20100330/opensync/client/opensync_client.c:1547 #39 0x004ac8df in _incoming_dispatch (source=0x8d1f630, callback=0, user_data=0x8d51250) at /build/buildd/libopensync-0.40~20100330/opensync/ipc/opensync_queue.c:391 #40 0x00148e88 in g_main_dispatch (context=0x8d51818) at /build/buildd/glib2.0-2.22.3/glib/gmain.c:1960 #41 IA__g_main_context_dispatch (context=0x8d51818) at /build/buildd/glib2.0-2.22.3/glib/gmain.c:2513 #42 0x0014c730 in g_main_context_iterate (context=0x8d51818, block=<value optimised out>, dispatch=1, self=0x8d2dbe0) at /build/buildd/glib2.0-2.22.3/glib/gmain.c:2591 #43 0x0014cb9f in IA__g_main_loop_run (loop=0x8d2c338) at /build/buildd/glib2.0-2.22.3/glib/gmain.c:2799 #44 0x0017337f in g_thread_create_proxy (data=0x8d2dbe0) at /build/buildd/glib2.0-2.22.3/glib/gthread.c:635 #45 0x0043b80e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0 #46 0x002938de in clone () from /lib/tls/i686/cmov/libc.so.6
Attachment:
signature.asc
Description: This is a digitally signed message part