Opened 5 years ago

Closed 5 years ago

#1919 closed defect (invalid)

WCST_Import wcs_extract recipe infinite loop and null error in Rasql servlet

Reported by: Bang Pham Huu Owned by: Bang Pham Huu
Priority: major Milestone: 9.7
Component: wcst_import Version: development
Keywords: Cc: Dimitar Misev
Complexity: Medium

Description (last modified by Dimitar Misev)

On the wcs_extract test, wcst_import is stuck in an infinite loop here (on Debian testing):

  File "wcst_import/wcst_import.py", line 153, in <module>
    main()
  File "wcst_import/wcst_import.py", line 136, in main
    reg.run_recipe(session)
  File "wcst_import/master/recipe/recipe_registry.py", line 89, in run_recipe
    recipe.describe()
  File "wcst_import/recipes/wcs_extract/recipe.py", line 91, in describe
    importer = self._get_importer()
  File "wcst_import/recipes/wcs_extract/recipe.py", line 124, in _get_importer
    self.importer = Importer(self.resumer, self._get_coverage(), self.options['wms_import'], self.options['scale_levels'])
  File "wcst_import/recipes/wcs_extract/recipe.py", line 117, in _get_coverage
    self.options['partitioning_scheme']).get_coverage()
  File "wcst_import/util/coverage_reader.py", line 65, in __init__
    self._read()
  File "wcst_import/util/coverage_reader.py", line 428, in _read
    intervals = self._get_intervals(coverage_axes, self.partitioning_scheme)
  File "wcst_import/util/coverage_reader.py", line 298, in _get_intervals
    axis_intervals.append(Interval(high, low))
  File "wcst_import/master/importer/interval.py", line 27, in __init__
    def __init__(self, low, high=None):

294                          while (resolution > 0 and high <= stop) or (resolution < 0 and stop <= high):
295                              if low < high:
296                                  axis_intervals.append(Interval(low, high))
297                              else:
298 B->                                axis_intervals.append(Interval(high, low))
299                              # To make sure there is no grid pixel slipping through the cracks due to the decimal computations
300                              # start the next slice with one geo pixel before the last one ended.
301                              # Error correction is disabled by default, the user can enable it
302                              low = high - error_correction
303                              high = low + geo_pixels_per_slice
(Pdb) p resolution
-1.2
(Pdb) p low
-34.54
(Pdb) p high
-34.54
(Pdb) p stop
-39.34
(Pdb) p error_correction
0
(Pdb) p geo_pixels_per_slice
-0.0

error_correction and geo_pixels_per_slice are 0, so low/high never change in this loop.

Change History (5)

comment:1 by Bang Pham Huu, 5 years ago

Description: modified (diff)

comment:2 by Bang Pham Huu, 5 years ago

Description: modified (diff)

comment:3 by Bang Pham Huu, 5 years ago

Description: modified (diff)

comment:4 by Dimitar Misev, 5 years ago

Description: modified (diff)

comment:5 by Dimitar Misev, 5 years ago

Resolution: invalid
Status: newclosed
Note: See TracTickets for help on using tickets.