Maproom/qmapshack

Routino Fatal Error (relationsx.c:240)

Closed this issue · 5 comments

Describe the bug

When I try to create a new routino database I have the following error message:
image

What have you done to circle down the problem?

  • I have googled the text of the error and found one other user facing the same problem in April 2023
  • I have tried with different .pbf file having different sizes

To Reproduce

  1. Go to 'Tools"
  2. Click on 'Create a routino database'
  3. Setup QmapSchack to create a database and click on start
  4. See error

Expected behavior

I expect no error like it was the other time I update the database

Screenshots

image

Attachments

Tracebacks

Desktop

  • OS: Windows 10
  • QMapShack Version: 1.16.1
  • Window Manager: N/A

Additional context

This is a problem of Routino, not QMapShack. Your input database is too large and Routino has it's limitations as it can only handle 32bit aka 4GB. You might want to file a bug report at https://www.routino.org/.

Or you use BRouter as an alternative.

👍

I contacted the author of routino, Andrew M. Bishop, and there is probably good news:

Andrew's explanation for the issue:

The change suggested by the error message is just a one-line change in
the file sorting.h but it will make the data processing less efficient
in some cases which is why it does not have that value by default.

The problem is caused by a route relation that has more than ~8000
nodes and ways. It is not forbidden to have a relation with so many
members but the maximum size of a relation is recommended to be no
more than 300 items (https://wiki.openstreetmap.org/wiki/Relation#Size)
so these are exceptional relations.

The good news is that this problem is handled in routino 3.4 which he just released:

-------------------- ChangeLog --------------------

2022-07-10 [r2110] Andrew M. Bishop

    * src/relationsx.c, src/waysx.c: Drop data and log an error rather
      than exit if a way or relation contains too much data.

-------------------- ChangeLog --------------------

The fix that I used is perhaps not the optimum one but when there is
too much data (a route relation with more than about 8000 members)
Routino now discards the extra data. This is a rare case and route
relations only have a small effect on the routing database. Dropping
a few route members seems better than making the sorting less
efficient for everything else.

kiozen commented

Hey that's good news. Thanks for taking action!