Skip to content
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

Emission handling when using monitors #3

Open
goldhoorn opened this issue Jul 1, 2014 · 12 comments
Open

Emission handling when using monitors #3

goldhoorn opened this issue Jul 1, 2014 · 12 comments

Comments

@goldhoorn
Copy link
Contributor

I dont't want to continue the discussion on stackexchange. I uploaded the logfile to:

http://auv.informatik.uni-bremen.de/framework/logs/syskit-event-submission-bug/avalon-events.log

The error is between cycle 3457 and 3610, in 3457 the PipelineDetector goes from stop to success, in the next cycle it emits a weak_signal. I assume the problem is a race-problem. Syskit needs to long for the reconfiguration of the network, the task therefore is not stopped and changes his state.
In the meantime syskit assumes that the task is stopped and can't handle the event submission anymore.

But in general what i wonder, the task should not be stopped, because it is needed in the later setup also. The next state of the state-machine should reuse it.. but i think this should be resolved by the graph-merging in later steps that could not archived caused by the error.

@doudou
Copy link
Member

doudou commented Jul 1, 2014

Hey. Please add screenshots of the steps you are talking about in the
issue, thanks.

2014-07-01 11:32 GMT+02:00 Matthias Goldhoorn [email protected]:

I dont't want to continue the discussion on stackexchange. I uploaded the
logfile to:

http://auv.informatik.uni-bremen.de/framework/logs/syskit-event-submission-bug/avalon-events.log

The error is between cycle 3457 and 3610, in 3457 the PipelineDetector
goes from stop to success, in the next cycle it emits a weak_signal. I
assume the problem is a race-problem. Syskit needs to long for the
reconfiguration of the network, the task therefore is not stopped and
changes his state.
In the meantime syskit assumes that the task is stopped and can't handle
the event submission anymore.

But in general what i wonder, the task should not be stopped, because it
is needed in the later setup also. The next state of the state-machine
should reuse it.. but i think this should be resolved by the graph-merging
in later steps that could not archived caused by the error.


Reply to this email directly or view it on GitHub
#3.

@goldhoorn
Copy link
Contributor Author

Here they are

3457:
3457

3610:
3610

@doudou
Copy link
Member

doudou commented Jul 2, 2014

I assume that the one at the top is 3610 and the one at the bottom 3457...
Would have been nice to have them in chronological order ...

@goldhoorn
Copy link
Contributor Author

Sorry, yep, the information was not displayed default, i added the info above. By "editing" the message you would have seen the names...

@doudou
Copy link
Member

doudou commented Jul 2, 2014

FYI, there's a nice preview mode to make sure that you did not get the
markdown wrong

2014-07-02 9:41 GMT+02:00 Matthias Goldhoorn [email protected]:

Sorry, yep, the information was not displayed default, i added the info
above. By "editing" the message you would have seen the names...


Reply to this email directly or view it on GitHub
#3 (comment).

@doudou
Copy link
Member

doudou commented Jul 2, 2014

OK ... so.

It is what I thought. Not a race condition, syskit/roby do what they are supposed to do here. It is just that the task emits the weak_signal event, which gets forwarded to the compositions that are not yet running. There are number of reasons why, in this situation, the compositions would not be running (e.g. having a temporal constraint forbidding them to be), so everything in the code behaves as it is supposed to.

Which brings me to the real problem. Theoretically, the forwarding relation should not be setup until the target task is started in this case. However, this is roby-theoretical-from-2007 before syskit started existing and I am now thinking that it should not be the case. IMO, the right fix would be that the forwarding relation should simply be ignored if the target task is not started.

@goldhoorn
Copy link
Contributor Author

Could you propose a pull-request which i can try?

@doudou
Copy link
Member

doudou commented Jul 4, 2014

Nope, because I don't have the time. Feel free to do it, though.

2014-07-04 10:14 GMT+02:00 Matthias Goldhoorn [email protected]:

Could you propose a pull-request which i can try?


Reply to this email directly or view it on GitHub
#3 (comment).

@goldhoorn
Copy link
Contributor Author

Could you give a hit instead for the right solution instead simply removing the error message?

@doudou
Copy link
Member

doudou commented Aug 8, 2014

???

@goldhoorn
Copy link
Contributor Author

Whats unclear?

I want a hint for the right fix if possible.
So that i can provide a correct fix.

Br

Von meinem iPhone gesendet

Am 08.08.2014 um 19:30 schrieb Sylvain Joyeux [email protected]:

???


Reply to this email directly or view it on GitHub.

@doudou
Copy link
Member

doudou commented Aug 13, 2014

Ah ... now it's clear ;-)

As I mentioned in #7, that would require a level of knowledge of Roby's internals that you really don't have... And I have little time to explain it. I am testing different ways to do it, but that's going to take some time. If the original fix works for you, stick to it for now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants