-
Notifications
You must be signed in to change notification settings - Fork 50
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
Array pointers in messages can be overwritten by generated code in the message class constructor (causes crash on GCC 6+) #1045
Comments
Original date: 2016-08-28 20:59:30 I need to investigate more, but I think this has come to the fore. |
Original date: 2016-08-28 21:16:33 This crashes in megatest
Whereas this:
Does not crash, successfully runs the full suite of tests and examples. |
Original date: 2016-08-28 22:02:03 More details on the optimization here: |
Original date: 2016-10-12 04:39:26 ChaNGa also dies in a CkReduction when compiled with GCC 6.2.1. Recompiling with fno-lifetime-dse fixes the problem. |
Original date: 2016-10-19 21:35:55 |
Original date: 2016-10-29 14:58:01 On net-win64 we get compiler warnings because MSVC doesn't support the -fno-lifetime-dse option:
|
Original date: 2016-11-04 15:23:53 XLC actually gives an error for this, so the build aborts:
|
Original date: 2016-11-04 15:26:45 Ugh, the configure test is supposed to catch that. I'll fix. |
Original date: 2016-11-06 01:06:16 Phil Miller wrote:
Config does catch it, but on BG/Q cross compilation means we use different compilers for SEQ and rest. |
Original date: 2016-11-08 00:27:54 On examination, there is no case where the flags we're detecting in configure should actually be passed to the native/host compiler. So, disable passing those flags to the native compiler, and we've fixed the Blue Gene Q issue, and partially mitigated the (less problematic) MSVC issue: |
Original date: 2016-11-08 18:27:17 Subsequent fixes pushed, awaiting review. |
Original date: 2016-11-09 18:20:08 It'll be nice to see this get through autobuild, but the fix is in. |
Original date: 2017-07-11 16:14:17 My original notes from 2011-01-07:
Email exchange with Jim, same day:
Meeting minutes, same day:
January 18:
Next update:
Final note, January 2012:
|
Original issue: https://charm.cs.illinois.edu/redmine/issues/1045
https://charm.cs.illinois.edu/private/tms/listlog.php?param=1111
Upcoming changes in GCC 6 optimizer capabilities may resurface this old bug even with the workaround implemented
https://gcc.gnu.org/gcc-6/changes.html
If the various bits of memory allocation and construction get inlined, potentially even across object files with link-time optimization, then the stores to the pointers from the message struct to the associated spots in the memory buffer allocated for it and its payload might get eliminated.
The text was updated successfully, but these errors were encountered: