[prev in list] [next in list] [prev in thread] [next in thread]
List: omniorb-list
Subject: [omniORB] Missing "else" statement in omniORB 4.1.4 retry handling?
From: Peter Klotz <peter.klotz () aon ! at>
Date: 2010-07-28 16:21:59
Message-ID: 4C505927.3030409 () aon ! at
[Download RAW message or body]
Hello Duncan
The attached patch (against SVN trunk) adds an "else" statement that in
our opinion got lost in omniORB 4.1.4 in this checkin (file omniObjRef.cc):
Revision 1.4.2.7 2008/10/28 15:54:51 dgrisby
Internal CommFailure exception escapes after failed-on-forward call
that is not retried.
There were two identical code blocks in omniORB 4.1.3 that were altered
by the above checkin. In omniORB 4.1.4 a diff shows that the "else"
statement misses in one of the blocks.
The erroneous behavior we are seeing is this:
* Client contacts Naming Service and establishes a connection
* Later the Naming Service closes the connection due to its
inConScanPeriod setting
* Client contacts Naming Service again before its outConScanPeriod is over
* Client sees the dead connection but instead of performing a retry it
immediately throws a COMM_FAILURE exception
omniORB 4.1.3 and patched 4.1.4 clients work as expected and open a new
connection to the Naming Service.
Can you confirm the correctness of the patch?
Regards, Peter.
["omniORB-4.1.5-20100715-MissingElseStatement.patch" (text/x-patch)]
diff -Nur omniORB/src/lib/omniORB/orbcore/omniObjRef.cc \
omniORB.patched/src/lib/omniORB/orbcore/omniObjRef.cc
--- omniORB/src/lib/omniORB/orbcore/omniObjRef.cc 2010-07-15 07:09:09.000000000 +0200
+++ omniORB.patched/src/lib/omniORB/orbcore/omniObjRef.cc 2010-07-28 \
11:16:10.000000000 +0200 @@ -1112,6 +1112,7 @@
if (ex.retry()) {
required_retry = 1;
}
+ else {
if (fwd) {
omni::revertToOriginalProfile(this);
CORBA::TRANSIENT ex2(TRANSIENT_FailedOnForwarded, ex.completed());
@@ -1132,6 +1133,7 @@
if (!_omni_callTransientExceptionHandler(this, retries++, ex2))
OMNIORB_THROW(TRANSIENT,ex.minor(),ex.completed());
}
+ }
}
catch(CORBA::COMM_FAILURE& ex) {
if( fwd ) {
_______________________________________________
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