Re: Interoperability of Orbit2



Hi Munaut,

On Sat, 2003-03-15 at 14:37, Munaut Sylvain wrote:
> No ... The code come directly from CVS. Same problem with the latest 
> stable release ...

	Great :-) I've just committed some debugging cleanups to HEAD ORBit2 to
make the problem more obvious.

> The new log is at :
> http://www.246tNt.com/vu_demarshal.log

	Ok - brilliant; this shows the problem beautifully:

Incoming IIOP body:
0x0000:   00 8b 30 b0  03 00 00 00  00 00 00 00  00 00 00 1c | ..0.............    
0x0010:   00 00 00 00  34 e3 03 6a  1d 1d 24 b3  66 7d c5 00 | ....4..j..$.f}..
0x0020:   80 8e 72 09  01 00 00 00  dd c0 f8 88  00 00 00 0a | ..r.............
0x0030:   72 65 70 6c  61 63 65 56  75 00 00 00  00 00 00 00 | replaceVu.......
0x0040:   20 XX XX XX  XX XX XX XX  XX XX XX XX  XX XX XX XX | .***************
end header demarshal 0x80545a0 0x80545ed
p28676 : ([0x8050c10])->replaceVu (recv_buffer->end - recv_buffer->cur : -3

	So - the thing that masks the error is the fact that the debug offsets
are from the start of the message body and not the header. If we used
the correct start offset (0xc) we'd see that in fact the ORB you're
talking to is doing 8 byte alignments to the start of the message body,
and not the full message.

	IMHO this is a bug in the ORB you're talking to; thus if we do an
alignment to 8 byte offsets; we align 0x4c to 8 byte boundaries == 0x50
which when we subtract 12 gives us: 0x44 - which is 3 bytes past the
end of the buffer.

	Anyhow - we also have a bug in that we're not correctly reporting an
exception in this case, and passing duff data to the user-land code.

	So I'll poke at fixing that; since it's particularly nasty, you need
to get onto your ORB provider :-) [ or point me at the spec. where it
says alignment should be to the beginning of the message body, rather
than the full message :-] - since we inter-op fine with several other
ORBs I'm assuming we get this right.

	HTH,

		Michael.


-- 
 mmeeks@gnu.org  <><, Pseudo Engineer, itinerant idiot




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