-
Notifications
You must be signed in to change notification settings - Fork 26
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
CORBA.FAILURE getting a component after reloading its container #54
Comments
Marco, the reference to the component should be valid even after restarting the container i.e. you should not need to get the component again. Did you try to call a method of the component after resrting the container but without getting the component again? |
Commit c8ee545 is just a workaround I am using to fix the problem. I am not sending a pull request because I hope someone can find the time to investigate and fix the issue from the root... |
Hi @acaproni , thanks :-) unfortunately, it is the same :( If you comment the |
could you try the same from Object Explorer?
B.
…On 23/06/2017 11:31, Marco Buttu wrote:
I think there is an issue in Python (I do not know in C++ or Java) after
reloading the container. I am using the latest ACS release (2017-02).
Here is a test that fails (the complete file is in attachment), because
the last but one line raises a |CORBA.FAILURE|:
|def test_get_component_after_reloading_container(self): component =
self.client.getComponent(self.component_name) foo =
component.find_characteristic('foo') # Stop the container
self.container.stop() self.container.wait_until_not_running() # Restart
the container self.container.start() self.container.wait_until_running()
# Get again the container component =
self.client.getComponent(self.component_name) foo =
component.find_characteristic('foo') # BOOM! self.assertEqual(foo, []) |
Basically, if I get the component, stop the container, re-start the
container, and get again the component, then at the first use of the
component (calling a method, for instance) I get a |CORBA.FAILURE|.
After that everything works fine (if you catch the exception...).
I will send a pull request, but it is just a workaround I am using to
fix the problem. I hope someone can find the time to investigate the fix
the issue from the root.
test_get_component.py.txt
<https://github.com/ACS-Community/ACS/files/1097324/test_get_component.py.txt>
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#54>, or mute the thread
<https://github.com/notifications/unsubscribe-auth/AJJOrhxYNLcz4z_cuU6FnSNJzZWW9cSoks5sG4XcgaJpZM4ODV6Y>.
|
@bjeram , no issue with object explorer, so I think it only happens from the Python side. |
Sorry for the delay, I have ran into this issue before too. I don't know if you have had luck with this (other than the workaround). But it doesn't seem to be a bug, but rather a design decision made by OmniORBpy: I can confirm that both TAO and JacORB didn't make the same design decision and work right away with the existing reference after restarting the container. |
I think there is an issue in Python (I do not know in C++ or Java) after reloading the container. I am using the latest ACS release (2017-02). Here is a test that fails (the complete file is in attachment), because the last but one line raises a
CORBA.FAILURE
:Basically, if I get the component, stop the container, re-start the container, and get again the component, then at the first use of the component (calling a method, for instance) I get a
CORBA.FAILURE
. After that everything works fine (if you catch the exception...).test_get_component.py.txt
The text was updated successfully, but these errors were encountered: