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
We should be able to detect if a parameter has been modified in the controller (consideration on the initialization step). (linked with #142) #143
Comments
The commit 55b5b09 should solve this issue but I sometimes get a Segmentation fault when changing parameters value.
|
What I don't like is that it happens from time to time and inexplicably (that's right?) and that it's linked with a PyQt5 C++ shared object ... |
That's right, it might happen the first time we change a parameter or the 20th time, I was not able to discern a pattern. |
I'll try on my station (not the same OS, but may be not the same SIP and PyQt?). |
|
I do not reproduce the SIGSEGV. |
You launch mia from a terminal or from an IDE ? |
Is there any thread involved in the process ? It is common that problems
that cannot be reproduced easily are race condition due to parallelism.
Moreover, PyQt is not thread safe. All Qt related calls (even not using
graphical elements) must be done from a single thread (not necerrarily the
main thread but all in the same thread).
…On Thu, Feb 20, 2020 at 5:30 PM Eric Condamine ***@***.***> wrote:
I do not reproduce the SIGSEGV.
The minimum step to repoduce is really the one above ?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#143?email_source=notifications&email_token=AAXLUTVQGVHVQ45ZK35TNZDRD2VZVA5CNFSM4KQHPOR2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEMO77BQ#issuecomment-589168518>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAXLUTWLBC6HR4G6MQYDMNDRD2VZVANCNFSM4KQHPORQ>
.
|
I tried from PyCharm and a terminal, I got the error in both case. |
Hum ... I already observed that we are not very clean concerning the QT calls from a single thread ... Is it this issue here ? |
@M40V, please can you search for Qt related calls (even those that do not use the |
it's very strange. I tested again with another station (OS fc31) and I can't reproduce the SIGSEGV! (I stopped after 50 inputs |
It might be specific to my configuration. |
|
OK ! it's my error, I was testing with the master branch and not your branch. So I just added So I think the idea of @sapetnioc sounds very pretty. Please, can you search for Qt related calls (even those that do not use the |
Yes, I'll try to look into it with Pycharm debugger and gdb. |
I commented the call to update_current_node at the end of the method update_parameters in node_controller.py. It keeps MIA from getting a segmentation fault after modifying the node controller. If the pipeline was initialized previously, the modification will disable the run pipeline action button immediately. If we modify the parameters to correspond to the previous initialization, the run button will not be immediately enabled, first the user will have to click on the node. I tried to simulate a click on the node after a change of parameters (code commented in pipeline_manager_tab.controller_value_changed) but it causes a segmentation fault too. Log
Backtrace:
Info about the threads:
|
My first attempt:
|
Thanks @M40V, the previous post is now solved! A synthesis of what should work to close both issues #143 and #142 was already done in #142:
I'll start testing that. It would be really cool to finally close those two tickets. |
Point A)
Point B)
So I propose to close the #142 (I haven't been able to reproduce the cases that didn't seem to work!) and to keep open the #143 to keep in mind the necessity to make more smart the detection of a change of a parameter for the initialisation. |
Except for the |
Let's take an example:
The text was updated successfully, but these errors were encountered: