#1103 closed defect (fixed)
MgCooker: Crash on large map bounds
Reported by: | zspitzer | Owned by: | ksgeograf |
---|---|---|---|
Priority: | low | Milestone: | |
Component: | Maestro | Version: | |
Severity: | major | Keywords: | mgcooker |
Cc: | External ID: |
Description
using these options causes mg cooker to crash with the lower scales with a system out of memory exception, too many tiles?
scales =[2500, 4766.66548, 9088.43994, 17328.62118, 33039.89619, 62996.05311, 120112.44481, 229014.33798, 436653.89612, 832553.22213, 1587401.08316, 3026643.98126, 5770799.75972, 11002988.81301, 20979026.80047, 40000001.17915, 76266650 ] ; extent =[105.0056, -52.8963,162.1912, -1.503 ];
Change History (7)
comment:1 by , 15 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
comment:2 by , 15 years ago
Resolution: | fixed |
---|---|
Status: | closed → reopened |
using the same map
@echo off "D:\Program Files\OSGeo\MapGuideMaestro\MgCookerCommandline.exe" batch --mapdefinitions="Library://MAPS/MAP.MapDefinition" --basegroups="BASE" --scaleindex=14,15,16--mapagent="http://localhost/mapguide/mapagent/mapagent.fcgi" --username="Anonymous" --password="" --threadcount=16 --random-tile-order
Update time: 12/19/2009 6:15:00 PM Current Map: Library://MAPS/MAP.MapDefinition (1 of 1) Current Group: BASE (1 of 1)
Unhandled Exception: System.ArgumentOutOfRangeException: Index was out of range.
Must be non-negative and less than the size of the collection.
Parameter name: index
at System.Collections.ArrayList.get_Item(Int32 index) at OSGeo.MapGuide.MaestroAPI.DoubleCollection.get_Item(Int32 idx) at OSGeo.MapGuide.MgCooker.Program.DisplayProgress(BatchMap map, String group
, Int32 scaleindex, Int32 row, Int32 column, Boolean& cancel)
at OSGeo.MapGuide.MgCooker.Program.bx_FinishRenderingTile(CallbackStates stat
e, BatchMap map, String group, Int32 scaleindex, Int32 row, Int32 column, Boolea n& cancel)
at OSGeo.MapGuide.MgCooker.BatchSettings.InvokeFinishRendering(BatchMap batch
Map, String group, Int32 scaleindex, Int32 row, Int32 col)
at OSGeo.MapGuide.MgCooker.RenderThreads.RunAndWait() at OSGeo.MapGuide.MgCooker.BatchMap.RenderScale(Int32 scaleindex, String grou
p)
at OSGeo.MapGuide.MgCooker.BatchMap.RenderGroup(String group) at OSGeo.MapGuide.MgCooker.BatchMap.Render() at OSGeo.MapGuide.MgCooker.BatchSettings.RenderAll() at OSGeo.MapGuide.MgCooker.Program.Main(String[] args) at OSGeo.MapGuide.MgCooker.Commandline.Program.Main(String[] args)
comment:3 by , 15 years ago
Alright, this appears to be a bug in the commandline code?
Could you post your map's bounds?
comment:4 by , 15 years ago
It's the same bounds as in the description.
The GUI just exits without any error message
comment:5 by , 15 years ago
Resolution: | → fixed |
---|---|
Status: | reopened → closed |
Fixed with r4464.
This must have been a long standing bug, it was caused by not having all scales in the process.
I could not get the GUI to "just exit", it runs until all tiles are rendered and then exits (is that what you meant?)
comment:6 by , 15 years ago
maybe the just exit was that there isn't a tiling complete message when it finishes?
Fixed in r4335.
When the tiles are generated, a list of all row/column pairs is generated for each scale. When writing the code, I could see that this was inefficient, but I had no space efficient random pair generator.
Now that this has turned out to actually be a problem, I have implemented a less random method, but now the list is limited to keeping 500 pairs at a time (a producer/consumer queue).