<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
<font size="+1">Mike,<br>
we use Purify to cleanup things on the Windows side, since several
versions of OmniORB (last six years).<br>
We also noticed alarms similar to the one you reported here: basically
a complaint about a small chunk *inside* a regularly allocated block.
The only reasonable explanation we found is that this is a wrong
conclusion about a specific data pattern found in a block, which by
accident matches something Purify uses for marking uninitialized memory.<br>
Thus we decided to forgot about these messages.<br>
<br>
Renzo Tomaselli<br>
</font><br>
Mike Wyatt wrote:
<blockquote cite="mid421622EF.2070101@mpc-data.co.uk" type="cite">We
have been using Rational Purify to debug a C++ based application
running
<br>
on Solaris 8. The application uses omniORB 4.0.1. The application and
<br>
omniORB is compiled using Sun WorkShop 6 update 1 C++ 5.2.
<br>
<br>
There were some array bounds and free memory read errors reported by
purify
<br>
that we traced to coding errors in the application source. These have
been
<br>
fixed but purify is still reporting some "UMR: Uninitialized memory
read"
<br>
errors. I cannot trace these back to our application source, they
appear to
<br>
be in the omniORB source.
<br>
<br>
Has anyone else seen similar UMRs in their applications? Are any of
these
<br>
issues a cause for concern?
<br>
<br>
Our application has been running stably for a week or so now so these
issues
<br>
don't seem to be causing any problems.
<br>
<br>
Thanks,
<br>
Mike Wyatt
<br>
MPC Data Limited
<br>
<br>
<br>
Purify output:
<br>
<br>
**** Purify instrumented ClipsES_Srv (pid 26643) ****
<br>
UMR: Uninitialized memory read (2 times):
<br>
* This is occurring while in:
<br>
void omni::unix_get_ifinfo(omnivector<const char*>&)
[tcpTransportImpl.cc:242]
<br>
void omni::tcpTransportImpl::initialise() [tcpTransportImpl.cc:232]
<br>
void omni::omni_giopEndpoint_initialiser::attach()
[giopEndpoint.cc:439]
<br>
CORBA::ORB*CORBA::ORB_init(int&,char**,const char*,const
char*(*)[2]) [corbaOrb.cc:665]
<br>
main [ClipsES_Srv.cc:113]
<br>
_start [crt1.o]
<br>
* Reading 4 bytes from 0x1bffcc in the heap.
<br>
* Address 0x1bffcc is 20 bytes into a malloc'd block at 0x1bffb8 of
3520 bytes.
<br>
* This block was allocated from:
<br>
malloc [rtlib.o]
<br>
void omni::unix_get_ifinfo(omnivector<const char*>&)
[tcpTransportImpl.cc:242]
<br>
void omni::tcpTransportImpl::initialise() [tcpTransportImpl.cc:232]
<br>
void omni::omni_giopEndpoint_initialiser::attach()
[giopEndpoint.cc:439]
<br>
CORBA::ORB*CORBA::ORB_init(int&,char**,const char*,const
char*(*)[2]) [corbaOrb.cc:665]
<br>
main [ClipsES_Srv.cc:113]
<br>
<br>
**** Purify instrumented ClipsES_Srv (pid 26643) ****
<br>
UMR: Uninitialized memory read (3 times):
<br>
* This is occurring while in:
<br>
_so_send [libc.so.1]
<br>
int omni::tcpConnection::Send(void*,unsigned,unsigned long,unsigned
long) [tcpConnection.cc:178]
<br>
void omni::giopStream::sendChunk(omni::giopStream_Buffer*)
[giopStream.cc:1076]
<br>
void omni::giopImpl10::outputMessageEnd(omni::giopStream*)
[giopImpl10.cc:945]
<br>
void omni::GIOP_C::InitialiseRequest() [GIOP_C.cc:144]
<br>
void omniRemoteIdentity::dispatch(omniCallDescriptor&)
[remoteIdentity.cc:169]
<br>
* Reading 100 bytes from 0x1cd778 in the heap (3 bytes at 0x1cd78d
uninit).
<br>
* Address 0x1cd778 is 24 bytes into a malloc'd block at 0x1cd760 of
8220 bytes.
<br>
* This block was allocated from:
<br>
malloc [rtlib.o]
<br>
c2n6Fi_Pv___1 [libCrun.so.1]
<br>
void*operator new(unsigned) [rtlib.o]
<br>
void*operator new[](unsigned) [rtlib.o]
<br>
omni::giopStream_Buffer*omni::giopStream_Buffer::newBuffer(unsigned
long) [giopStream.cc:661]
<br>
void omni::giopImpl10::outputNewMessage(omni::giopStream*)
[giopImpl10.cc:896]
<br>
<br>
**** Purify instrumented ClipsES_Srv (pid 26643) ****
<br>
UMR: Uninitialized memory read (42 times):
<br>
* This is occurring while in thread 11:
<br>
_so_send [libc.so.1]
<br>
int omni::tcpConnection::Send(void*,unsigned,unsigned long,unsigned
long) [tcpConnection.cc:178]
<br>
void omni::giopStream::sendChunk(omni::giopStream_Buffer*)
[giopStream.cc:1076]
<br>
void omni::giopImpl12::outputMessageEnd(omni::giopStream*)
[giopImpl12.cc:1319]
<br>
void omni::GIOP_S::SendReply() [GIOP_S.cc:638]
<br>
void omniCallHandle::upcall(omniServant*,omniCallDescriptor&)
[callHandle.cc:155]
<br>
* Reading 257 bytes from 0x366850 in the heap (1 byte at 0x36687b
uninit).
<br>
* Address 0x366850 is 24 bytes into a malloc'd block at 0x366838 of
8220 bytes.
<br>
* This block was allocated from thread 11:
<br>
malloc [rtlib.o]
<br>
c2n6Fi_Pv___1 [libCrun.so.1]
<br>
void*operator new(unsigned) [rtlib.o]
<br>
void*operator new[](unsigned) [rtlib.o]
<br>
omni::giopStream_Buffer*omni::giopStream_Buffer::newBuffer(unsigned
long) [giopStream.cc:661]
<br>
void omni::giopImpl12::outputNewMessage(omni::giopStream*)
[giopImpl12.cc:1255]
<br>
<br>
**** Purify instrumented ClipsES_Srv (pid 26643) ****
<br>
UMR: Uninitialized memory read (79 times):
<br>
* This is occurring while in thread 8:
<br>
mutex_unlock [libthread.so.1]
<br>
cond_timedwait [libthread.so.1]
<br>
pthread_cond_timedwait [libthread.so.1]
<br>
int omni_condition::timedwait(unsigned long,unsigned long)
[posix.cc:143]
<br>
void omni::Scavenger::execute() [giopStrand.cc:647]
<br>
void omniAsyncWorker::real_run() [omniAsyncInvoker.h:118]
<br>
* Reading 4 bytes from 0x1c1fa4 in the heap (2 bytes at 0x1c1fa5
uninit).
<br>
* Address 0x1c1fa4 is 12 bytes into a malloc'd block at 0x1c1f98 of
24 bytes.
<br>
* This block was allocated from:
<br>
malloc [rtlib.o]
<br>
c2n6Fi_Pv___1 [libCrun.so.1]
<br>
void*operator new(unsigned) [rtlib.o]
<br>
void omni::Scavenger::initialise() [giopStrand.cc:787]
<br>
void omni::omni_giopStrand_initialiser::attach()
[giopStrand.cc:923]
<br>
CORBA::ORB*CORBA::ORB_init(int&,char**,const char*,const
char*(*)[2]) [corbaOrb.cc:665]
<br>
<br>
**** Purify instrumented ClipsES_Srv (pid 26643) ****
<br>
UMR: Uninitialized memory read (56 times):
<br>
* This is occurring while in thread 11:
<br>
mutex_unlock [libthread.so.1]
<br>
pthread_cond_wait [libthread.so.1]
<br>
void omni_condition::wait() [posix.cc:134]
<br>
void omni_rmutex::lock() [rmutex.cc:56]
<br>
omni_optional_rlock::omni_optional_rlock(omni_rmutex*,int,int)
[rmutex.h:83]
<br>
void
omni::omniOrbPOA::dispatch(omniCallHandle&,omniLocalIdentity*)
[poa.cc:1752]
<br>
* Reading 4 bytes from 0x1c391c in the heap (2 bytes at 0x1c391d
uninit).
<br>
* Address 0x1c391c is 12 bytes into a malloc'd block at 0x1c3910 of
56 bytes.
<br>
* This block was allocated from:
<br>
malloc [rtlib.o]
<br>
c2n6Fi_Pv___1 [libCrun.so.1]
<br>
void*operator new(unsigned) [rtlib.o]
<br>
omni::omniOrbPOA::omniOrbPOA(const
char*,omni::omniOrbPOAManager*,const
omni::omniOrbPOA::Policies&,omni::omniOrbPOA*) [poa.cc:2018]
<br>
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]
<br>
main [ClipsES_Srv.cc:163]
<br>
<br>
**** Purify instrumented ClipsES_Srv (pid 26643) ****
<br>
UMR: Uninitialized memory read (50 times):
<br>
* This is occurring while in thread 11:
<br>
mutex_unlock [libthread.so.1]
<br>
cond_timedwait [libthread.so.1]
<br>
pthread_cond_timedwait [libthread.so.1]
<br>
int omni_condition::timedwait(unsigned long,unsigned long)
[posix.cc:143]
<br>
void omniAsyncWorker::real_run() [omniAsyncInvoker.h:118]
<br>
void omniAsyncWorkerInfo::run() [invoker.cc:229]
<br>
* Reading 4 bytes from 0x1c17f4 in the heap (2 bytes at 0x1c17f5
uninit).
<br>
* Address 0x1c17f4 is 12 bytes into a malloc'd block at 0x1c17e8 of
24 bytes.
<br>
* This block was allocated from:
<br>
malloc [rtlib.o]
<br>
c2n6Fi_Pv___1 [libCrun.so.1]
<br>
void*operator new(unsigned) [rtlib.o]
<br>
omniAsyncInvoker::omniAsyncInvoker(unsigned) [invoker.cc:237]
<br>
omni::ORBAsyncInvoker::ORBAsyncInvoker(unsigned) [invoker.h:54]
<br>
void omni::omni_corbaOrb_initialiser::attach() [corbaOrb.cc:1498]
<br>
<br>
_______________________________________________
<br>
omniORB-list mailing list
<br>
<a class="moz-txt-link-abbreviated" href="mailto:omniORB-list@omniorb-support.com">omniORB-list@omniorb-support.com</a>
<br>
<a class="moz-txt-link-freetext" href="http://www.omniorb-support.com/mailman/listinfo/omniorb-list">http://www.omniorb-support.com/mailman/listinfo/omniorb-list</a>
<br>
<br>
<br>
</blockquote>
</body>
</html>