[omniORB] INV_OBJREF instead of OBJECT_NOT_EXIST

Matthew N. White matthew.white@marconi.com
Fri, 07 Dec 2001 10:10:08 -0500


Duncan,

Here is the snippet of trace showing the INV_OBJREF thrown in the
client...

...
ll_send: 67 bytes
4749 4f50 0100 0000 0000 0037 0000 0000 GIOP.......7....
0000 6d8c 0100 0000 0000 000e fe3c 0ff0 ..m..........<..
29c4 6400 0000 0000 0023 0000 0000 0008 ).d......#......
6465 7374 726f 7900 0000 0007 6e6f 626f destroy.....nobo
6479 00                                 dy.
ll_recv: 24 bytes
4749 4f50 0100 0001 0000 000c 0000 0000 GIOP............
0000 6d8c 0000 0000                     ..m.....
omniORB: omniRemoteIdentity deleted.
omniORB: strand Rope::decrRefCount: old value = 7
omniORB: ObjRef(IDL:att.com/AttNotification/EventChannel:1.0) --
deleted.
ll_send: 67 bytes
4749 4f50 0100 0000 0000 0037 0000 0000 GIOP.......7....
0000 6d8d 0100 0000 0000 000e fe3c 0ff0 ..m..........<..
29c4 6400 0000 0000 0026 0000 0000 0008 ).d......&......
6465 7374 726f 7900 0000 0007 6e6f 626f destroy.....nobo
6479 00                                 dy.
ll_recv: 72 bytes
4749 4f50 0100 0001 0000 003c 0000 0000 GIOP.......<....
0000 6d8d 0000 0002 0000 0021 4944 4c3a ..m........!IDL:
6f6d 672e 6f72 672f 434f 5242 412f 494e omg.org/CORBA/IN
565f 4f42 4a52 4546 3a31 2e30 0054 3a31 V_OBJREF:1.0.T:1
0000 0000 0000 0001                     ........
omniORB: throw INV_OBJREF from giopClient.cc:495
omniORB: omniRemoteIdentity deleted.
omniORB: strand Rope::decrRefCount: old value = 6
omniORB: ObjRef(IDL:att.com/AttNotification/EventChannel:1.0) --
deleted.
ll_send: 129 bytes
4749 4f50 0100 0000 0000 0075 0000 0000 GIOP.......u....
0000 0005 0100 0000 0000 000b 4e61 6d65 ............Name
5365 7276 6963 6500 0000 0007 756e 6269 Service.....unbi
6e64 0000 0000 0007 6e6f 626f 6479 0000 nd......nobody..
0000 0001 0000 0031 4543 5f6d 7768 6974 .......1EC_mwhit
655f 7661 6e69 7479 736d 7572 665f 3036 e_vanitysmurf_06
3132 3031 5f38 3134 5f64 6f6d 6169 6e31 1201_814_domain1
5f63 6c69 656e 7430 005f 7661 0000 0001 _client0._va....
...

And here is the snippet from notifd:

...
omniORB: tcpSocketMTfactory ~tcpSocketOutgoingRope: called
omniORB: strand Rope_iterator: delete unused Rope.
omniORB: tcpSocketMTfactory ~tcpSocketOutgoingRope: called
omniORB: strand Rope_iterator: delete unused Rope.
omniORB: tcpSocketMTfactory ~tcpSocketOutgoingRope: called
omniORB: strand Rope_iterator: delete unused Rope.
omniORB: tcpSocketMTfactory ~tcpSocketOutgoingRope: called
omniORB: Deactivating: root<35> (has local refs).
omniORB: strand Rope::incrRefCount: old value = 30
omniORB: Object is still busy -- etherealise later.
ll_send: 24 bytes
4749 4f50 0100 0001 0000 000c 0000 0000 GIOP............
0000 6d8c 0000 0000                     ..m.....
omniORB: POA(RootPOA) etherealising detached object.
 id: IDL:att.com/AttNotification/EventChannel:1.0
omniORB: RefCountServantBase has zero ref count -- deleted.
omniORB: omniLocalIdentity deleted.
ll_recv: 67 bytes
4749 4f50 0100 0000 0000 0037 0000 0000 GIOP.......7....
0000 6d8d 0100 0000 0000 000e fe3c 0ff0 ..m..........<..
29c4 6400 0000 0000 0026 0000 0000 0008 ).d......&......
6465 7374 726f 7900 0000 0007 6e6f 626f destroy.....nobo
6479 00                                 dy.
omniORB: Deactivating: root<38> (has local refs).
omniORB: strand Rope::incrRefCount: old value = 31
omniORB: Object is still busy -- etherealise later.
ll_send: 24 bytes
4749 4f50 0100 0001 0000 000c 0000 0000 GIOP............
0000 4fc9 0000 0000                     ..O.....
ll_send: 72 bytes
4749 4f50 0100 0001 0000 003c 0000 0000 GIOP.......<....
0000 6d8d 0000 0002 0000 0021 4944 4c3a ..m........!IDL:
6f6d 672e 6f72 672f 434f 5242 412f 494e omg.org/CORBA/IN
omniORB: POA(RootPOA) etherealising detached object.
 id: IDL:att.com/AttNotification/EventChannel:1.0
omniORB: RefCountServantBase has zero ref count -- deleted.
565f 4f42 4a52 4546 3a31 2e30 0054 3a31 V_OBJREF:1.0.T:1
0000 0000 0000 0001                     ........
omniORB: omniLocalIdentity deleted.
ll_recv: 67 bytes
4749 4f50 0100 0000 0000 0037 0000 0000 GIOP.......7....
0000 4fca 0100 0000 0000 000e fe3c 0ff0 ..O..........<..
29c4 6400 0000 0000 0023 0000 0000 0008 ).d......#......
6465 7374 726f 7900 0000 0007 6e6f 626f destroy.....nobo
6479 00                                 dy.
omniORB: throw OBJECT_NOT_EXIST from poa.cc:1355
ll_send: 76 bytes
4749 4f50 0100 0001 0000 0040 0000 0000 GIOP.......@....
0000 4fca 0000 0002 0000 0027 4944 4c3a ..O........'IDL:
6f6d 672e 6f72 672f 434f 5242 412f 4f42 omg.org/CORBA/OB
4a45 4354 5f4e 4f54 5f45 5849 5354 3a31 JECT_NOT_EXIST:1
2e30 0028 0000 0000 0000 0001           .0.(........
omniORB: scavenger : scanning connections
omniORB: throw omniConnectionBroken (minor 2) from
tcpSocketMTfactory.cc:1078
omniORB: tcpSocketMTfactory Worker: #### Connection closed.
omniORB: tcpSocketMTfactory Worker: exit.
omniORB: tcpSocketStrand::~Strand() close socket no. 7
omniORB: throw omniConnectionBroken (minor 2) from
tcpSocketMTfactory.cc:1078
...


I'm not sure, but it looks like notifd IS sending the INV_OBJREF to the
client.  But is this the correct behavior for this case?

Matt

Duncan Grisby wrote:
> 
> On Friday 16 November, "Matthew N. White" wrote:
> 
> > Ok, the strange thing is notifd doesn't show any INV_OBJREF exceptions
> > thrown.  It does show the OBJECT_NOT_EXIST's, though.
> 
> That is odd. Can you try with -ORBtraceLevel 30 on both client and
> notifd. That will show all the GIOP traffic, which might help.
> 
> Cheers,
> 
> Duncan.
> 
> --
>  -- Duncan Grisby  \  Research Engineer  --
>   -- AT&T Laboratories Cambridge          --
>    -- http://www.uk.research.att.com/~dpg1 --

-- 
Matthew N. White
Marconi Plc.
724-742-6758