prevent direct calls to sdag entry functions
Calls to sdag entries from within "serial" blocks of sdag entries return immediately (or at the first unfulfilled "when" block), like a message send, rather than integrating into the sdag workflow. This is not the expected behavior. Giving the function that implements an sdag entry method a different name than the entry method itself would prevent this, so it would be impossible to accidentally call mysdag() rather than thisProxy->mysdag().
This issue was reported by one of the speakers at the Charm++ workshop.
#6 Updated by Nitin Bhat over 1 year ago
- Status changed from New to Implemented
- Category set to Charmxi
- % Done changed from 0 to 100
- Estimated time set to 2.00 h
Modified every sdag entry method to be implemented in .C as "_sdag_" + entry method name
In a .ci file if there's an entry method called mysdag() that is used with the when construct, it is implemented with a function "_sdag_mysdag". This prevents direct calls made to "mysdag()".
#10 Updated by Nitin Bhat 11 months ago
Fix: Gerrit: https://charm.cs.illinois.edu/gerrit/#/c/2205/
The current implemented fix is where an sdag entry method that contains when statement(s) gets renamed to "_sdag_fnc_"+name and thereby cannot be directly called. Sdag entry methods without when statements can still be directly called.
We did discuss it in core a few months back, but it'll be worthwhile to bring it up again esp because OpenAtom uses direct sdag calls and those will have to change.
Openatom build failure: (http://ppl-jenkins:8080/job/test-openatom/9872/console)
#15 Updated by Nitin Bhat 7 months ago
Openatom changes corresponding to this bug fix have been merged: https://charm.cs.illinois.edu/gerrit/#/c/openatom/+/3917/