Re: More multi-threading questions...



Thanks, Michael! That got a core dump, but only for the aborting thread 
(the main thread).  I assume another thread was already started, because 
gdb claims it is a LWP core dump. Only one core.xxxx file is created per 
assert.

The assertion occurs on CORBA_Object_release, releasing the CORBA 
NameService object (after sucessfully registering the created object on 
the NameService).  This is done immediately after creating the POA (set 
for thread per object use), and registering the servant on this POA.

The complete backtrace is here:

#0  0x40203621 in kill () from /lib/libc.so.6
#1  0x4015726b in raise (sig=6) at signals.c:65
#2  0x40204a53 in abort () from /lib/libc.so.6
#3  0x4018c3b9 in g_logv (log_domain=0x0, log_level=G_LOG_LEVEL_ERROR,
     format=0x400f5a60 "file %s: line %d (%s): assertion failed: (%s)",
     args1=0xbffff51c) at gmessages.c:508
#4  0x4018c476 in g_log (log_domain=0x0, log_level=G_LOG_LEVEL_ERROR,
     format=0x400f5a60 "file %s: line %d (%s): assertion failed: (%s)")
     at gmessages.c:527
#5  0x400d014f in giop_connection_dispose (obj=0x80797e8)
     at giop-connection.c:69
#6  0x4011bdce in g_object_last_unref (object=0x80797e8) at gobject.c:429
#7  0x4011f439 in g_object_unref (_object=0x80797e8) at gobject.c:1348
#8  0x400f203f in link_connection_unref_unlock (cnx=0x80797e8)
     at linc-connection.c:87
#9  0x400db03d in CORBA_Object_release_cb (robj=0x8078590)
     at corba-object.c:133
#10 0x400d6bc3 in do_unref (robj=0x8078590) at orbit-object.c:160
#11 0x400d6c5f in ORBit_RootObject_release (obj=0x8078590)
     at orbit-object.c:184
#12 0x400db80d in CORBA_Object_release (obj=0x8078590, ev=0xbffff670)
     at corba-object.c:392
#13 0x0804c61e in corba_name_client_bind (stringname=0x8052218, 
obj=0x80781b0)
---Type <return> to continue, or q <return> to quit---
     at CosNaming-client.c:253
#14 0x0804b5b2 in main (argc=1, argv=0xbffff774)
     at /home/justin/airtime/corba/corba_generic_server.cinc:275
#15 0x401f1280 in __libc_start_main () from /lib/libc.so.6

I am not sure why, or how this is happening... Any more ideas?

Thanks ;-)

-justin

Michael Meeks wrote:
> Hi Justin,
> 
> On Wed, 2003-09-10 at 12:55, Justin Schoeman wrote:
> 
>>Anyway, now that I am _actually_ using g_main_loop_quit() to shut down 
>>the main thread, I can now shut down the server cleanly!
> 
> 
> 	Good :-)
> 
> 
>>The occasional assertion - aborts on startup are still there though, but 
>>I have found no way to replicate them in gdb - they seem to be timing 
>>related, and gdb affects the timing too much...
> 
> 
> 	Ok - do these dump core when they abort; if so we can get a useful
> trace. gdb app core.12345\n t a a bt\n etc. If you're not saving a core
> do:  ulimit -c unlimited first - that may be the problem. If it's not a
> fatal error, make it so in the source, re-compile etc.
> 
> 	Thanks,
> 
> 		Michael.
> 




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]