New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[JBTM-2110] IBM orb recovery #754
Conversation
return; // nothing to add | ||
|
||
try { | ||
Any indicator = ri.get_slot(_rcDataSlot); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi Mike, this is the part that I wasn't sure about whether it would work for interop. Is this interceptor for the resource side or for the recovery manager?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is on the outgoing side, the client is issuing a CORBA invocation (replay_completion) on a remote object (which is our singleton recovery coordinator CORBA object - the resource specific info gets embedded in the object key or tagged profile depending upon which orb is in use).
The service context will only get added if the IOR represents a recovery coordinator that we (ie narayana code) created.
Note that my solution makes use of tagged profiles and portable interceptors which are both within the scope of the CORBA specification so I don't see any fundamental reason for portability issues. I say "fundamental reason" since we generally run in a homogeneous system with respect to ORBs and have never tested scenarios where the client uses one orb and the server is using a different one.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also notice that the interceptors are orb specific (we use different ones depending upon which ORB is being used). So, in the case of the IBM orb, the receiving side is expecting the extra data to be present in a profile whereas for JacORB and JDK orbs it will look in the object key. But I can easily change the interceptors to check both locations for the extra data if we do ever need to run in an inhomogeneous environment.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Imagine a resource that is not controlled by Narayana but is participating in a transaction under Narayanas control. It now wants to call replay_completion. Does it need to put something in a specific slot and if so isn't that contrary to the interop stuff. Of course it may all be encoded in the IOR in and the resource might not need to put anything in a slot by hand (i.e. the resource may not need to know any details related to slots) and in which case that is fine.
As I understand it a resource (with no access to Narayana libraries should be able to narrow the IOR returned from register_resource and just call replay_completion on it. Is that the case here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see your point, you are correct and it would not work in that case but the primary consumer is wildfly/EAP so I think we can live with the restriction initially and implement it later on as a lower priority task.
Note that it ought work since the extra profile should be shipped across from the client to the server (but when I put it in the debugger the extra profile was not appearing on the other side which was the reason I used a service context to transport the extra data). But interestingly stringifying the reference (object_to_string) and then recreating the object (using string_to_object) does preserve the extra profile.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I hear what you are saying and having a workaround is fine for now but I don't think we can close off the issue until the interop problem is solved as it does somewhat detract from WF using JTS if it won't interop as they already have a JBoss Remoting transport for non-interop use cases.
Started testing this pull request with QA_JTS_JACORB profile: http://172.17.131.2/job/btny-pulls-narayana/PROFILE=QA_JTS_JACORB,jdk=jdk7.latest,label=linux/771/ |
Started testing this pull request with BLACKTIE profile on Linux: http://172.17.131.2/job/btny-pulls-narayana/PROFILE=BLACKTIE,jdk=jdk7.latest,label=linux64el6/771/ |
Started testing this pull request with QA_JTA profile: http://172.17.131.2/job/btny-pulls-narayana/PROFILE=QA_JTA,jdk=jdk7.latest,label=linux/771/ |
Started testing this pull request with MAIN profile: http://172.17.131.2/job/btny-pulls-narayana/PROFILE=MAIN,jdk=jdk7.latest,label=linux/771/ |
Started testing this pull request with XTS profile: http://172.17.131.2/job/btny-pulls-narayana/PROFILE=XTS,jdk=jdk7.latest,label=linux/771/ |
Started testing this pull request with MAIN profile: http://172.17.131.2/job/btny-pulls-narayana/PROFILE=MAIN,jdk=jdk7.latest,label=mac/771/ |
MAIN profile tests failed (http://172.17.131.2/job/btny-pulls-narayana/PROFILE=MAIN,jdk=jdk7.latest,label=linux/771/): narayana build failed |
MAIN profile tests failed (http://172.17.131.2/job/btny-pulls-narayana/PROFILE=MAIN,jdk=jdk7.latest,label=mac/771/): narayana build failed |
Started testing this pull request with BLACKTIE profile on Linux: http://172.17.131.2/job/btny-pulls-narayana/PROFILE=BLACKTIE,jdk=jdk7.latest,label=linux32el6/771/ |
BLACKTIE profile tests passed on Linux - Job complete http://172.17.131.2/job/btny-pulls-narayana/PROFILE=BLACKTIE,jdk=jdk7.latest,label=linux64el6/771/ |
QA_JTA profile tests passed - Job complete http://172.17.131.2/job/btny-pulls-narayana/PROFILE=QA_JTA,jdk=jdk7.latest,label=linux/771/ |
BLACKTIE profile tests passed on Linux - Job complete http://172.17.131.2/job/btny-pulls-narayana/PROFILE=BLACKTIE,jdk=jdk7.latest,label=linux32el6/771/ |
XTS profile tests passed - Job complete http://172.17.131.2/job/btny-pulls-narayana/PROFILE=XTS,jdk=jdk7.latest,label=linux/771/ |
Started testing this pull request with BLACKTIE profile on Linux: http://172.17.131.2/job/btny-pulls-narayana/PROFILE=BLACKTIE,jdk=jdk7.latest,label=linux64el5/771/ |
Started testing this pull request with BLACKTIE profile on Linux: http://172.17.131.2/job/btny-pulls-narayana/PROFILE=BLACKTIE,jdk=jdk7.latest,label=linux32el5/771/ |
BLACKTIE profile tests passed on Linux - Job complete http://172.17.131.2/job/btny-pulls-narayana/PROFILE=BLACKTIE,jdk=jdk7.latest,label=linux64el5/771/ |
QA_JTS_JACORB profile tests passed - Job complete http://172.17.131.2/job/btny-pulls-narayana/PROFILE=QA_JTS_JACORB,jdk=jdk7.latest,label=linux/771/ |
BLACKTIE profile tests passed on Linux - Job complete http://172.17.131.2/job/btny-pulls-narayana/PROFILE=BLACKTIE,jdk=jdk7.latest,label=linux32el5/771/ |
Started testing this pull request with QA_JTA profile: http://albany.eng.hst.ams2.redhat.com/job/btny-pulls-narayana/PROFILE=QA_JTA,jdk=jdk7.latest,label=linux/833/ |
Started testing this pull request with QA_JTS_JACORB profile: http://albany.eng.hst.ams2.redhat.com/job/btny-pulls-narayana/PROFILE=QA_JTS_JACORB,jdk=jdk7.latest,label=linux/833/ |
Started testing this pull request with MAIN profile: http://albany.eng.hst.ams2.redhat.com/job/btny-pulls-narayana/PROFILE=MAIN,jdk=jdk7.latest,label=linux/833/ |
MAIN profile tests failed (http://albany.eng.hst.ams2.redhat.com/job/btny-pulls-narayana/PROFILE=MAIN,jdk=jdk7.latest,label=linux/833/): narayana build failed |
QA_JTA profile tests passed - Job complete http://albany.eng.hst.ams2.redhat.com/job/btny-pulls-narayana/PROFILE=QA_JTA,jdk=jdk7.latest,label=linux/833/ |
BLACKTIE profile tests failed on Linux (http://narayanaci1.eng.hst.ams2.redhat.com/job/btny-pulls-narayana/PROFILE=BLACKTIE,jdk=jdk8.latest,label=linux/6/): Narayana rebase on master failed. Please rebase it manually |
RTS profile tests failed (http://narayanaci1.eng.hst.ams2.redhat.com/job/btny-pulls-narayana/PROFILE=RTS,jdk=jdk8.latest,label=linux/6/): Narayana rebase on master failed. Please rebase it manually |
QA_JTS_JACORB profile tests failed (http://narayanaci1.eng.hst.ams2.redhat.com/job/btny-pulls-narayana/PROFILE=QA_JTS_JACORB,jdk=jdk8.latest,label=linux/6/): Narayana rebase on master failed. Please rebase it manually |
postgres profile tests failed (http://narayanaci1.eng.hst.ams2.redhat.com/job/btny-pulls-narayana/PROFILE=postgres,jdk=jdk8.latest,label=linux/6/): Narayana rebase on master failed. Please rebase it manually |
mysql profile tests failed (http://narayanaci1.eng.hst.ams2.redhat.com/job/btny-pulls-narayana/PROFILE=mysql,jdk=jdk8.latest,label=linux/6/): Narayana rebase on master failed. Please rebase it manually |
AS_TESTS profile tests failed (http://narayanaci1.eng.hst.ams2.redhat.com/job/btny-pulls-narayana/PROFILE=AS_TESTS,jdk=jdk8.latest,label=linux/6/): Narayana rebase on master failed. Please rebase it manually |
db2 profile tests failed (http://narayanaci1.eng.hst.ams2.redhat.com/job/btny-pulls-narayana/PROFILE=db2,jdk=jdk8.latest,label=linux/6/): Narayana rebase on master failed. Please rebase it manually |
QA_JTA profile tests failed (http://narayanaci1.eng.hst.ams2.redhat.com/job/btny-pulls-narayana/PROFILE=QA_JTA,jdk=jdk8.latest,label=linux/6/): Narayana rebase on master failed. Please rebase it manually |
5684f7e
to
d6278f1
Compare
mysql profile tests failed (http://narayanaci1.eng.hst.ams2.redhat.com/job/btny-pulls-narayana/PROFILE=mysql,jdk=jdk8.latest,label=linux/1/): Narayana rebase on master failed. Please rebase it manually |
postgres profile tests failed (http://narayanaci1.eng.hst.ams2.redhat.com/job/btny-pulls-narayana/PROFILE=postgres,jdk=jdk8.latest,label=linux/1/): Narayana rebase on master failed. Please rebase it manually |
QA_JTS_JDKORB profile tests failed (http://narayanaci1.eng.hst.ams2.redhat.com/job/btny-pulls-narayana/PROFILE=QA_JTS_JDKORB,jdk=jdk8.latest,label=linux/1/): Narayana rebase on master failed. Please rebase it manually |
RTS profile tests failed (http://narayanaci1.eng.hst.ams2.redhat.com/job/btny-pulls-narayana/PROFILE=RTS,jdk=jdk8.latest,label=linux/1/): Narayana rebase on master failed. Please rebase it manually |
QA_JTA profile tests failed (http://narayanaci1.eng.hst.ams2.redhat.com/job/btny-pulls-narayana/PROFILE=QA_JTA,jdk=jdk8.latest,label=linux/1/): Narayana rebase on master failed. Please rebase it manually |
QA_JTS_JACORB profile tests failed (http://narayanaci1.eng.hst.ams2.redhat.com/job/btny-pulls-narayana/PROFILE=QA_JTS_JACORB,jdk=jdk8.latest,label=linux/1/): Narayana rebase on master failed. Please rebase it manually |
MAIN profile tests failed (http://narayanaci1.eng.hst.ams2.redhat.com/job/btny-pulls-narayana/PROFILE=MAIN,jdk=jdk8.latest,label=linux/1/): Narayana rebase on master failed. Please rebase it manually |
db2 profile tests failed (http://narayanaci1.eng.hst.ams2.redhat.com/job/btny-pulls-narayana/PROFILE=db2,jdk=jdk8.latest,label=linux/1/): Narayana rebase on master failed. Please rebase it manually |
QA_JTS_OPENJDKORB profile tests failed (http://narayanaci1.eng.hst.ams2.redhat.com/job/btny-pulls-narayana/PROFILE=QA_JTS_OPENJDKORB,jdk=jdk8.latest,label=linux/1/): Narayana rebase on master failed. Please rebase it manually |
AS_TESTS profile tests failed (http://narayanaci1.eng.hst.ams2.redhat.com/job/btny-pulls-narayana/PROFILE=AS_TESTS,jdk=jdk8.latest,label=linux/1/): Narayana rebase on master failed. Please rebase it manually |
XTS profile tests failed (http://narayanaci1.eng.hst.ams2.redhat.com/job/btny-pulls-narayana/PROFILE=XTS,jdk=jdk8.latest,label=linux/1/): Narayana rebase on master failed. Please rebase it manually |
oracle profile tests failed (http://narayanaci1.eng.hst.ams2.redhat.com/job/btny-pulls-narayana/PROFILE=oracle,jdk=jdk8.latest,label=linux/1/): Narayana rebase on master failed. Please rebase it manually |
BLACKTIE profile tests failed on Linux (http://narayanaci1.eng.hst.ams2.redhat.com/job/btny-pulls-narayana/PROFILE=BLACKTIE,jdk=jdk8.latest,label=linux/1/): Narayana rebase on master failed. Please rebase it manually |
Started testing this pull request on Windows: http://narayanaci1.eng.hst.ams2.redhat.com/job/btny-pulls-narayana-catelyn/1/ |
Tests failed on Windows - Narayana Failed http://narayanaci1.eng.hst.ams2.redhat.com/job/btny-pulls-narayana-catelyn/1/ |
PERF profile tests failed (http://172.17.130.4:8083/job/btny-pulls-narayana-perf/PROFILE=PERF,jdk=jdk8.latest,label=master/281/): Narayana rebase on master failed. Please rebase it manually |
PERF profile tests failed (http://172.17.130.4:8083/job/btny-pulls-narayana-perf/PROFILE=PERF,jdk=jdk8.latest,label=master/543/): Narayana rebase on master failed. Please rebase it manually |
Closing for now and will reopen if we make progress on the associated issue. |
BLACKTIE profile tests failed on Linux (https://ci-master-jenkins-csb-narayana.cloud.paas.psi.redhat.com/job/btny-pulls-narayana/PROFILE=BLACKTIE,jdk=jdk8.latest,label=swarm/280/): Narayana rebase on master failed. Please rebase it manually |
MAIN profile tests failed (https://ci-master-jenkins-csb-narayana.cloud.paas.psi.redhat.com/job/btny-pulls-narayana/PROFILE=MAIN,jdk=jdk8.latest,label=swarm/280/): Narayana rebase on master failed. Please rebase it manually |
https://issues.jboss.org/browse/JBTM-2110
NO_TEST