[Ace-users] Re: CORBA IOR seems to be malformed/incorrect

Somindra Bhattacharya somindrab at gmail.com
Thu Oct 4 08:10:05 CDT 2007


On Sep 27, 9:39 am, Somindra  Bhattacharya <somind... at gmail.com>
wrote:
> On Sep 25, 12:10 pm, "Johnny Willemsen" <jwillem... at remedy.nl> wrote:
>
>
>
> > Hi,
>
> > Ignore my previous email, I found a bug in the catior tool and made a
> > copy/past error with your IOR., which I just fixed. When I run catior with
> > 1.6.1 I do get the output below, it works without problems, so I recommend
> > an upgrade to 1.6.1 which you can obtain fromhttp://download.dre.vanderbilt.edu
>
> > Regards,
>
> > Johnny Willemsen
> > Remedy IT
> > Postbus 101
> > 2650 AC  Berkel en Rodenrijs
> > The Netherlandswww.theaceorb.nl/www.remedy.nl
>
> > *** Integrated compile and test statistics seehttp://scoreboard.theaceorb.nl***
> > *** Commercial service and support for ACE/TAO/CIAO             ***
> > *** Seehttp://www.theaceorb.nl/en/support.html               ***
>
> > decoding an IOR:
> > The Byte Order: Big Endian
> > The Type Id:    "LRM_Servant"
> > Number of Profiles in IOR:      5
> > Profile number: 1
> > IIOP Version:   1.2
> >      Host Name: sun1
> >      Port Number:       45802
> >      Object Key len:    27
> >      Object Key as hex:
> >      14 01 0f 00 52 53 54 46 f7 99 9c 00 02 16 ee 00
> >      00 00 00 00 00 00 01 00 00 00 01
> >      The Object Key as string:
> >      ....RSTF...................
> >      The component <1> ID is 0 (TAG_ORB_TYPE)
> >              ORB Type: 0x54414f00 (TAO)
> >      The component <2> ID is 1 (TAG_CODE_SETS)
> >         Component length: 24
> >         Component byte order:   Big Endian
> >         Native CodeSet for char:  Hex - 10001   Description -  ASCII
> >         Number of CCS for char 1
> >         Conversion Codesets for char are:
> >         1)  Hex - 5010001       Description -  Unknown CodeSet
> >         Native CodeSet for wchar:  Hex - 10109  Description -  Unicode
> >         Number of CCS for wchar 0
> > Profile number: 2
> > IIOP Version:   1.2
> >      Host Name: sun-cs
> >      Port Number:       45802
> >      Object Key len:    27
> >      Object Key as hex:
> >      14 01 0f 00 52 53 54 46 f7 99 9c 00 02 16 ee 00
> >      00 00 00 00 00 00 01 00 00 00 01
> >      The Object Key as string:
> >      ....RSTF...................
> >      The component <1> ID is 0 (TAG_ORB_TYPE)
> >              ORB Type: 0x54414f00 (TAO)
> >      The component <2> ID is 1 (TAG_CODE_SETS)
> >         Component length: 24
> >         Component byte order:   Big Endian
> >         Native CodeSet for char:  Hex - 10001   Description -  ASCII
> >         Number of CCS for char 1
> >         Conversion Codesets for char are:
> >         1)  Hex - 5010001       Description -  Unknown CodeSet
> >         Native CodeSet for wchar:  Hex - 10109  Description -  Unicode
> >         Number of CCS for wchar 0
> > Profile number: 3
> > IIOP Version:   1.2
> >      Host Name: sun-cslocal-vip
> >      Port Number:       45802
> >      Object Key len:    27
> >      Object Key as hex:
> >      14 01 0f 00 52 53 54 46 f7 99 9c 00 02 16 ee 00
> >      00 00 00 00 00 00 01 00 00 00 01
> >      The Object Key as string:
> >      ....RSTF...................
> >      The component <1> ID is 0 (TAG_ORB_TYPE)
> >              ORB Type: 0x54414f00 (TAO)
> >      The component <2> ID is 1 (TAG_CODE_SETS)
> >         Component length: 24
> >         Component byte order:   Big Endian
> >         Native CodeSet for char:  Hex - 10001   Description -  ASCII
> >         Number of CCS for char 1
> >         Conversion Codesets for char are:
> >         1)  Hex - 5010001       Description -  Unknown CodeSet
> >         Native CodeSet for wchar:  Hex - 10109  Description -  Unicode
> >         Number of CCS for wchar 0
> > Profile number: 4
> > IIOP Version:   1.2
> >      Host Name: sun-cs-stndby
> >      Port Number:       45802
> >      Object Key len:    27
> >      Object Key as hex:
> >      14 01 0f 00 52 53 54 46 f7 99 9c 00 02 16 ee 00
> >      00 00 00 00 00 00 01 00 00 00 01
> >      The Object Key as string:
> >      ....RSTF...................
> >      The component <1> ID is 0 (TAG_ORB_TYPE)
> >              ORB Type: 0x54414f00 (TAO)
> >      The component <2> ID is 1 (TAG_CODE_SETS)
> >         Component length: 24
> >         Component byte order:   Big Endian
> >         Native CodeSet for char:  Hex - 10001   Description -  ASCII
> >         Number of CCS for char 1
> >         Conversion Codesets for char are:
> >         1)  Hex - 5010001       Description -  Unknown CodeSet
> >         Native CodeSet for wchar:  Hex - 10109  Description -  Unicode
> >         Number of CCS for wchar 0
> > Profile number: 5
> > catior returned true
>
> > "Somindra Bhattacharya" <somind... at gmail.com> wrote in message
> > <news:1190702667.146575.178640 at 50g2000hsm.googlegroups.com>...
>
> > >     TAO VERSION: 1.5
> > >     ACE VERSION: 5.5
>
> > >     HOST MACHINE and OPERATING SYSTEM:
> > >     SunOS sun1 5.10 Generic_125100-10 sun4u sparc SUNW,Sun-Fire-V215
>
> > >     TARGET MACHINE and OPERATING SYSTEM, if different from HOST:
> > >     COMPILER NAME AND VERSION (AND PATCHLEVEL):
> > >     g++:
> > >     bash-3.00$ /usr/sfw/bin/g++ -v
> > >     Reading specs from /usr/sfw/lib/gcc/sparc-sun-solaris2.10/3.4.3/
> > > specs
> > >     Configured with: /gates/sfw10/builds/sfw10-gate/usr/src/cmd/gcc/
> > > gcc-3.4.3/
> > >    configure --prefix=/usr/sfw --with-as=/usr/sfw/bin/gas --with-gnu-as
> > > --with-
> > >     ld=/usr/ccs/bin/ld --without-gnu-ld --enable-languages=c,c++ --
> > > enable-shared
> > >     Thread model: posix
> > >     gcc version 3.4.3 (csl-sol210-3_4-branch+sol_rpath)
>
> > >     THE $ACE_ROOT/ace/config.h FILE:
> > >     (Should I copy the contents of the file here?)
>
> > >     THE $ACE_ROOT/include/makeinclude/platform_macros.GNU FILE:
> > >     platform_sunos5_g++.GNU
>
> > >     CONTENTS OF $ACE_ROOT/bin/MakeProjectCreator/config/
> > > default.features
> > >     (used by MPC when you generate your own makefiles):
>
> > >     There is no such file in my build area.
>
> > >     AREA/CLASS/EXAMPLE AFFECTED:
>
> > >     DOES THE PROBLEM AFFECT:
> > >         COMPILATION?
> > >         No.
>
> > >         LINKING?
> > >         No.
>
> > >         EXECUTION?
> > >      Yes.
>
> > >         OTHER (please specify)?
>
> > >     SYNOPSIS:
> > >     CORBA IOR seems to be malformed/incorrect.
>
> > >     DESCRIPTION:
> > >     I observed that one of our processes threw an error message:
>
> > >     "TAO (9631|9) ERROR: Could not create all profiles while
> > > extracting object
> > >     TAO (9631|9) ERROR: reference from the CDR stream."
>
> > >     The problem seems to be the IOR:
>
> > > IOR:
>
> > 000000000000000c4c524d5f53657276616e740000000005000000000000006400010200000
>
> > 0000573756e310000b2ea0000001b14010f0052535446f7999c000216ee00000000000000010
> > 000
>
> > 0001000000000200000000000000080000000054414f00000000010000001800000000000100
> > 010
>
> > 00000010501000100010109000000000000000000000068000102000000000773756e2d63730
> > 0ea
>
> > B2ea001b0000001b14010f0052535446f7999c000216ee000000000000000100000001020000
> > 000
>
> > 200000000000000080000000054414f000000000100000018000000000001000100000001050
> > 100
>
> > 0100010109000000000000000000000070000102000000001073756e2d63736c6f63616c2d76
> > 697
>
> > 000b2ea0f000000001b14010f0052535446f7999c000216ee000000000000000100000001000
> > 000
>
> > 000200000000000000080000000054414f000000000100000018000000000001000100000001
> > 050
>
> > 100010001010900000000000000000000006c000102000000000e73756e2d63732d73746e646
> > 279
>
> > 00b2ea0000001b14010f0052535446f7999c000216ee00000000000000010000000100000000
> > 020
>
> > 0000000000000080000000054414f00000000010000001800000000000100010000000105010
> > 001
>
> > > 00010109000000000000000000000070000102000000000f73756e2d63736d676d742d7669
>
> > > I tried using catior, but that produces a seemingly endless stream as
> > > output:
>
> > >      36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36
> > >      36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36
> > >      36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36
> > >      36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36
> > >      36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36
> > >      36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36
> > >      36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36
> > >      36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36
> > >      36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36
> > >      36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36
> > >      36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36
> > >      36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36
> > >      36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36
> > >      36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36
> > >      36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36
> > >      36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36
> > >      36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36
> > >      36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36
> > >      36 36 36 36 36 36 36 36 36 ^C
>
> > > Please note that the test machine is a multi-homed machine with 4
> > > physical and 3 virtual
> > > interfaces (not including the local loopback).
>
> > > What could have caused this? Any pointers?
>
> > >     REPEAT BY:
> > > I have seen this happen a couple of times but is not reproducible at
> > > will.
> > > I do not know what caused this.
>
> > >     SAMPLE FIX/WORKAROUND:
> > > I restarted the processes with the faulty IORs and it seemed to go
> > > away for now.
>
> Thanks! I am currently upgrading to 1.6.1 and will look out for this
> problem.
>
> Regards,Somindra

Hi Everyone,

I upgraded to 1.6.1. But I see a similar problem.

Here is the IOR in question:

IOR:
010000002700000049444c3a73796c616e74726f2e636f6d2f77645761746368646f672f436c69656e743a312e300000050000000000000074000000010102000a000000696673312d63736231001af02500000014010f0052535408e30447623e070000000000010000005761746368646f67436c69656e7400000002000000000000000800000001000000004f41540100000018000000010000000100010001000000010001050901010000000000000000007c0000000101020011000000696673312d6373622d7369672d76697000731af02500000014010f0052535408e30447623e070000000000010000005761746368646f67436c69656e7474636802000000000000000800000001000000004f4154010000001800000001000000010001000100000001000105090101000000000000000000800000000101020015000000696673312d6373622d707269766174652d76697000531af02500000014010f0052535408e30447623e070000000000010000005761746368646f67436c69656e7400000002000000000000000800000001000000004f415401000000180000000100000001000100010000000100010509010100000000000000000088000000010102001c000000696673312d6373622d707269766174652d7374616e646279766970001af054082500000014010f0052535408e30447623e070000000010000005761746368646f67436c69656e7400000002000000000000000800000001000000004f4154010000001800000001000000010001000100000001000105090101000000000000000000800000000101020013000000696673312d637362312d6d676d742d76697000701af01af02500000014010f0052535408e30447623e070000000000010000005761746368646f67436c69656e7400000002000000000000000800000001000000004f41540100000018000000010000000100010001000000010001050901010000000000

I get this error from TAO, when the app tries to "process" this IOR:

TAO (13634|16) ERROR: Could not create all profiles while extracting
object
TAO (13634|16) ERROR: reference from the CDR stream.

Here is the output from catior:

decoding an IOR:
The Byte Order: Little Endian
The Type Id:    "IDL:sylantro.com/wdWatchdog/Client:1.0"
Number of Profiles in IOR:      5
Profile number: 1
IIOP Version:   1.2
     Host Name: ifs1-csb1
     Port Number:       61466
     Object Key len:    37
     Object Key as hex:
     14 01 0f 00 52 53 54 08 e3 04 47 62 3e 07 00 00
     00 00 00 01 00 00 00 57 61 74 63 68 64 6f 67 43
     6c 69 65 6e 74
     The Object Key as string:
     ....RST...Gb>..........WatchdogClient
     The component <1> ID is 0 (TAG_ORB_TYPE)
             ORB Type: 0x54414f00 (TAO)
     The component <2> ID is 1 (TAG_CODE_SETS)
        Component length: 24
        Component byte order:   Little Endian
        Native CodeSet for char:  Hex - 10001   Description -  ASCII
        Number of CCS for char 1
        Conversion Codesets for char are:
        1)  Hex - 5010001       Description -  Unknown CodeSet
        Native CodeSet for wchar:  Hex - 10109  Description -
Unicode
        Number of CCS for wchar 0
Profile number: 2
IIOP Version:   1.2
     Host Name: ifs1-csb-sig-vip
     Port Number:       61466
     Object Key len:    37
     Object Key as hex:
     14 01 0f 00 52 53 54 08 e3 04 47 62 3e 07 00 00
     00 00 00 01 00 00 00 57 61 74 63 68 64 6f 67 43
     6c 69 65 6e 74
     The Object Key as string:
     ....RST...Gb>..........WatchdogClient
     The component <1> ID is 0 (TAG_ORB_TYPE)
             ORB Type: 0x54414f00 (TAO)
     The component <2> ID is 1 (TAG_CODE_SETS)
        Component length: 24
        Component byte order:   Little Endian
        Native CodeSet for char:  Hex - 10001   Description -  ASCII
        Number of CCS for char 1
        Conversion Codesets for char are:
        1)  Hex - 5010001       Description -  Unknown CodeSet
        Native CodeSet for wchar:  Hex - 10109  Description -
Unicode
        Number of CCS for wchar 0
Profile number: 3
IIOP Version:   1.2
     Host Name: ifs1-csb-private-vip
     Port Number:       61466
     Object Key len:    37
     Object Key as hex:
     14 01 0f 00 52 53 54 08 e3 04 47 62 3e 07 00 00
     00 00 00 01 00 00 00 57 61 74 63 68 64 6f 67 43
     6c 69 65 6e 74
     The Object Key as string:
     ....RST...Gb>..........WatchdogClient
     The component <1> ID is 0 (TAG_ORB_TYPE)
             ORB Type: 0x54414f00 (TAO)
     The component <2> ID is 1 (TAG_CODE_SETS)
        Component length: 24
        Component byte order:   Little Endian
        Native CodeSet for char:  Hex - 10001   Description -  ASCII
        Number of CCS for char 1
        Conversion Codesets for char are:
        1)  Hex - 5010001       Description -  Unknown CodeSet
        Native CodeSet for wchar:  Hex - 10109  Description -
Unicode
        Number of CCS for wchar 0
Profile number: 4
IIOP Version:   1.2
     Host Name: ifs1-csb-private-standbyvip
     Port Number:       61466
     Object Key len:    37
     Object Key as hex:
     14 01 0f 00 52 53 54 08 e3 04 47 62 3e 07 00 00
     00 00 10 00 00 05 76 17 46 36 86 46 f6 74 36 c6
     96 56 e7 40 00
     The Object Key as string:
     ....RST...Gb>.........v.F6.F.t6..V. at .
Profile number: 5
     Profile tag = 524288 (unknown protocol)
     Profile body len:  268435456
     Profile body as hex:
     10 20 01 30 00 00 06 96 67 33 12 d6 37 36 23 12
     d6 d6 76 d7 42 d7 66 97 00 07 01 af 01 af 02 50
     00 00 01 40 10 f0 05 25 35 40 8e 30 44 76 23 e0
     70 00 00 00 00 00 10 00 00 05 76 17 46 36 86 46
     f6 74 36 c6 96 56 e7 40 00 00 00 20 00 00 00 00
     00 00 00 80 00 00 00 10 00 00 00 04 f4 15 40 10
     00 00 01 80 00 00 00 10 00 00 00 10 00 10 00 10
     00 00 00 10 00 10 50 90 10 10 00 00 00 00 catior returned true

Notice that the output seems to get truncated. Another thing that I
would like to point out is that this host has multiple interfaces.
Here is the output from ifconfig:

ifs1-csb1:/ 65% ifconfig -a
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu
8232 index 1
        inet 127.0.0.1 netmask ff000000
bge0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500
index 2
        inet 172.16.252.51 netmask ffffff00 broadcast 172.16.252.255
        ether 0:1b:24:5d:a1:7e
bge0:1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500
index 2
        inet 172.16.252.69 netmask ffffff00 broadcast 172.16.252.255
bge1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500
index 3
        inet 10.10.10.1 netmask ffffff00 broadcast 10.10.10.255
        ether 0:1b:24:5d:a1:7f
nge0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500
index 4
        inet 172.16.252.72 netmask ffffff00 broadcast 172.16.252.255
        ether 0:1b:24:5d:a1:80
nge0:1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500
index 4
        inet 172.16.252.70 netmask ffffff00 broadcast 172.16.252.255
nge0:2: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500
index 4
        inet 172.16.252.71 netmask ffffff00 broadcast 172.16.252.255
nge1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500
index 5
        inet 172.16.252.75 netmask ffffff00 broadcast 172.16.252.255
        ether 0:1b:24:5d:a1:81
nge1:1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500
index 5
        inet 172.16.252.74 netmask ffffff00 broadcast 172.16.252.255

This problem does not happen when there are fewer interfaces (2 or 3
interfaces, for example). Is there an upper limit to the number of
interfaces a machine can be configured with for TAO to work correctly?

Any ideas what might be happening here?

Thanks for your help.

-Somindra



More information about the Ace-users mailing list