Ticket #196 (closed defect: fixed)

Opened 18 months ago

Last modified 18 months ago

osgearth_seed: problem with certain bounds

Reported by: gwaldron Owned by:
Priority: major (material / funded) Milestone: 1.4
Component: osgEarth Version: 1.3
Severity: Keywords:
Cc:

Description

Hi,

I've been experimenting with caching of gdal input files and have come across a strange problem. I can best describe it by showing steps... This is based on r1265 and I'm running on Debian Sid.

Make 2 copies of gdal_multiple_files.earth, one gdal_multiple_files_true.earth and the other gdal_multiple_files_false.earth.

Into "true" put:
<cache cache_only="true">
<path>cache</path>
</cache>

and into "false" put:
<cache cache_only="false">
<path>cache</path>
</cache>

now run:
rm -rf cache;osgearth_seed -b 0 -34 19 -33 gdal_multiple_files_false.earth
osgearth_simple gdal_multiple_files_true.earth

all seem OK.

now run:
rm -rf cache;osgearth_seed -b 10 -34 19 -33 gdal_multiple_files_false.earth
osgearth_simple gdal_multiple_files_true.earth

the screen flashes and info gets printed:
[osgEarth]* [osgEarth::MapNode] Couldn't make tile for root key: 0_0_0

I'm not sure where to start looking for the problem. What is strange is that if I just once run (after the seeding):
osgearth_simple gdal_multiple_files_false.earth
and just quit without manipulating anything
osgearth_simple gdal_multiple_files_true.earth
then works.

Any help appreciated.
rgds
jp

PS: osgearth_seed on the "true" file segfaults.

Change History

Changed 18 months ago by gwaldron

response: Upon further inspection, I'm inclined to think it is acting correctly.

The "Cannot get tile for root key 0_0_0" message prints because that tile (0,0,0) does not exist in the cache. That tile comprises the north half of the western hemisphere, which was not included in your second set of seed bounds. (It was included in the first set, courtesy of the xmin=0 longitude).

Perhaps the warning message should not print in this case, or perhaps we should always cache level 0 regardless of bounds.. but in any case the behavior is by design.

So, there is no data in the cache for the western hemipshere, but the viewer starts up centered on that side of the world. If you pan your view you will see the cached data in the eastern hemisphere.

Changed 18 months ago by jasonbeverage

  • status changed from new to closed
  • resolution set to fixed

Crash is fixed. Was assuming that the TileSource? is always valid, which it is not in cache only mode. Printing out warning and exiting rather than crashing now.

Note: See TracTickets for help on using tickets.