[omniORB] MARSHAL from pyMarshal.cc

Duncan Grisby duncan at grisby.org
Mon May 19 15:35:31 BST 2008


On Monday 19 May, Marco Ferreira wrote:

[...]
>     (17, 'IDL:Incognito/SNMPVersion:1.0', 'SNMPVersion',
>     (SNMP_V_UNKNOWN, SNMP_V1, SNMP_V2, SNMP_V3))
>     3219025932
>     omniORB: 2008-05-19 13:52:36.072857: throw MARSHAL from
>     pyMarshal.cc:3033 (NO,MARSHAL_InvalidEnumValue)
> 
> Note the extremely high value of 'e' variable.

Clearly the value unmarshalled is not an enum value at all. It is some
other data that, when interpreted as an unsigned long, has the large
value you see. (By the way, the reason your previous test showed a
negative number is that you used a %d format, which expects a signed
integer value.)

The only reasonable explanation is that the receiver has different IDL
to the sender, so the receiver is interpreting the marshalled data
incorrectly.

You might gain some insight by running with -ORBtraceLevel 40 which will
output the complete contents of all GIOP messages. You can hunt for the
number you're seeing, which in hex is BFDE700C, to see the context it is
in. If you're using a little-endian machine, it will appear reversed, as
0C70DEBF.

Cheers,

Duncan.

-- 
 -- Duncan Grisby         --
  -- duncan at grisby.org     --
   -- http://www.grisby.org --



More information about the omniORB-list mailing list