Re: Problem releasing ORB.




I've attached some files with various output you've requested. I don't 
know if the original message contained this, but I'm running Redhat 7.2 
with gcc 2.96. It's linux 2.4.7-10smp if that helps any... this is the 
default kernel.

checkOutput.txt is the output of 'make check'




Michael Meeks wrote:
> Hi Craig,
> 
> On Fri, 2003-02-28 at 21:30, Craig wrote:
> 
>>Hi, I'm having some problems running an example with ORBit2 (2.6.0)
> 
> 
> 	Your code looks fine to me;
> 
> 
>>** ERROR **: file orbit-object.c: line 146 (do_unref): assertion 
>>failed: (robj->refs < ORBIT_REFCOUNT_MAX && robj->refs > 0)
>>aborting...
>>Aborted
> 
> 
> 	Can you run this in the debugger and get a stack trace ?
> 	gdb ./foo
> 	run
> 	...
> 	backtrace
> 
> 

I can't get it to fail again.... ugggg. I wasn't imagining this though. 
;) If/when it happens again I'll let you know.




>>Also, all of the tests that come packaged with ORBit segfault.
> 
> 
> 	That is highly serious; 'make check' in ORBit2 should pass every time
> on every system [ assuming you can do ping `hostname` ].
> 
> 	Can you post stack traces and we'll look into this.
> 
It dies on an assertion as you will see in the attached file.

Program received signal SIGABRT, Aborted.
[Switching to Thread 1024 (LWP 10927)]
0x40118a01 in __kill () from /lib/i686/libc.so.6
(gdb) bt
#0  0x40118a01 in __kill () from /lib/i686/libc.so.6
#1  0x400415bb in raise (sig=6) at signals.c:65
#2  0x40119f82 in abort () at ../sysdeps/generic/abort.c:88
#3  0x400ad95c in g_logv (log_domain=0x0, log_level=G_LOG_LEVEL_ERROR,
     format=0x809f4a0 "file %s: line %d (%s): assertion failed: (%s)",
     args1=0xbfffdbec) at gmessages.c:508
#4  0x400ada03 in g_log (log_domain=0x0, log_level=G_LOG_LEVEL_ERROR,
     format=0x809f4a0 "file %s: line %d (%s): assertion failed: (%s)")
     at gmessages.c:527
#5  0x080694ce in dump_protos () at client.c:1882
#6  0x08069753 in main (argc=1, argv=0xbfffe0e4) at client.c:1941
#7  0x40106507 in __libc_start_main (main=0x80695a0 <main>, argc=1,
     ubp_av=0xbfffe0e4, init=0x805a090 <_init>, fini=0x8096ed0 <_fini>,
     rtld_fini=0x4000dc14 <_dl_fini>, stack_end=0xbfffe0dc)
     at ../sysdeps/generic/libc-start.c:129
(gdb)

Here's a stack trace.

This comes from running ./server in test/everything and ./client in 
test/everything. This is te stack trace of the client. The server is fine.


$ ping `hostname`
PING abyss.cometsolutions.com (192.168.0.3) from 192.168.0.3 : 56(84) 
bytes of data.
Warning: time of day goes back, taking countermeasures.
64 bytes from abyss.cometsolutions.com (192.168.0.3): icmp_seq=0 ttl=255 
time=1.173 msec
64 bytes from abyss.cometsolutions.com (192.168.0.3): icmp_seq=1 ttl=255 
time=74 usec
64 bytes from abyss.cometsolutions.com (192.168.0.3): icmp_seq=2 ttl=255 
time=87 usec



***************** this is from echo-client ****************************
I stuck a call to gdb before the " exec $program ${1+"$@"}" line in the 
shell script. This is the output of the program with the stack trace.


[New Thread 1024 (LWP 11282)]
** Message: [client] 26
** Message: [client] 69
** Message: [client] 36
** Message: [client] 93
** Message: [client] 50
** Message: [client] 93
** Message: [client] 42
** Message: [client] 49
** Message: [client] 79
** Message: [client] 71
** Message: [client] 57
** Message: [client] 86
** Message: [client] 19
** Message: [client] 70
** Message: [client] 85
** Message: [client] 8
** Message: [client] 58
** Message: [client] 98
** Message: [client] 14
** Message: [client] 90
** Message: [client] 6
** Message: [client] 43
** Message: [client] 66
** Message: [client] 72
** Message: [client] 98
** Message: [client] 61
** Message: [client] 60
** Message: [client] 33
** Message: [client] 21
** Message: [client] 30
** Message: [client] 85
** Message: [client] 0
** Message: [client] 52
** Message: [client] 73
** Message: [client] 93
** Message: [client] 54
** Message: [client] 66
** Message: [client] 87
** Message: [client] 55
** Message: [client] 98
** Message: [client] 10
** Message: [client] 13
** Message: [client] 84
** Message: [client] 82
** Message: [client] 35
** Message: [client] 21
** Message: [client] 90
** Message: [client] 94
** Message: [client] 19
** Message: [client] 4
** Message: [client] 36
** Message: [client] 25
** Message: [client] 99
** Message: [client] 2
** Message: [client] 50
** Message: [client] 50
** Message: [client] 63
** Message: [client] 62
** Message: [client] 83
** Message: [client] 85
** Message: [client] 45
** Message: [client] 68
** Message: [client] 85
** Message: [client] 49
** Message: [client] 94
** Message: [client] 30
** Message: [client] 3
** Message: [client] 60
** Message: [client] 70
** Message: [client] 10
** Message: [client] 10
** Message: [client] 32
** Message: [client] 23
** Message: [client] 95
** Message: [client] 14
** Message: [client] 11
** Message: [client] 16
** Message: [client] 56
** Message: [client] 57
** Message: [client] 88
** Message: [client] 60
** Message: [client] 93
** Message: [client] 65
** Message: [client] 12
** Message: [client] 95
** Message: [client] 15
** Message: [client] 62
** Message: [client] 11
** Message: [client] 30
** Message: [client] 45
** Message: [client] 48
** Message: [client] 75
** Message: [client] 66
** Message: [client] 85
** Message: [client] 24
** Message: [client] 60
** Message: [client] 15
** Message: [client] 79
** Message: [client] 72
** Message: [client] 37

** ERROR **: file orbit-object.c: line 146 (do_unref): assertion failed: 
(robj->refs < ORBIT_REFCOUNT_MAX && robj->refs > 0)
aborting...

Program received signal SIGABRT, Aborted.
[Switching to Thread 1024 (LWP 11282)]
0x40163a01 in __kill () from /lib/i686/libc.so.6
(gdb) bt
#0  0x40163a01 in __kill () from /lib/i686/libc.so.6
#1  0x400885bb in raise (sig=6) at signals.c:65
#2  0x40164f82 in abort () at ../sysdeps/generic/abort.c:88
#3  0x400f895c in g_logv (log_domain=0x0, log_level=G_LOG_LEVEL_ERROR,
     format=0x40043540 "file %s: line %d (%s): assertion failed: (%s)",
     args1=0xbfffdcdc) at gmessages.c:508
#4  0x400f8a03 in g_log (log_domain=0x0, log_level=G_LOG_LEVEL_ERROR,
     format=0x40043540 "file %s: line %d (%s): assertion failed: (%s)")
     at gmessages.c:527
#5  0x4003034c in do_unref (robj=0x804ffe0) at orbit-object.c:146
#6  0x4003040f in ORBit_RootObject_release (obj=0x804ffe0)
     at orbit-object.c:184
#7  0x4002dbd4 in shutdown_orb () at corba-orb.c:218
#8  0x4016642b in exit (status=0) at exit.c:54
#9  0x40151510 in __libc_start_main (main=0x8048da0 <main>, argc=2,
     ubp_av=0xbfffddf4, init=0x8048b6c <_init>, fini=0x80492c0 <_fini>,
     rtld_fini=0x4000dc14 <_dl_fini>, stack_end=0xbfffddec)
     at ../sysdeps/generic/libc-start.c:129
(gdb)



> 
>>P.S. I've figured is out, and it seems to come from the line where I 
>>release the ORB. I guess
>>the question is why, and why do the examples release the ORB? :)
> 
> 
> 	Mostly people do a ORB_shutdown / destroy first I think.
> 
> 
>>P.P.S. I guess I'm just going to send this out because it's already 
>>been written and this may happen to someone else someday.
> 
> 
> 	Questions, even premature ones are most welcome :-)

Thanks. I know I bug you a lot.

> 
> 	Regards,
> 
> 		Michael.
> 
Hope this helps.

-Craig
Making check in src
make[1]: Entering directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/src'
Making check in idl-compiler
make[2]: Entering directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/src/idl-compiler'
make[2]: Nothing to be done for `check'.
make[2]: Leaving directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/src/idl-compiler'
Making check in idl
make[2]: Entering directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/src/idl'
Making check in CORBA
make[3]: Entering directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/src/idl/CORBA'
make[3]: Nothing to be done for `check'.
make[3]: Leaving directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/src/idl/CORBA'
Making check in CORBA_PIDL
make[3]: Entering directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/src/idl/CORBA_PIDL'
make[3]: Nothing to be done for `check'.
make[3]: Leaving directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/src/idl/CORBA_PIDL'
Making check in interop
make[3]: Entering directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/src/idl/interop'
make[3]: Nothing to be done for `check'.
make[3]: Leaving directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/src/idl/interop'
Making check in misc
make[3]: Entering directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/src/idl/misc'
make[3]: Nothing to be done for `check'.
make[3]: Leaving directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/src/idl/misc'
make[3]: Entering directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/src/idl'
make[3]: Nothing to be done for `check-am'.
make[3]: Leaving directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/src/idl'
make[2]: Leaving directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/src/idl'
Making check in orb
make[2]: Entering directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/src/orb'
Making check in include
make[3]: Entering directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/src/orb/include'
make[3]: Nothing to be done for `check'.
make[3]: Leaving directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/src/orb/include'
Making check in orb-core
make[3]: Entering directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/src/orb/orb-core'
make[4]: Entering directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/src/idl-compiler'
make[4]: Nothing to be done for `all'.
make[4]: Leaving directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/src/idl-compiler'
make[3]: Leaving directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/src/orb/orb-core'
Making check in util
make[3]: Entering directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/src/orb/util'
make[3]: Nothing to be done for `check'.
make[3]: Leaving directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/src/orb/util'
Making check in GIOP
make[3]: Entering directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/src/orb/GIOP'
make[3]: Nothing to be done for `check'.
make[3]: Leaving directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/src/orb/GIOP'
Making check in poa
make[3]: Entering directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/src/orb/poa'
make[3]: Nothing to be done for `check'.
make[3]: Leaving directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/src/orb/poa'
Making check in dynamic
make[3]: Entering directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/src/orb/dynamic'
make[3]: Nothing to be done for `check'.
make[3]: Leaving directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/src/orb/dynamic'
make[3]: Entering directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/src/orb'
make[3]: Nothing to be done for `check-am'.
make[3]: Leaving directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/src/orb'
make[2]: Leaving directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/src/orb'
Making check in services
make[2]: Entering directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/src/services'
Making check in name
make[3]: Entering directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/src/services/name'
make[3]: Nothing to be done for `check'.
make[3]: Leaving directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/src/services/name'
Making check in imodule
make[3]: Entering directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/src/services/imodule'
make[3]: Nothing to be done for `check'.
make[3]: Leaving directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/src/services/imodule'
make[3]: Entering directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/src/services'
make[3]: Nothing to be done for `check-am'.
make[3]: Leaving directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/src/services'
make[2]: Leaving directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/src/services'
make[2]: Entering directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/src'
make[2]: Nothing to be done for `check-am'.
make[2]: Leaving directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/src'
make[1]: Leaving directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/src'
Making check in include
make[1]: Entering directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/include'
Making check in orbit
make[2]: Entering directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/include/orbit'
Making check in GIOP
make[3]: Entering directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/include/orbit/GIOP'
make[3]: Nothing to be done for `check'.
make[3]: Leaving directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/include/orbit/GIOP'
Making check in util
make[3]: Entering directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/include/orbit/util'
make[3]: Nothing to be done for `check'.
make[3]: Leaving directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/include/orbit/util'
Making check in orb-core
make[3]: Entering directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/include/orbit/orb-core'
make[3]: Nothing to be done for `check'.
make[3]: Leaving directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/include/orbit/orb-core'
Making check in poa
make[3]: Entering directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/include/orbit/poa'
make[3]: Nothing to be done for `check'.
make[3]: Leaving directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/include/orbit/poa'
Making check in dynamic
make[3]: Entering directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/include/orbit/dynamic'
make[3]: Nothing to be done for `check'.
make[3]: Leaving directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/include/orbit/dynamic'
make[3]: Entering directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/include/orbit'
make[3]: Nothing to be done for `check-am'.
make[3]: Leaving directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/include/orbit'
make[2]: Leaving directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/include/orbit'
make[2]: Entering directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/include'
make[2]: Nothing to be done for `check-am'.
make[2]: Leaving directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/include'
make[1]: Leaving directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/include'
Making check in test
make[1]: Entering directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/test'
Making check in everything
make[2]: Entering directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/test/everything'
make  check-TESTS
make[3]: Entering directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/test/everything'
Local server test passed

Initial References:
	POACurrent ... okay
	RootPOA ... okay
Protocol       dr: disabled
Protocol  oy_addr: disabled
Protocol destroy_addr: disabled
Protocol ocol_destroy_addr: disabled

** ERROR **: file client.c: line 1882 (dump_protos): assertion failed: (enabled_count > 0)
aborting...
././test.sh: line 33: 31904 Aborted                 ./client $params
=============================================================
Test failed with params: --ORBIIOPIPv4=0 --ORBIIOPUSock=1
=============================================================
././test.sh: line 33: 31902 Terminated              ./server $params
FAIL: ./test.sh
===================
1 of 1 tests failed
===================
make[3]: *** [check-TESTS] Error 1
make[3]: Leaving directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/test/everything'
make[2]: *** [check-am] Error 2
make[2]: Leaving directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/test/everything'
make[1]: *** [check-recursive] Error 1
make[1]: Leaving directory `/nfs/home/craig/ORBit2/ORBit2-2.6.0/test'
make: *** [check-recursive] Error 1


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