mkgmap error with austria.osm.bz2 of June 1 (all other contry extracts by gefabrik for Europe compiled except for Austria)

I assume there is a serious bug in the austria.osm.bz2 currently. See here the error output. It compiles 3 out of 7 tiles correctly, and then chokes on the 4. tile. I'm sure there is an error in the country extract (with the same command all other country extracts of europe compiled fine - the overflow is not related to split size (I reduced it drastically just to test, and yesterdays osm.bz2 extract compiled just fine). If someone wants to have a look at it, I could upload the broken file (only the splitted part that breaks mapbuilding - it's 12.1 MB) to my server. Maybe it's useful for bugtracking for you, I don't know (happens on rev 1053 and/or 1052 I did not testrun with older revisions)... D:\Garmin\mkgmap_680>start /b /wait java -jar -Xmx4800M mkgmap.jar --latin1 --lower-case --no-sorted-roads --ignore-maxspeeds --ignore-turn-restrictions --remove-short-arcs --add-pois-to-areas --location-autofill=1 --route --net --country-abbr=at --country-name=austria --gmapsupp --mapname=63660000 636600*.osm.gz Exception in thread "main" java.lang.StackOverflowError at java.util.regex.Pattern$BmpCharProperty.match(Unknown Source) at java.util.regex.Pattern$GroupHead.match(Unknown Source) at java.util.regex.Pattern$Branch.match(Unknown Source) at java.util.regex.Pattern$BranchConn.match(Unknown Source) at java.util.regex.Pattern$GroupTail.match(Unknown Source) at java.util.regex.Pattern$Curly.match0(Unknown Source) at java.util.regex.Pattern$Curly.match(Unknown Source) at java.util.regex.Pattern$BmpCharProperty.match(Unknown Source) at java.util.regex.Pattern$GroupHead.match(Unknown Source) at java.util.regex.Pattern$Branch.match(Unknown Source) at java.util.regex.Pattern$Branch.match(Unknown Source) at java.util.regex.Pattern$BranchConn.match(Unknown Source) at java.util.regex.Pattern$GroupTail.match(Unknown Source) at java.util.regex.Pattern$Curly.match0(Unknown Source) at java.util.regex.Pattern$Curly.match(Unknown Source) at java.util.regex.Pattern$GroupHead.match(Unknown Source) at java.util.regex.Pattern$Branch.match(Unknown Source) at java.util.regex.Pattern$Branch.match(Unknown Source) at java.util.regex.Pattern$BmpCharProperty.match(Unknown Source) at java.util.regex.Pattern$Start.match(Unknown Source) at java.util.regex.Matcher.search(Unknown Source) at java.util.regex.Matcher.find(Unknown Source) at java.util.Formatter.parse(Unknown Source) at java.util.Formatter.format(Unknown Source) at java.util.Formatter.format(Unknown Source) at uk.me.parabola.imgfmt.app.Coord.toDegreeString(Coord.java:191) at uk.me.parabola.imgfmt.app.net.RouteCenter.<init>(RouteCenter.java:42) at uk.me.parabola.imgfmt.app.net.NOD1Part.toRouteCenter(NOD1Part.java:286) at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:242) at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266) at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266) at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266) at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266) ......... This continues for around 200 lines, then breaks operation. Different output with -ea: D:\Garmin\mkgmap_680>start /b /wait java -jar -ea -Xmx4800M mkgmap.jar --latin1 --lower-case --no-sorted-roads --ignore-maxspeeds --ignore-turn-restrictions --remove-short-arcs --add-pois-to-area s --location-autofill=1 --description=main1_openmtbmap_at --route --net --country-abbr=at --country-name=austria --gmapsupp --mapname=63660000 636600*.osm.gz Exception in thread "main" java.lang.AssertionError: trying to get center of empty BBox at uk.me.parabola.imgfmt.app.net.NOD1Part$BBox.center(NOD1Part.java:141) at uk.me.parabola.imgfmt.app.net.NOD1Part.toRouteCenter(NOD1Part.java:286) at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:242) at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266) at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266) at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266) at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266) at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266) at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266) at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266) at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266) at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266) at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266) at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266) at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266) at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266) at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266) at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266) at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266) at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266) at uk.me.parabola.mkgmap.general.RoadNetwork.splitCenters(RoadNetwork.java:161) at uk.me.parabola.mkgmap.general.RoadNetwork.getCenters(RoadNetwork.java:166) at uk.me.parabola.mkgmap.build.MapBuilder.makeMap(MapBuilder.java:186) at uk.me.parabola.mkgmap.main.MapMaker.makeMap(MapMaker.java:90) at uk.me.parabola.mkgmap.main.MapMaker.makeMap(MapMaker.java:56) at uk.me.parabola.mkgmap.main.Main.processFilename(Main.java:151) at uk.me.parabola.mkgmap.CommandArgsReader$Filename.processArg(CommandArgsReader.java:237) at uk.me.parabola.mkgmap.CommandArgsReader.readArgs(CommandArgsReader.java:120) at uk.me.parabola.mkgmap.main.Main.main(Main.java:92)

I experienced a similar error, also with mkgmap rev 1053, when compiling germany.osm.bz2 with my own contour lines added. Mkgmap fails with an assertion error when I try to compile one of the resulting tiles. For some reason one road gets "stuck" while subdividing. When I omit the contour lines the tile will compile just fine. When looking at the log output there are a lot of ways with the name "SIEDLUNG NEUD?RFEL" (#35170047, #35160048, #35170059, #35170062, #35170063, #35170064, #35170070, #35170071, #35170072, #35170084, ... all in all 174) at about lat 51,08201/lon 14,67827. There are much less ways with that name in the original germay.osm.bz2! They consume 174 entries in TableA and TableB (whatever that is). But in TableB only 62 entries are allowed. This triggers a subdivision, but that doesn't help, as still they all get into one subdivision, which gets divided further and further until the assertion is triggered. Overriding the assertion by making sure that empty BBoxes are skipped doesn't help, as this will simply trigger a Stack Overflow. So what's the problem here? Maybe the splitter gets wild and generates a lot of duplicates? Splitter is the most recent version from svn (rev 33) by the way. And seemingly unchanged since ages... Looking at the ways of "SIEDLUNG NEUD?RFEL" there is only one obvious pecularity: the two points #413985320 and #413985328 are very near to each other (to four decimal places at least). The command line is java -Xmx2048m -ea -Dlog.config=logging.properties -jar trunk/dist/ mkgmap.jar --net --route problem.osm The log output is available at http://osm.arndnet.de/mkgmap.log.0 (15 MB) The input file problem.osm is available at http://osm.arndnet.de/problem.osm.zip (16 MB) The stack dump is very similar to that published by extremecarver: Exception in thread "main" java.lang.AssertionError: trying to get center of empty BBox at uk.me.parabola.imgfmt.app.net.NOD1Part$BBox.center(NOD1Part.java: 141) at uk.me.parabola.imgfmt.app.net.NOD1Part.toRouteCenter(NOD1Part.java: 286) at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:242) at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266) at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266) at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266) at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266) at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266) at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266) at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266) at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266) at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266) at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266) at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266) at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266) at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266) at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266) at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266) at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266) at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266) at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266) at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266) at uk .me.parabola.mkgmap.general.RoadNetwork.splitCenters(RoadNetwork.java: 161) at uk.me.parabola.mkgmap.general.RoadNetwork.getCenters(RoadNetwork.java: 166) at uk.me.parabola.mkgmap.build.MapBuilder.makeMap(MapBuilder.java:186) at uk.me.parabola.mkgmap.main.MapMaker.makeMap(MapMaker.java:90) at uk.me.parabola.mkgmap.main.MapMaker.makeMap(MapMaker.java:56) at uk.me.parabola.mkgmap.main.Main.processFilename(Main.java:151) at uk.me.parabola.mkgmap.CommandArgsReader $Filename.processArg(CommandArgsReader.java:237) at uk .me.parabola.mkgmap.CommandArgsReader.readArgs(CommandArgsReader.java: 120) at uk.me.parabola.mkgmap.main.Main.main(Main.java:92)

Hi Felix, Thilo, Is it possible to produce a small example OSM file that shows this problem? If so, please zip it up and send it to me or put it on a website I can access. Cheers, Mark

Hi Mark, I tried to do so, but the small file was processed without error :(. The big one is available at a website though (http://osm.arndnet.de/problem.osm.zip ). The problem to reproduce that error is that it occurs for me only if I merge contourlines that I generated on my own (not with srtm2osm). So this is quite a special case. I wouldn't have reported that error, but as I see that extremecarver sees a similar error I thought it might help. Regards Thilo Am 02.06.2009 um 08:50 schrieb Mark Burton:
Hi Felix, Thilo,
Is it possible to produce a small example OSM file that shows this problem? If so, please zip it up and send it to me or put it on a website I can access.
Cheers,
Mark _______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev

http://openmtbmap.x-nation.de/maps/Debug/63660027.osm.gz Here is the file. Created from YESTERDAYS geofrabrik austria.osm.bz2 with mkgmap splitter setting: --maxnodes=200000 Thilo Hannemann wrote:
Hi Mark,
I tried to do so, but the small file was processed without error :(. The big one is available at a website though (http://osm.arndnet.de/problem.osm.zip). The problem to reproduce that error is that it occurs for me only if I merge contourlines that I generated on my own (not with srtm2osm). So this is quite a special case. I wouldn't have reported that error, but as I see that extremecarver sees a similar error I thought it might help.
Regards Thilo
Am 02.06.2009 um 08:50 schrieb Mark Burton:
Hi Felix, Thilo,
Is it possible to produce a small example OSM file that shows this problem? If so, please zip it up and send it to me or put it on a website I can access.
Cheers,
Mark _______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
_______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev

Hi,
http://openmtbmap.x-nation.de/maps/Debug/63660027.osm.gz Here is the file. Created from YESTERDAYS geofrabrik austria.osm.bz2 with mkgmap splitter setting: --maxnodes=200000
Well, I tried that and can process it with no problems: time java -Xmx512m -Dlog.config=/home/markb/OSM/logging.properties -ea -jar /home/markb/OSM/mkgmap.jar --code-page=1250 --country-name=Austria --country-abbr=at --gmapsupp --draw-priority=28 --remove-short-arcs --ignore-osm-bounds --latin1 --net --product-id=6324 --add-pois-to-areas --location-autofill=1 --ignore-turn-restrictions --lower-case --no-sorted-roads --ignore-maxspeeds --route --tdbfile --tdb-v4 63660027.osm ... 2009/06/02 07:18:44 INFO (MapMaker): finished making map 63660027.img closing 13.99user 0.40system 0:14.40elapsed 100%CPU (0avgtext+0avgdata 0maxresident)k 0inputs+9616outputs (1major+29694minor)pagefaults 0swaps I will now take a look at the data Robert's just mentioned. Cheers, Mark

Could you retry using only --route? Your commandline somehow makes the tile compile. I will try more to find out which command exactly makes it compile smooth. Mark Burton wrote:
Hi,
http://openmtbmap.x-nation.de/maps/Debug/63660027.osm.gz Here is the file. Created from YESTERDAYS geofrabrik austria.osm.bz2 with mkgmap splitter setting: --maxnodes=200000
Well, I tried that and can process it with no problems:
time java -Xmx512m -Dlog.config=/home/markb/OSM/logging.properties -ea -jar /home/markb/OSM/mkgmap.jar --code-page=1250 --country-name=Austria --country-abbr=at --gmapsupp --draw-priority=28 --remove-short-arcs --ignore-osm-bounds --latin1 --net --product-id=6324 --add-pois-to-areas --location-autofill=1 --ignore-turn-restrictions --lower-case --no-sorted-roads --ignore-maxspeeds --route --tdbfile --tdb-v4 63660027.osm
...
2009/06/02 07:18:44 INFO (MapMaker): finished making map 63660027.img closing 13.99user 0.40system 0:14.40elapsed 100%CPU (0avgtext+0avgdata 0maxresident)k 0inputs+9616outputs (1major+29694minor)pagefaults 0swaps
I will now take a look at the data Robert's just mentioned.
Cheers,
Mark _______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev

It must be bounds related. Using --ignore-osm-bounds and it compiles fine. Using --route but not parsing --ignore-osm-bounds and the mess happens. Mark Burton wrote:
Hi,
http://openmtbmap.x-nation.de/maps/Debug/63660027.osm.gz Here is the file. Created from YESTERDAYS geofrabrik austria.osm.bz2 with mkgmap splitter setting: --maxnodes=200000
Well, I tried that and can process it with no problems:
time java -Xmx512m -Dlog.config=/home/markb/OSM/logging.properties -ea -jar /home/markb/OSM/mkgmap.jar --code-page=1250 --country-name=Austria --country-abbr=at --gmapsupp --draw-priority=28 --remove-short-arcs --ignore-osm-bounds --latin1 --net --product-id=6324 --add-pois-to-areas --location-autofill=1 --ignore-turn-restrictions --lower-case --no-sorted-roads --ignore-maxspeeds --route --tdbfile --tdb-v4 63660027.osm
...
2009/06/02 07:18:44 INFO (MapMaker): finished making map 63660027.img closing 13.99user 0.40system 0:14.40elapsed 100%CPU (0avgtext+0avgdata 0maxresident)k 0inputs+9616outputs (1major+29694minor)pagefaults 0swaps
I will now take a look at the data Robert's just mentioned.
Cheers,
Mark _______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev

Please compile with --route, without --route it compiles without error. ------------------------------------------------------------------------------- http://openmtbmap.x-nation.de/maps/Debug/63660027.osm.gz Here is the file. Created from YESTERDAYS geofrabrik austria.osm.bz2 with mkgmap splitter setting: --maxnodes=200000 Thilo Hannemann wrote:
Hi Mark,
I tried to do so, but the small file was processed without error :(. The big one is available at a website though (http://osm.arndnet.de/problem.osm.zip). The problem to reproduce that error is that it occurs for me only if I merge contourlines that I generated on my own (not with srtm2osm). So this is quite a special case. I wouldn't have reported that error, but as I see that extremecarver sees a similar error I thought it might help.
Regards Thilo
Am 02.06.2009 um 08:50 schrieb Mark Burton:
Hi Felix, Thilo,
Is it possible to produce a small example OSM file that shows this problem? If so, please zip it up and send it to me or put it on a website I can access.
Cheers,
Mark _______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
_______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev

Thilo Hannemann wrote:
I tried to do so, but the small file was processed without error :(. The big one is available at a website though (http://osm.arndnet.de/problem.osm.zip). The problem to reproduce that error is that it occurs for me only if I merge contourlines that I generated on my own
I suggest you create a separate overlay map with contours only and an second map with OSM data only. The SRTM map gets --transparent but no --route, the OSM map the other way round. This way you have to process the SRTM data only once. SRTM data don't change so there's no need for an update. If you update the OSM map you can easily merge the existing SRTM map into the gmapsupp.img.

On Jun 2, 2009, at 07:50, Thilo Hannemann wrote:
When looking at the log output there are a lot of ways with the name "SIEDLUNG NEUD?RFEL" (#35170047, #35160048, #35170059, #35170062, #35170063, #35170064, #35170070, #35170071, #35170072, #35170084, ... all in all 174) at about lat 51,08201/lon 14,67827. There are much less ways with that name in the original germay.osm.bz2! They consume 174 entries in TableA and TableB (whatever that is). But in TableB only 62 entries are allowed. This triggers a subdivision, but that doesn't help, as still they all get into one subdivision, which gets divided further and further until the assertion is triggered.
[...]
The log output is available at http://osm.arndnet.de/mkgmap.log.0 (15 MB) The input file problem.osm is available at http://osm.arndnet.de/problem.osm.zip (16 MB)
I think this is just bad data: As far as I know, the splitter doesn't create new osm ids, and if you look at those ways (e.g. http://www.openstreetmap.org/browse/way/35170062) you'll see that those existed but have been deleted. Is it possible that your germany.osm.bz2 was from a different time than problem.osm.bz2? If not, maybe there's a bug somewhere (splitter?) that undeletes elements with visible='no', and your source data contained the deleted ways? Cheers Robert

On Jun 2, 2009, at 07:50, Thilo Hannemann wrote:
The command line is java -Xmx2048m -ea -Dlog.config=logging.properties -jar trunk/dist/ mkgmap.jar --net --route problem.osm
The log output is available at http://osm.arndnet.de/mkgmap.log.0 (15 MB) The input file problem.osm is available at http://osm.arndnet.de/problem.osm.zip (16 MB)
Reduced (and slightly munged) extract that causes the same error here at http://page.mi.fu-berlin.de/vollmert/tmp/neud.osm.gz Cheers Robert

Hi Robert,
Yes, that file contains lot's of duplicate ways/nodes sitting on top of each other so it will never be able to be sub-divided (hence mkgmap blows up). Personally, I don't think we need to fix mkgmap to handle this because the data is obviously crap. What I can do is put in some code to detect this situation and issue a more useful error message before it bombs out. BTW if you download the same area, all the crap has gone away. Cheers, Mark

I fired up JOSM and deleted the myriad duplicate ways as no one else had bothered to do it. With luck, the austria map will build now. Cheers, Mark
participants (5)
-
Felix Hartmann
-
Mark Burton
-
Ralf Kleineisel
-
Robert Vollmert
-
Thilo Hannemann