-
Notifications
You must be signed in to change notification settings - Fork 7
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
Segfault during DAG build persists #80
Comments
The segfault occurred again this weekend, and again, multiple attempts since yesterday to reproduce this with gdb/valgrind/thread-sanitizer failed. I now manually went through the code line by line and found one line where an access to the first box ID of a geometry was not protected by a check whether the geometry has any box IDs at all. Normally, each geometry should be assigned at least one box ID, as the grid covers the entire globe. However, it might be that in extreme edge cases (for example, a polygon lying completely on an edge of the grid) a geometry may not have any box ID at all. This case is now caught with 755e5af. I now restarted the build with 755e5af, let's see what happens. |
Update: this wasn't the cause. Additional runs of 755e5af today on our
I will create an artificial USA datasets containing only named areas tomorrow and test it with ATM, our weekly update runs entirely within |
Still no luck reproducing this, even with synthetic datasets, and with the removal of all sanity checks we have in |
I was now finally able to reproduce this in a single-threaded environment (so no data races) on the ABB (Asia) dataset with basic debug output. The crash occurred during a check between these areas: https://www.openstreetmap.org/relation/5615030 The latter crosses the dateline and thus the boundaries of the mercator projection, so there is certainly something special about it. How that relates to the crash remains to be investigated :) |
Current state, all with Note that from Boost 1.78 upwards,
† Segfault after checking the areas |
The latest build (now with Boost 1.84) ran through without problems. TLDR: with Boost 1.78, the code segfaulted every time during the comparison of areas 5615030 and 1949881 in a single-threaded environment, but only if nobody looked (it ran through fine with gdb, valgrind, and with the thread sanitizer enabled). Later and earlier Boost versions worked fine. Closing this now, although I am still not 100% convinced that the cause is not in our code. |
Unfortunately, the latest weekly run crashed this morning with a segmentation fault during the DAG build for the USA dataset. This seems to be the same bug we encountered on the planet.osm dataset in autumn, and which we thought to be fixed now. I am atm trying to reproduce this in
gdb
.The text was updated successfully, but these errors were encountered: