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 in SlabsPolygonIndex::find
on high longitude polygons
#58612
Comments
|
Hi, @cpg314 !😀 Thanks for reporting an issue! Can you please provide an example, of how you got this error? |
I've been trying to create a repro, but this is fairly difficult: Do you have an idea how I could easily find the offending point(s)? I could write something that performs binary search among the points until a segfault occurs, but the big tables has 100 million rows. |
Just in case, is it possible that some values simply didn't exist in your table? It'd be appreciated to give some hints(e.g. structure of dicts, data that causes segfaults etc) because now it's not clear what can go wrong here. |
The dict looks like this:
The The
No segfault: The segfault seems to be triggered by a combination of certain polygons in the dictionary and certain points in the
The dictionary is very small (3MB), so I could share it privately. On the other hand, the other table is very large, so I would need to identify the offending points first.
All of the Also there is no segfault with |
Ok, with a bit of pain, I managed to find a single point that makes the server segfault with: |
It will definitely help. I have link to my telegram in my github account info: https://t.me/yarik_kk. We can discuss sharing there |
Thanks, I have messaged you the reproduction data. |
Describe what's wrong
A polygonal dictionary is created with longitudes and latitudes. The keys are
MultiPolygon
s with a single polygon each.When some of the polygon points contain coordinate with longitude close to +-180°, a segfault appears in
SlabsPolygonIndex::find
and makes the entire server crash.Does it reproduce on recent release?
This is present on version 23.12.2.59 (official build), build id: 7F4C1A822F9C67A4D137A58F9A95BD4B0F1B6A8A, git hash: 17ab210)
How to reproduce
dictGet
.I have not yet tried creating a minimal example reproducing the bug.
Maybe it is clear to someone faimilar with
SlabsPolygonIndex::find
what line could be causing an invalid memory access.Expected behavior
Even if some polygons are invalid, the server should not segfault
Error message and/or stacktrace
The text was updated successfully, but these errors were encountered: