[omniORB] Uninitialized memory read errors reported in omniORB

BaileyK at schneider.com BaileyK at schneider.com
Fri Feb 18 11:49:26 GMT 2005


I believe it is normal.  There are padding bytes that are necessary for
alignment in the IIOP data.  omniORB does not initialize the padding bytes.

Kendall




                                                                                                                                           
                      Mike Wyatt                                                                                                           
                      <mwyatt at mpc-data.co.uk>              To:       omniorb-list at omniorb-support.com                                      
                      Sent by:                             cc:                                                                             
                      omniorb-list-bounces at omniorb-        Subject:  [omniORB] Uninitialized memory read errors reported in omniORB        
                      support.com                                                                                                          
                                                                                                                                           
                                                                                                                                           
                      02/18/2005 11:16 AM                                                                                                  
                                                                                                                                           




We have been using Rational Purify to debug a C++ based application running
on Solaris 8.  The application uses omniORB 4.0.1.  The application and
omniORB is compiled using Sun WorkShop 6 update 1 C++ 5.2.

There were some array bounds and free memory read errors reported by purify
that we traced to coding errors in the application source.  These have been
fixed but purify is still reporting some "UMR: Uninitialized memory read"
errors.  I cannot trace these back to our application source, they appear
to
be in the omniORB source.

Has anyone else seen similar UMRs in their applications?  Are any of these
issues a cause for concern?

Our application has been running stably for a week or so now so these
issues
don't seem to be causing any problems.

Thanks,
Mike Wyatt
MPC Data Limited


Purify output:

****  Purify instrumented ClipsES_Srv (pid 26643)  ****
UMR: Uninitialized memory read (2 times):
   * This is occurring while in:
             void omni::unix_get_ifinfo(omnivector<const char*>&)
[tcpTransportImpl.cc:242]
             void omni::tcpTransportImpl::initialise()
[tcpTransportImpl.cc:232]
             void omni::omni_giopEndpoint_initialiser::attach()
[giopEndpoint.cc:439]
             CORBA::ORB*CORBA::ORB_init(int&,char**,const char*,const
char*(*)[2])
[corbaOrb.cc:665]
             main           [ClipsES_Srv.cc:113]
             _start         [crt1.o]
   * Reading 4 bytes from 0x1bffcc in the heap.
   * Address 0x1bffcc is 20 bytes into a malloc'd block at 0x1bffb8 of 3520

bytes.
   * This block was allocated from:
             malloc         [rtlib.o]
             void omni::unix_get_ifinfo(omnivector<const char*>&)
[tcpTransportImpl.cc:242]
             void omni::tcpTransportImpl::initialise()
[tcpTransportImpl.cc:232]
             void omni::omni_giopEndpoint_initialiser::attach()
[giopEndpoint.cc:439]
             CORBA::ORB*CORBA::ORB_init(int&,char**,const char*,const
char*(*)[2])
[corbaOrb.cc:665]
             main           [ClipsES_Srv.cc:113]

****  Purify instrumented ClipsES_Srv (pid 26643)  ****
UMR: Uninitialized memory read (3 times):
   * This is occurring while in:
             _so_send       [libc.so.1]
             int omni::tcpConnection::Send(void*,unsigned,unsigned
long,unsigned long)
[tcpConnection.cc:178]
             void omni::giopStream::sendChunk(omni::giopStream_Buffer*)
[giopStream.cc:1076]
             void omni::giopImpl10::outputMessageEnd(omni::giopStream*)
[giopImpl10.cc:945]
             void omni::GIOP_C::InitialiseRequest() [GIOP_C.cc:144]
             void omniRemoteIdentity::dispatch(omniCallDescriptor&)
[remoteIdentity.cc:169]
   * Reading 100 bytes from 0x1cd778 in the heap (3 bytes at 0x1cd78d
uninit).
   * Address 0x1cd778 is 24 bytes into a malloc'd block at 0x1cd760 of 8220

bytes.
   * This block was allocated from:
             malloc         [rtlib.o]
             c2n6Fi_Pv___1  [libCrun.so.1]
             void*operator new(unsigned) [rtlib.o]
             void*operator new[](unsigned) [rtlib.o]

omni::giopStream_Buffer*omni::giopStream_Buffer::newBuffer(unsigned long)
[giopStream.cc:661]
             void omni::giopImpl10::outputNewMessage(omni::giopStream*)
[giopImpl10.cc:896]

****  Purify instrumented ClipsES_Srv (pid 26643)  ****
UMR: Uninitialized memory read (42 times):
   * This is occurring while in thread 11:
             _so_send       [libc.so.1]
             int omni::tcpConnection::Send(void*,unsigned,unsigned
long,unsigned long)
[tcpConnection.cc:178]
             void omni::giopStream::sendChunk(omni::giopStream_Buffer*)
[giopStream.cc:1076]
             void omni::giopImpl12::outputMessageEnd(omni::giopStream*)
[giopImpl12.cc:1319]
             void omni::GIOP_S::SendReply() [GIOP_S.cc:638]
             void omniCallHandle::upcall(omniServant*,omniCallDescriptor&)
[callHandle.cc:155]
   * Reading 257 bytes from 0x366850 in the heap (1 byte at 0x36687b
uninit).
   * Address 0x366850 is 24 bytes into a malloc'd block at 0x366838 of 8220

bytes.
   * This block was allocated from thread 11:
             malloc         [rtlib.o]
             c2n6Fi_Pv___1  [libCrun.so.1]
             void*operator new(unsigned) [rtlib.o]
             void*operator new[](unsigned) [rtlib.o]

omni::giopStream_Buffer*omni::giopStream_Buffer::newBuffer(unsigned long)
[giopStream.cc:661]
             void omni::giopImpl12::outputNewMessage(omni::giopStream*)
[giopImpl12.cc:1255]

****  Purify instrumented ClipsES_Srv (pid 26643)  ****
UMR: Uninitialized memory read (79 times):
   * This is occurring while in thread 8:
             mutex_unlock   [libthread.so.1]
             cond_timedwait [libthread.so.1]
             pthread_cond_timedwait [libthread.so.1]
             int omni_condition::timedwait(unsigned long,unsigned long)
[posix.cc:143]
             void omni::Scavenger::execute() [giopStrand.cc:647]
             void omniAsyncWorker::real_run() [omniAsyncInvoker.h:118]
   * Reading 4 bytes from 0x1c1fa4 in the heap (2 bytes at 0x1c1fa5
uninit).
   * Address 0x1c1fa4 is 12 bytes into a malloc'd block at 0x1c1f98 of 24
bytes.
   * This block was allocated from:
             malloc         [rtlib.o]
             c2n6Fi_Pv___1  [libCrun.so.1]
             void*operator new(unsigned) [rtlib.o]
             void omni::Scavenger::initialise() [giopStrand.cc:787]
             void omni::omni_giopStrand_initialiser::attach()
[giopStrand.cc:923]
             CORBA::ORB*CORBA::ORB_init(int&,char**,const char*,const
char*(*)[2])
[corbaOrb.cc:665]

****  Purify instrumented ClipsES_Srv (pid 26643)  ****
UMR: Uninitialized memory read (56 times):
   * This is occurring while in thread 11:
             mutex_unlock   [libthread.so.1]
             pthread_cond_wait [libthread.so.1]
             void omni_condition::wait() [posix.cc:134]
             void omni_rmutex::lock() [rmutex.cc:56]
             omni_optional_rlock::omni_optional_rlock(omni_rmutex*,int,int)
[rmutex.h:83]
             void
omni::omniOrbPOA::dispatch(omniCallHandle&,omniLocalIdentity*)
[poa.cc:1752]
   * Reading 4 bytes from 0x1c391c in the heap (2 bytes at 0x1c391d
uninit).
   * Address 0x1c391c is 12 bytes into a malloc'd block at 0x1c3910 of 56
bytes.
   * This block was allocated from:
             malloc         [rtlib.o]
             c2n6Fi_Pv___1  [libCrun.so.1]
             void*operator new(unsigned) [rtlib.o]
             omni::omniOrbPOA::omniOrbPOA(const
char*,omni::omniOrbPOAManager*,const
omni::omniOrbPOA::Policies&,omni::omniOrbPOA*) [poa.cc:2018]
             PortableServer::POA*omni::omniOrbPOA::create_POA(const
char*,PortableServer::POAManager*,const
_CORBA_Pseudo_Unbounded_Sequence<CORBA::Policy,_CORBA_PseudoObj_Member<CORBA::Policy,_CORBA_PseudoObj_Var<CORBA::Policy>

 > >&) [poa.cc:625]
             main           [ClipsES_Srv.cc:163]

****  Purify instrumented ClipsES_Srv (pid 26643)  ****
UMR: Uninitialized memory read (50 times):
   * This is occurring while in thread 11:
             mutex_unlock   [libthread.so.1]
             cond_timedwait [libthread.so.1]
             pthread_cond_timedwait [libthread.so.1]
             int omni_condition::timedwait(unsigned long,unsigned long)
[posix.cc:143]
             void omniAsyncWorker::real_run() [omniAsyncInvoker.h:118]
             void omniAsyncWorkerInfo::run() [invoker.cc:229]
   * Reading 4 bytes from 0x1c17f4 in the heap (2 bytes at 0x1c17f5
uninit).
   * Address 0x1c17f4 is 12 bytes into a malloc'd block at 0x1c17e8 of 24
bytes.
   * This block was allocated from:
             malloc         [rtlib.o]
             c2n6Fi_Pv___1  [libCrun.so.1]
             void*operator new(unsigned) [rtlib.o]
             omniAsyncInvoker::omniAsyncInvoker(unsigned) [invoker.cc:237]
             omni::ORBAsyncInvoker::ORBAsyncInvoker(unsigned)
[invoker.h:54]
             void omni::omni_corbaOrb_initialiser::attach()
[corbaOrb.cc:1498]

_______________________________________________
omniORB-list mailing list
omniORB-list at omniorb-support.com
http://www.omniorb-support.com/mailman/listinfo/omniorb-list





More information about the omniORB-list mailing list