Open carstenbauer opened 3 years ago
Thanks @carstenbauer for pointing this error.
All the tests passed for me. But, like you, a few times I got same error (segfault error) running ctest. I observed that it happened during the solving of last differential equation listed in test1.cpp file.
The reasons for such error are:
As the GiNaC library might not return the exact same output of an expression due to some unpredictable internal ordering of symbols, the symbols in the same algebraic expressions may be ordered differently during each running session of the GiNaCDE program, and one can get different exact solutions of the differential equation. Therefore, during some running session of ctest, when GiNaCDE solves last differential equation listed in test1.cpp file, it generates huge algebraic expressions which GiNaCDE cannot handle. For this reason the error reported by you is sometimes obtained. However, one can pass all the tests by running ctest repeatedly.
For such ctest error, now I think it is better to remove the last differential equation listed in test1.cpp, as it tests GiNaCDE.
@carstenbauer, no worries! I did not experience this issue.
@mithun218, I assume from your explanation that this problem can occur for any equation one tries to solve. As far as I know, a segmentation fault causes the program to terminate instantly, without cleaning up the associated memory. Is there any way of catching these errors and throwing an exception instead? This would tell users what went wrong and would give the opportunity to "gracefully" shut the program down.
To get going with my JOSS review, I just installed GiNaCDE. While the installation itself went smoothly, running
ctest
led to a segfault for the first test (the second one passed):Is this expected? @peanutfun (hope you don't mind the ping here), did the tests pass for you?