<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    Hi<br>
    <br>
    I have been using omniORB 4.2.3 and recently while running my
    application under valgrind<br>
    I have observed the error which suggests that under some conditions
    the giopServer class <br>
    uses the "pd_dying" attribute of the connection object that has
    already been deleted.<br>
    Did anyone see that behaviour already? Any ideas on how that could
    be fixed?<br>
    <br>
    Cheers,<br>
    Serguei<br>
    <br>
    Here is the valgrind report:<br>
    <blockquote>==32583== Thread 3:<br>
      ==32583== Invalid read of size 1<br>
      ==32583==    at 0x7A3ABDA:
      omni::giopServer::notifyRzReadable(omni::giopConnection*, bool)
      (giopServer.cc:990)<br>
      ==32583==    by 0x7A975B8:
      omni::tcpEndpoint::notifyReadable(omni::SocketHolder*)
      (tcpEndpoint.cc:373)<br>
      ==32583==    by 0x79F9DBC: sendNotifications
      (SocketCollection.h:244)<br>
      ==32583==    by 0x79F9DBC: omni::SocketCollection::Select()
      (SocketCollection.cc:347)<br>
      ==32583==    by 0x7A97520:
      omni::tcpEndpoint::AcceptAndMonitor(void (*)(void*,
      omni::giopConnection*), void*) (tcpEndpoint.cc:314)<br>
      ==32583==    by 0x7A375A8: omni::giopRendezvouser::execute()
      (giopRendezvouser.cc:58)<br>
      ==32583==    by 0x7A4AFEF: omniAsyncWorker::real_run()
      (invoker.cc:578)<br>
      ==32583==    by 0x7A4ABA8: omniAsyncWorker::mid_run()
      (invoker.cc:511)<br>
      ==32583==    by 0x7A4BF5E: omniAsyncWorker::run(void*)
      (invoker.cc:126)<br>
      ==32583==    by 0x7D04A87: omni_thread_wrapper (posix.cc:459)<br>
      ==32583==    by 0x7F0FE24: start_thread (in
      /usr/lib64/libpthread-2.17.so)<br>
      ==32583==    by 0x9986BAC: clone (in /usr/lib64/libc-2.17.so)<br>
      ==32583==  Address 0x2846060c is 12 bytes inside a block of size
      112 free'd<br>
      ==32583==    at 0x4C2B1CD: operator delete(void*)
      (vg_replace_malloc.c:576)<br>
      ==32583==    by 0x7A251E5:
      omni::giopConnection::decrRefCount(bool) (giopEndpoint.cc:241)<br>
      ==32583==    by 0x7A3E146:
      omni::giopStrand::deleteStrandAndConnection(bool)
      (giopStrand.cc:264)<br>
      ==32583==    by 0x7A3AD23:
      omni::giopServer::connectionState::~connectionState()
      (giopServer.cc:702)<br>
      ==32583==    by 0x7A3BEAE:
      omni::giopServer::removeConnectionAndWorker(omni::giopWorker*)
      (giopServer.cc:1090<br>
      ==32583==    by 0x7A3C134:
      omni::giopServer::notifyWkDone(omni::giopWorker*, bool)
      (giopServer.cc:1102)<br>
      ==32583==    by 0x7A43FC4: omni::giopWorker::execute()
      (giopWorker.cc:83)<br>
      ==32583==    by 0x7A4AFEF: omniAsyncWorker::real_run()
      (invoker.cc:578)<br>
      ==32583==    by 0x7A4BFBF:
      omniAsyncPoolServer::workerRun(omniAsyncWorker*) (invoker.cc:328)<br>
      ==32583==    by 0x7A4ABA8: omniAsyncWorker::mid_run()
      (invoker.cc:511)<br>
      ==32583==    by 0x7A4BF5E: omniAsyncWorker::run(void*)
      (invoker.cc:126)<br>
      ==32583==    by 0x7D04A87: omni_thread_wrapper (posix.cc:459)<br>
      ==32583==    by 0x7F0FE24: start_thread (in
      /usr/lib64/libpthread-2.17.so)<br>
      ==32583==    by 0x9986BAC: clone (in /usr/lib64/libc-2.17.so)<br>
      ==32583==  Block was alloc'd at<br>
      ==32583==    at 0x4C2A243: operator new(unsigned long)
      (vg_replace_malloc.c:334)<br>
      ==32583==    by 0x7A97539:
      omni::tcpEndpoint::AcceptAndMonitor(void (*)(void*,
      omni::giopConnection*), void*) (tcpEndpoint.cc:316)<br>
      ==32583==    by 0x7A375A8: omni::giopRendezvouser::execute()
      (giopRendezvouser.cc:58)<br>
      ==32583==    by 0x7A4AFEF: omniAsyncWorker::real_run()
      (invoker.cc:578)<br>
      ==32583==    by 0x7A4ABA8: omniAsyncWorker::mid_run()
      (invoker.cc:511)<br>
      ==32583==    by 0x7A4BF5E: omniAsyncWorker::run(void*)
      (invoker.cc:126)<br>
      ==32583==    by 0x7D04A87: omni_thread_wrapper (posix.cc:459)<br>
      ==32583==    by 0x7F0FE24: start_thread (in
      /usr/lib64/libpthread-2.17.so)<br>
      ==32583==    by 0x9986BAC: clone (in /usr/lib64/libc-2.17.so)<br>
    </blockquote>
  </body>
</html>