[Tile-serving] [osm2pgsql] Ignore nodes with invalid coordinates. (#455)

Matt Amos notifications at github.com
Sun Oct 11 00:22:26 UTC 2015


Added a warning in 2ee1955.

@lonvia what's happening is that libosmium is starting some threads to handle input, on my system it looks like there's 3 in addition to the main thread. It seems that one is reading PBF blocks from disk and putting them onto a `Queue` while the main thread is popping - possibly from a different `Queue`, I'm not quite sure. When the exception occurs in the parsing method on the main thread, it causes the stack to unwind and the `Reader`'s destructor to be called, which sets a flag and waits for the threads it has started to finish. However, the thread which is reading PBF blocks is blocked on pushing to the `Queue`, so doesn't terminate and the system deadlocks.

It's not clear to me whether the responsibility for handling exceptions lies with libosmium (i.e: `Reader::close()` handles early termination), or whether there's something that osm2pgsql should be doing to catch the exception and indicate a fatal condition. In either case, it's a separate issue from ignoring those nodes with invalid locations. @joto - should I file something against libosmium for this, or should osm2pgsql be doing something to handle early termination?


---
Reply to this email directly or view it on GitHub:
https://github.com/openstreetmap/osm2pgsql/pull/455#issuecomment-147141299
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstreetmap.org/pipermail/tile-serving/attachments/20151010/c3f3b446/attachment.html>


More information about the Tile-serving mailing list