[prev in list] [next in list] [prev in thread] [next in thread] 

List:       omniorb-list
Subject:    Re: [omniORB] C++ server bug - valuetype as in argument & valuetype as exception class member
From:       Duncan Grisby via omniORB-list <omniorb-list () omniorb-support ! com>
Date:       2016-01-04 10:50:18
Message-ID: mailman.553.1451904617.1200.omniorb-list () omniorb-support ! com
[Download RAW message or body]

[Attachment #2 (message/rfc822)]



On Wed, 2015-12-30 at 09:42 +0100, Michal Strnad wrote:

[...]
> My C++ server is based on this IDL file. When I call Bug::Demo::call for
> the first time it throws exception Bug::Demo::WRONG_DATA. It's correct.
> But when I call it for the second time it throws CORBA::UNKNOWN exception
> and for the third time it doesn't return and server and client consume one
> core of CPU each.

If you look at the log from the server side, you'll see that it is
getting an assertion failure. It is indeed a bug in omniORB to do with
some circumstances of exceptions containing valuetypes.

I have attached a patch that fixes it. I'll check it into the 4.2
branch.

Thanks for the bug report.

Duncan.

-- 
 -- Duncan Grisby         --
  -- duncan@grisby.org     --
   -- http://www.grisby.org --


["value_in_exception.patch" (value_in_exception.patch)]

Index: src/lib/omniORB/orbcore/GIOP_S.cc
===================================================================
--- src/lib/omniORB/orbcore/GIOP_S.cc	(revision 6315)
+++ src/lib/omniORB/orbcore/GIOP_S.cc	(working copy)
@@ -438,6 +438,8 @@
     }
   }
   pd_state = ReplyCompleted;
+
+  clearValueTracker();
   clearDeadline();
   return 1;
 }
@@ -546,6 +548,8 @@
   }
 
   pd_state = ReplyCompleted;
+
+  clearValueTracker();
   clearDeadline();
   return 1;
 }


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


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic