[omniORB] *** glibc detected *** ./client_corba: munmap_chunk(): invalid pointer: 0x0804d620 *** when running ECHO example!

LQV0604 lqv lqv0604 at gmail.com
Tue Feb 20 17:48:20 GMT 2007


Thank Carlos . I have just solved my problems. Your solution helps me a lot.

Thanks you so much.
Best regards,


On 2/20/07, Carlos <carlos at canama.net> wrote:
>
> El mar, 20-02-2007 a las 01:06 +0700, LQV0604 lqv escribió:
> > I running the example "Echo" but there are errors occured. Here is my
> > trace log.
> > Could you please help me to solve the problems?
> > Any help will be greatly appreciate!
> >
> > Thanks and Best regards,
> >
> > Running:
> > $./echo
> >
> > CODE
> >
> > #include <iostream>
> > #include "echo.hh"
> > using namespace std;
> >
> > class Echo_i : public POA_Echo{
> > public:
> >     inline Echo_i(){};
> >     inline ~Echo_i(){};
> >     virtual char* echoString(const char* mesg);
> > };
> >
> > char * Echo_i::echoString(const char* mesg){
> Here is the problem:
> >     return "Hello world";
>
> you must return CORBA::string_dup("Hello world");
>
> Because the server part of ORB try to delete the pointer returned by
> Echo_i::echoString() after putting the message in the "wire".
>
> Cheers.
>
> Carlos.
>
> > };
> > static void hello(Echo_ptr e)
> > {
> >   if( CORBA::is_nil(e) ) {
> >     cerr << "hello: The object reference is nil!\n" << endl;
> >     return;
> >   }
> >   CORBA::String_var src = (const char*) "Hello!";
> >   // String literals are (char*) rather than (const char*) on some
> >   // old compilers. Thus it is essential to cast to (const char*)
> >   // here to ensure that the string is copied, so that the
> >   // CORBA::String_var does not attempt to \u2019delete\u2019 the
> > string
> >   // literal.
> >   CORBA::String_var dest = e->echoString(src);
> >   cout << "I said, \"" << (char*)src << "\"." << endl
> >        << "The Echo object replied, \"" << (char*)dest <<"\"." <<
> > endl;
> > };
> >
> >
> > int main(int argc, char *argv[]){
> >     try {
> >   // Initialise the ORB.
> >   CORBA::ORB_var orb = CORBA::ORB_init(argc, argv);
> >   // Obtain a reference to the root POA.
> >   //CORBA::Object_var obj =
> > orb->resolve_initial_references("RootPOA");
> >   CORBA::Object_var obj = orb->resolve_initial_references("RootPOA");
> >   PortableServer::POA_var poa = PortableServer::POA::_narrow(obj);
> >     // We allocate the object on the heap. Since this is a reference
> >     // counted object, it will be deleted by the POA when it is no
> >     // longer needed.
> >   Echo_i* myecho = new Echo_i();
> >   // Activate the object. This tells the POA that this object is
> >   // ready to accept requests.
> >   PortableServer::ObjectId_var myechoid =
> > poa->activate_object(myecho);
> >     // Obtain a reference to the object.
> >   Echo_var myechoref = myecho->_this();
> >   // Decrement the reference count of the object implementation, so
> >   // that it will be properly cleaned up when the POA has determined
> >   // that it is no longer needed.
> >   myecho->_remove_ref();
> >   // Obtain a POAManager, and tell the POA to start accepting
> >   // requests on its objects.
> >   PortableServer::POAManager_var pman = poa->the_POAManager();
> >   pman->activate();
> >   // Do the client-side call.
> >   hello(myechoref);
> >   // Clean up all the resources.
> >   orb->destroy();
> > }
> >     catch(CORBA::SystemException& ex) {
> >           cerr << "Caught CORBA::" << ex._name() << endl;
> >     }
> >     catch(CORBA::Exception& ex) {
> >           cerr << "Caught CORBA::Exception: " << ex._name() << endl;
> >     }
> >     catch(omniORB::fatalException& fe) {
> >           cerr << "Caught omniORB::fatalException:" << endl;
> >           cerr << " file: " << fe.file() << endl;
> >           cerr << " line: " << fe.line() << endl;
> >           cerr << " mesg: " << fe.errmsg() << endl;
> >     }
> >     cout << "Hello world";
> >     return 0;
> > };
> >
> > TRACE LOG
> > omniORB: (0) 2007-02-19 23:30:21.586723: Distribution date: Tue Nov 28
> > 13:27:23 GMT 2006 dgrisby
> > omniORB: (0) 2007-02-19 23:30:21.587388: My addresses are:
> > omniORB: 127.0.0.1
> > omniORB: 192.168.1.5
> > omniORB: ::1
> > omniORB: (0) 2007-02-19 23:30:21.587681: Maximum supported GIOP
> > version is 1.2
> > omniORB: (0) 2007-02-19 23:30: 21.587922: Native char code sets:
> > ISO-8859-1 UTF-8.
> > omniORB: (0) 2007-02-19 23:30:21.588065: Transmission char code sets:
> > ISO-8859-1(1.2) ISO-8859-1(1.1) ISO-8859-1(1.0) UTF-8(1.2) UTF-8(1.1).
> > omniORB: (0) 2007-02-19 23:30: 21.588175: Native wide char code sets:
> > UTF-16.
> > omniORB: (0) 2007-02-19 23:30:21.588296: Transmission wide char code
> > sets: UTF-16(1.2).
> > omniORB: (0) 2007-02-19 23:30:21.588438: Information: the omniDynamic
> > library is not linked.
> > omniORB: (0) 2007-02-19 23:30:21.588807: Current configuration is as
> > follows:
> > omniORB:   DefaultInitRef (file) =
> > omniORB:   DefaultInitRef (args) =
> > omniORB:   InitRef =
> >
> NameService=IOR:010000002b00000049444c3a6f6d672e6f72672f436f734e616d696e672f4e616d696e67436f6e746578744578743a312e300000010000000000000060000000010102000c0000003139322e3136382e312e3500f90a00000b0000004e616d6553657276696365000200000000000000080000000100000000545441010000001c00000001000000010001000100000001000105090101000100000009010100
> > omniORB:   abortOnInternalError = 0
> > omniORB:   abortOnNativeException = 0
> > omniORB:   acceptBiDirectionalGIOP = 0
> > omniORB:   acceptMisalignedTcIndirections = 0
> > omniORB:   bootstrapAgentHostname =
> > omniORB:   bootstrapAgentPort = 900
> > omniORB:   clientCallTimeOutPeriod = 0
> > omniORB:   clientConnectTimeOutPeriod = 0
> > omniORB:   clientTransportRule = * unix,ssl,tcp
> > omniORB:   configFile = /etc/omniORB.cfg
> > omniORB:   connectionWatchImmediate = 0
> > omniORB:   connectionWatchPeriod = 50000
> > omniORB:   copyValuesInLocalCalls = 1
> > omniORB:   diiThrowsSysExceptions = 0
> > omniORB:   dumpConfiguration = 1
> > omniORB:   endPoint = giop:tcp::
> > omniORB:   endPointPublish = addr
> > omniORB:   giopMaxMsgSize = 2097152
> > omniORB:   giopTargetAddressMode = KeyAddr
> > omniORB:   id = omniORB4
> > omniORB:   idleThreadTimeout = 10
> > omniORB:   inConScanPeriod = 180
> > omniORB:   lcdMode = 0
> > omniORB:   maxGIOPConnectionPerServer = 5
> > omniORB:   maxGIOPVersion = 1.2
> > omniORB:   maxInterleavedCallsPerConnection = 5
> > omniORB:   maxServerThreadPerConnection = 100
> > omniORB:   maxServerThreadPoolSize = 100
> > omniORB:   maxSocketRecv = 2147483647
> > omniORB:   maxSocketSend = 2147483647
> > omniORB:   nativeCharCodeSet = ISO-8859-1
> > omniORB:   nativeWCharCodeSet = UTF-16
> > omniORB:   objectTableSize = 0
> > omniORB:   offerBiDirectionalGIOP = 0
> > omniORB:   oneCallPerConnection = 1
> > omniORB:   outConScanPeriod = 120
> > omniORB:   poaHoldRequestTimeout = 0
> > omniORB:   poaUniquePersistentSystemIds = 1
> > omniORB:   principal = [Null]
> > omniORB:   scanGranularity = 5
> > omniORB:   serverCallTimeOutPeriod = 0
> > omniORB:   serverTransportRule = * unix,ssl,tcp
> > omniORB:   strictIIOP = 1
> > omniORB:   supportBootstrapAgent = 0
> > omniORB:   supportCurrent = 1
> > omniORB:   supportPerThreadTimeOut = 0
> > omniORB:   tcAliasExpand = 0
> > omniORB:   threadPerConnectionLowerLimit = 9000
> > omniORB:   threadPerConnectionPolicy = 1
> > omniORB:   threadPerConnectionUpperLimit = 10000
> > omniORB:   threadPoolWatchConnection = 1
> > omniORB:   traceExceptions = 1
> > omniORB:   traceFile = [stderr]
> > omniORB:   traceInvocationReturns = 1
> > omniORB:   traceInvocations = 1
> > omniORB:   traceLevel = 40
> > omniORB:   traceThreadId = 1
> > omniORB:   traceTime = 1
> > omniORB:   unixTransportDirectory = /tmp/omni-%u
> > omniORB:   unixTransportPermission =  777
> > omniORB:   useTypeCodeIndirections = 1
> > omniORB:   verifyObjectExistsAndType = 1
> > omniORB: (0) 2007-02-19 23:30:21.589361: Initialising incoming
> > endpoints.
> > omniORB: (0) 2007-02-19 23:30: 21.589529: Instantiate endpoint
> > 'giop:tcp::0'
> > omniORB: (0) 2007-02-19 23:30:21.590103: Bind to address ::
> > omniORB: (0) 2007-02-19 23:30:21.590471: Publish specification: 'addr'
> > omniORB: (0) 2007-02-19 23:30: 21.590665: Try to publish 'addr' for
> > endpoint giop:tcp:192.168.1.5:44206
> > omniORB: (0) 2007-02-19 23:30:21.590812: Publish endpoint
> > 'giop:tcp:192.168.1.5:44206'
> > omniORB: (0) 2007-02-19 23:30:21.591034: Starting serving incoming
> > endpoints.
> > omniORB: (0) 2007-02-19 23:30:21.591384: Adding root<0> (activating)
> > to object table.
> > omniORB: (0) 2007-02-19 23:30: 21.591592: State root<0> (activating)
> > -> active
> > omniORB: (0) 2007-02-19 23:30:21.591820: Creating ref to local:
> > root<0>
> >  target id      : IDL:Echo:1.0
> >  most derived id: IDL:Echo:1.0
> > omniORB: (0) 2007-02-19 23:30:21.592057: Dispatching local call
> > 'echoString' to root<0> (active)
> > omniORB: (0) 2007-02-19 23:30: 21.592227: Return from local call
> > 'echoString' to root<0> (active)
> > *** glibc detected *** ./echo: munmap_chunk(): invalid pointer:
> > 0x0804d620 ***
> > ======= Backtrace: =========
> > /lib/libc.so.6(cfree+0x1bb)[0x4930a67b]
> > /usr/lib/libstdc++.so.6(_ZdlPv+0x21)[0x41a6fef1]
> > /usr/lib/libstdc++.so.6(_ZdaPv+0x1d)[0x41a6ff4d]
> > ./echo[0x804b9a6]
> > ./echo[0x804b9c0]
> > ./echo[0x804c06e]
> > ./echo[0x804c287]
> > /lib/libc.so.6(__libc_start_main+0xdc)[0x492b6f2c]
> > ./echo(__gxx_personality_v0+0x85)[0x804a1c1]
> > ======= Memory map: ========
> > 0063a000-007a8000 r-xp 00000000 fd:00
> > 190170     /usr/local/lib/libomniORB4.so.1.0
> > 007a8000-007b5000 rwxp 0016e000 fd:00
> > 190170     /usr/local/lib/libomniORB4.so.1.0
> > 007b5000-007b6000 rwxp 007b5000 00:00 0
> > 00a5a000-00a5b000 r-xp 00a5a000 00:00 0          [vdso]
> > 00ff8000-00ffd000 r-xp 00000000 fd:00
> > 190166     /usr/local/lib/libomnithread.so.3.3
> > 00ffd000-00ffe000 rwxp 00004000 fd:00
> > 190166     /usr/local/lib/libomnithread.so.3.3
> > 08048000-0804f000 r-xp 00000000 fd:00
> > 1201850    /root/workspace/echo/Debug/echo
> > 0804f000-08050000 rwxp 00006000 fd:00
> > 1201850    /root/workspace/echo/Debug/echo
> > 08789000-087aa000 rwxp 08789000 00:00 0
> > 419ae000-419b9000 r-xp 00000000 fd:00
> > 2076850    /lib/libgcc_s-4.1.1-20070105.so.1
> > 419b9000-419ba000 rwxp 0000a000 fd:00
> > 2076850    /lib/libgcc_s-4.1.1-20070105.so.1
> > 419bc000-41a9c000 r-xp 00000000 fd:00 168053     /usr/lib/libstdc
> > ++.so.6.0.8
> > 41a9c000-41a9f000 r-xp 000e0000 fd:00 168053     /usr/lib/libstdc
> > ++.so.6.0.8
> > 41a9f000-41aa1000 rwxp 000e3000 fd:00 168053     /usr/lib/libstdc
> > ++.so.6.0.8
> > 41aa1000-41aa7000 rwxp 41aa1000 00:00 0
> > 488d2000-488eb000 r-xp 00000000 fd:00 2078731    /lib/ld- 2.5.so
> > 488eb000-488ec000 r-xp 00018000 fd:00 2078731    /lib/ld-2.5.so
> > 488ec000-488ed000 rwxp 00019000 fd:00 2078731    /lib/ld-2.5.so
> > 492a1000-493d8000 r-xp 00000000 fd:00 2078732    /lib/libc-2.5.so
> > 493d8000-493da000 r-xp 00137000 fd:00 2078732    /lib/libc-2.5.so
> > 493da000-493db000 rwxp 00139000 fd:00 2078732    /lib/libc- 2.5.so
> > 493db000-493de000 rwxp 493db000 00:00 0
> > 493e0000-49405000 r-xp 00000000 fd:00 2078739    /lib/libm-2.5.so
> > 49405000-49406000 r-xp 00024000 fd:00 2078739    /lib/libm- 2.5.so
> > 49406000-49407000 rwxp 00025000 fd:00 2078739    /lib/libm-2.5.so
> > 4940f000-49422000 r-xp 00000000 fd:00
> > 2078734    /lib/libpthread-2.5.so
> > 49422000-49423000 r-xp 00012000 fd:00
> > 2078734    /lib/libpthread-2.5.so
> > 49423000-49424000 rwxp 00013000 fd:00
> > 2078734    /lib/libpthread-2.5.so
> > 49424000-49426000 rwxp 49424000 00:00 0
> > b75b4000-b75b5000 ---p b75b4000 00:00 0
> > b75b5000-b7fb7000 rw-p b75b5000 00:00 0
> > b7fc6000-b7fc8000 rw-p b7fc6000 00:00 0
> > bfad7000-bfaec000 rw-p bfad7000 00:00 0          [stack]
> >
> > _______________________________________________
> > omniORB-list mailing list
> > omniORB-list at omniorb-support.com
> > http://www.omniorb-support.com/mailman/listinfo/omniorb-list
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20070220/0ae05456/attachment-0001.htm


More information about the omniORB-list mailing list