Hi
I am getting a SIGABRT in my code which is raised from glib. The exact error message is as below
GLib (gthread-posix.c): Unexpected error from C library during 'pthread_setspecific': Invalid argument. Aborting.
I am just using the doubly linked list of glib, and more specifically the g_list_insert_sorted() API.
Below is the callstack which might be useful for you.
Program received signal SIGABRT, Aborted.
0x412d4760 in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:67
67 int res = INLINE_SYSCALL (tgkill, 3, pid, selftid, sig);
(gdb) bt full
#0 0x412d4760 in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:67
_sys_result = 0
pid = <value optimized out>
selftid = 7331
#1 0x412d855c in abort () at abort.c:92
save_stage = 2
act = {__sigaction_handler = {sa_handler = 0x400d5670, sa_sigaction = 0x400d5670}, sa_mask = {__val = {1, 0, 1, 1074580136, 1075612804, 4680, 2,
1075988704, 1076046900, 4, 4293908020, 3204100888, 1096193216, 72, 0, 1074580576, 1074085888, 13220, 1074580136, 136, 3204101012, 1094427260,
3204100856, 4294870264, 4680, 1094427248, 5, 3204100888, 278744, 0, 2048, 1093749072}}, sa_flags = 1093335632, sa_restorer = 0x40098808}
sigs = {__val = {32, 0 <repeats 31 times>}}
#2 0x402e6870 in g_thread_abort (status=<value optimized out>, function=0x1 <Address 0x1 out of bounds>) at gthread-posix.c:76
No locals.
#3 0x402c18b4 in thread_memory_from_self (mem_size=12) at gslice.c:515
n_magazines = <value optimized out>
init_mutex = {p = 0x21e98, i = {138904, 0}}
tmem = 0xbe4
#4 g_slice_alloc (mem_size=12) at gslice.c:981
tmem = 0xbe4
chunk_size = <value optimized out>
mem = <value optimized out>
#5 0x402c1c04 in g_slice_alloc0 (mem_size=12) at gslice.c:1029
mem = <value optimized out>
#6 0x402a1328 in g_list_insert_sorted_real (list=0x0, data="" func=0x40187300 <__comparefunc>, user_data=0x0) at glist.c:919
Am I supposed to call any init API before using glib APIs ? Please help and let me know whether it is glib issue or a bug in my own code.
Thank & Regards
Shobhit