-
Notifications
You must be signed in to change notification settings - Fork 69
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
Crash while descending towards the surface of a body #2811
Comments
I can’t trivially decode the stack with our usual script since this is a custom build, but since it runs on the machine where it was built it comes with symbols already so all is well. We end up here with νₒ = Dᴛₒ = -2147483648, Cᴛₒ = 1, which is obviously a problem: Principia/astronomy/orbit_recurrence_body.hpp Lines 20 to 28 in eb88861
The call is here, so the -2147483648 is probably UB from a non-representable Principia/astronomy/orbit_recurrence_body.hpp Lines 74 to 76 in eb88861
We should probably be using 64-bit integers in general, but here there is something more worrying. Principia/astronomy/orbit_recurrence.hpp Line 67 in eb88861
At first glance it seems that 2147483648 orbits per day would still be 24855 orbits per second, which is too much (even if the orbit goes underground, since the spacecraft being analysed is above ground, the orbit cannot be shorter than the time required to fall to the centre of the Earth). However, note that κ is computed as Principia/astronomy/orbit_recurrence_body.hpp Lines 53 to 59 in eb88861
Principia/astronomy/orbit_recurrence.hpp Lines 29 to 37 in eb88861
|
Worth nothing that this occurred above the Moon as such the "day" is longer to start with, also the "orbit" had a high apoapsis approximately 10 Mm above the surface. I suspect that this ties in with your analysis. |
Hm, I am very puzzled, replaying the journal (removing the pointer consistency checks and forcing all analysis requests to be executed by peppering the analyser with |
On second thought the hypothesis according to which we are analysing underground orbits does not make much sense, considering that the integrator should stop when we are underground. |
It seems that this is instead plain old UB, we are accessing a vector at index -1. |
This in turn happens because the sidereal period is negative ( |
A fairly repeatable crash while undergoing powered descent towards the surface of the Moon.
Journal
Log
Note, this occurred on a locally created build.
The text was updated successfully, but these errors were encountered: