<!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>
&nbsp;&nbsp;&nbsp; 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.&nbsp; The application uses omniORB 4.0.1.&nbsp; 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.&nbsp; These have
been
  <br>
fixed but purify is still reporting some "UMR: Uninitialized memory
read"
  <br>
errors.&nbsp; 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?&nbsp; 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>
****&nbsp; Purify instrumented ClipsES_Srv (pid 26643)&nbsp; ****
  <br>
UMR: Uninitialized memory read (2 times):
  <br>
&nbsp; * This is occurring while in:
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;void omni::unix_get_ifinfo(omnivector&lt;const char*&gt;&amp;)
[tcpTransportImpl.cc:242]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;void omni::tcpTransportImpl::initialise() [tcpTransportImpl.cc:232]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;void omni::omni_giopEndpoint_initialiser::attach()
[giopEndpoint.cc:439]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;CORBA::ORB*CORBA::ORB_init(int&amp;,char**,const char*,const
char*(*)[2]) [corbaOrb.cc:665]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;main&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [ClipsES_Srv.cc:113]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;_start&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [crt1.o]
  <br>
&nbsp; * Reading 4 bytes from 0x1bffcc in the heap.
  <br>
&nbsp; * Address 0x1bffcc is 20 bytes into a malloc'd block at 0x1bffb8 of
3520 bytes.
  <br>
&nbsp; * This block was allocated from:
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;malloc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [rtlib.o]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;void omni::unix_get_ifinfo(omnivector&lt;const char*&gt;&amp;)
[tcpTransportImpl.cc:242]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;void omni::tcpTransportImpl::initialise() [tcpTransportImpl.cc:232]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;void omni::omni_giopEndpoint_initialiser::attach()
[giopEndpoint.cc:439]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;CORBA::ORB*CORBA::ORB_init(int&amp;,char**,const char*,const
char*(*)[2]) [corbaOrb.cc:665]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;main&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [ClipsES_Srv.cc:113]
  <br>
  <br>
****&nbsp; Purify instrumented ClipsES_Srv (pid 26643)&nbsp; ****
  <br>
UMR: Uninitialized memory read (3 times):
  <br>
&nbsp; * This is occurring while in:
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;_so_send&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [libc.so.1]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;int omni::tcpConnection::Send(void*,unsigned,unsigned long,unsigned
long) [tcpConnection.cc:178]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;void omni::giopStream::sendChunk(omni::giopStream_Buffer*)
[giopStream.cc:1076]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;void omni::giopImpl10::outputMessageEnd(omni::giopStream*)
[giopImpl10.cc:945]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;void omni::GIOP_C::InitialiseRequest() [GIOP_C.cc:144]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;void omniRemoteIdentity::dispatch(omniCallDescriptor&amp;)
[remoteIdentity.cc:169]
  <br>
&nbsp; * Reading 100 bytes from 0x1cd778 in the heap (3 bytes at 0x1cd78d
uninit).
  <br>
&nbsp; * Address 0x1cd778 is 24 bytes into a malloc'd block at 0x1cd760 of
8220 bytes.
  <br>
&nbsp; * This block was allocated from:
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;malloc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [rtlib.o]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;c2n6Fi_Pv___1&nbsp; [libCrun.so.1]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;void*operator new(unsigned) [rtlib.o]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;void*operator new[](unsigned) [rtlib.o]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;omni::giopStream_Buffer*omni::giopStream_Buffer::newBuffer(unsigned
long) [giopStream.cc:661]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;void omni::giopImpl10::outputNewMessage(omni::giopStream*)
[giopImpl10.cc:896]
  <br>
  <br>
****&nbsp; Purify instrumented ClipsES_Srv (pid 26643)&nbsp; ****
  <br>
UMR: Uninitialized memory read (42 times):
  <br>
&nbsp; * This is occurring while in thread 11:
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;_so_send&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [libc.so.1]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;int omni::tcpConnection::Send(void*,unsigned,unsigned long,unsigned
long) [tcpConnection.cc:178]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;void omni::giopStream::sendChunk(omni::giopStream_Buffer*)
[giopStream.cc:1076]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;void omni::giopImpl12::outputMessageEnd(omni::giopStream*)
[giopImpl12.cc:1319]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;void omni::GIOP_S::SendReply() [GIOP_S.cc:638]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;void omniCallHandle::upcall(omniServant*,omniCallDescriptor&amp;)
[callHandle.cc:155]
  <br>
&nbsp; * Reading 257 bytes from 0x366850 in the heap (1 byte at 0x36687b
uninit).
  <br>
&nbsp; * Address 0x366850 is 24 bytes into a malloc'd block at 0x366838 of
8220 bytes.
  <br>
&nbsp; * This block was allocated from thread 11:
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;malloc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [rtlib.o]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;c2n6Fi_Pv___1&nbsp; [libCrun.so.1]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;void*operator new(unsigned) [rtlib.o]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;void*operator new[](unsigned) [rtlib.o]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;omni::giopStream_Buffer*omni::giopStream_Buffer::newBuffer(unsigned
long) [giopStream.cc:661]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;void omni::giopImpl12::outputNewMessage(omni::giopStream*)
[giopImpl12.cc:1255]
  <br>
  <br>
****&nbsp; Purify instrumented ClipsES_Srv (pid 26643)&nbsp; ****
  <br>
UMR: Uninitialized memory read (79 times):
  <br>
&nbsp; * This is occurring while in thread 8:
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;mutex_unlock&nbsp;&nbsp; [libthread.so.1]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;cond_timedwait [libthread.so.1]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;pthread_cond_timedwait [libthread.so.1]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;int omni_condition::timedwait(unsigned long,unsigned long)
[posix.cc:143]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;void omni::Scavenger::execute() [giopStrand.cc:647]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;void omniAsyncWorker::real_run() [omniAsyncInvoker.h:118]
  <br>
&nbsp; * Reading 4 bytes from 0x1c1fa4 in the heap (2 bytes at 0x1c1fa5
uninit).
  <br>
&nbsp; * Address 0x1c1fa4 is 12 bytes into a malloc'd block at 0x1c1f98 of
24 bytes.
  <br>
&nbsp; * This block was allocated from:
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;malloc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [rtlib.o]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;c2n6Fi_Pv___1&nbsp; [libCrun.so.1]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;void*operator new(unsigned) [rtlib.o]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;void omni::Scavenger::initialise() [giopStrand.cc:787]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;void omni::omni_giopStrand_initialiser::attach()
[giopStrand.cc:923]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;CORBA::ORB*CORBA::ORB_init(int&amp;,char**,const char*,const
char*(*)[2]) [corbaOrb.cc:665]
  <br>
  <br>
****&nbsp; Purify instrumented ClipsES_Srv (pid 26643)&nbsp; ****
  <br>
UMR: Uninitialized memory read (56 times):
  <br>
&nbsp; * This is occurring while in thread 11:
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;mutex_unlock&nbsp;&nbsp; [libthread.so.1]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;pthread_cond_wait [libthread.so.1]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;void omni_condition::wait() [posix.cc:134]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;void omni_rmutex::lock() [rmutex.cc:56]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;omni_optional_rlock::omni_optional_rlock(omni_rmutex*,int,int)
[rmutex.h:83]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;void
omni::omniOrbPOA::dispatch(omniCallHandle&amp;,omniLocalIdentity*)
[poa.cc:1752]
  <br>
&nbsp; * Reading 4 bytes from 0x1c391c in the heap (2 bytes at 0x1c391d
uninit).
  <br>
&nbsp; * Address 0x1c391c is 12 bytes into a malloc'd block at 0x1c3910 of
56 bytes.
  <br>
&nbsp; * This block was allocated from:
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;malloc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [rtlib.o]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;c2n6Fi_Pv___1&nbsp; [libCrun.so.1]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;void*operator new(unsigned) [rtlib.o]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;omni::omniOrbPOA::omniOrbPOA(const
char*,omni::omniOrbPOAManager*,const
omni::omniOrbPOA::Policies&amp;,omni::omniOrbPOA*) [poa.cc:2018]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;PortableServer::POA*omni::omniOrbPOA::create_POA(const
char*,PortableServer::POAManager*,const
_CORBA_Pseudo_Unbounded_Sequence&lt;CORBA::Policy,_CORBA_PseudoObj_Member&lt;CORBA::Policy,_CORBA_PseudoObj_Var&lt;CORBA::Policy&gt;
&gt; &gt;&amp;) [poa.cc:625]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;main&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [ClipsES_Srv.cc:163]
  <br>
  <br>
****&nbsp; Purify instrumented ClipsES_Srv (pid 26643)&nbsp; ****
  <br>
UMR: Uninitialized memory read (50 times):
  <br>
&nbsp; * This is occurring while in thread 11:
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;mutex_unlock&nbsp;&nbsp; [libthread.so.1]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;cond_timedwait [libthread.so.1]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;pthread_cond_timedwait [libthread.so.1]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;int omni_condition::timedwait(unsigned long,unsigned long)
[posix.cc:143]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;void omniAsyncWorker::real_run() [omniAsyncInvoker.h:118]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;void omniAsyncWorkerInfo::run() [invoker.cc:229]
  <br>
&nbsp; * Reading 4 bytes from 0x1c17f4 in the heap (2 bytes at 0x1c17f5
uninit).
  <br>
&nbsp; * Address 0x1c17f4 is 12 bytes into a malloc'd block at 0x1c17e8 of
24 bytes.
  <br>
&nbsp; * This block was allocated from:
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;malloc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [rtlib.o]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;c2n6Fi_Pv___1&nbsp; [libCrun.so.1]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;void*operator new(unsigned) [rtlib.o]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;omniAsyncInvoker::omniAsyncInvoker(unsigned) [invoker.cc:237]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;omni::ORBAsyncInvoker::ORBAsyncInvoker(unsigned) [invoker.h:54]
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;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>