If I compile a release build with g++ 8.2.1, I get segfaults when executing testCascade and cascade_example. No issues with clang though. gdb says it happens in TrackingLine::GetTrack.
Furthermore, testSibyll seems to get stuck in some kind of endless loop (clang & g++). The output doesn't get beyond
Decay: calling Sibyll decay routine..
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Child items ...
Show closed items
Linked items 0
Link issues together to show that they're related.
Learn more.
If this is an optimization problem, is it possible to set the optimization flag separate for the external packages? I wouldn't consider Sibyll, Epos and co. save to use with anything but -O0. Sibyll at least is not tested with optimization.
This bug is very mysterious to me. We have all warning flags enabled and enforce strict standard compliance. I'll try to compile with icc on the BinAC cluster and see what happens there.
I switched off optimization just to prevent external testers to report to us what we already know. Besides this, we have to find the real cause of this crash and fix it! I would start to search for temporary objects going our of scope unnoticed. It could be that Particle& p = *Stack::GetNextParticle() etc. are potential problems, but this requires some systematic work investigating all use of pointers and references. I am sure afterwards the framework becomes even more clean and more stable.
Good point. I even forgot that we distinguish between Debug and Release builds. At some point we need someone with time to work on the gitlab-ci in-depth. We need a matrix of systematic builds...
Before that, we have to investigate and find out what really happens. Maybe valgrind can help, too?
Btw. in #102 (closed) we had a very similar crash, which also affected gcc and not clang, and was induced by a dangling object reference.
Great work. This means it is related to either "producing" "deleting" "referring" "copying" or "pointing" to StackIteratorInterface (aka Particle) objects. We carefully have to check where in our workflow we do exactly what with StackIteratorInterface objects (it is obvious that the "cout" is not a fix, but just a distraction for the optimizer in gcc...)
Problems could come e.g. from "const casting", "temporary objects", or from changing the std::vectors used on the SuperSimpleStack while we still access a Particle object/reference (->the std::vector memory mapping changed).