[GRASS-dev] [GRASS GIS] #2496: r.random.surface error from RAN C library

#2496: r.random.surface error from RAN C library
------------------------------+---------------------------------------------
Reporter: cmbarton | Owner: grass-dev@…
     Type: defect | Status: new
Priority: normal | Milestone: 7.0.0
Component: Raster | Version: svn-trunk
Keywords: r.random.surface | Platform: MacOSX
      Cpu: Unspecified |
------------------------------+---------------------------------------------
We just encountered a weird bug in r.random.surface. So far, it seems to
showing up on the Mac intermittently but not on Linux. The message is...

ERROR: RAN1: j==-67 shouldn't happen

It was generated from a Python script that called r.random.surface in the
following way:

grass.run_command("r.random.surface", quiet = "True", output =
tempimpactg, distance = grazespatial, exponent = grazepatchy, high =
maxgrazeimpact)

I'm running on an oldish (ca. 5 years) iMac but with the latest OS X
10.9,x (no upgrade to 10.10 yet). This happens on both GRASS 7.0 beta3 and
7.1, both compiled 11 August 2014.

--
Ticket URL: <http://trac.osgeo.org/grass/ticket/2496&gt;
GRASS GIS <http://grass.osgeo.org>

#2496: r.random.surface error from RAN C library
------------------------------+---------------------------------------------
Reporter: cmbarton | Owner: grass-dev@…
     Type: defect | Status: new
Priority: normal | Milestone: 7.0.0
Component: Raster | Version: svn-trunk
Keywords: r.random.surface | Platform: MacOSX
      Cpu: Unspecified |
------------------------------+---------------------------------------------

Comment(by annakrat):

It comes from r.random.surface/random.c ran1 function, perhaps the new
random functions could be used instead?

http://trac.osgeo.org/grass/browser/grass/trunk/lib/gis/lrand48.c

This applies also to r.random.cells. See also discussion
[http://lists.osgeo.org/pipermail/grass-dev/2014-July/070163.html here].

--
Ticket URL: <http://trac.osgeo.org/grass/ticket/2496#comment:1&gt;
GRASS GIS <http://grass.osgeo.org>

#2496: r.random.surface error from RAN C library
------------------------------+---------------------------------------------
Reporter: cmbarton | Owner: grass-dev@…
     Type: defect | Status: new
Priority: normal | Milestone: 7.0.0
Component: Raster | Version: svn-trunk
Keywords: r.random.surface | Platform: MacOSX
      Cpu: Unspecified |
------------------------------+---------------------------------------------

Comment(by cmbarton):

I don't know. But this bug causes our modeling script to crash so that we
get no results.

--
Ticket URL: <http://trac.osgeo.org/grass/ticket/2496#comment:2&gt;
GRASS GIS <http://grass.osgeo.org>

#2496: r.random.surface error from RAN C library
------------------------------+---------------------------------------------
Reporter: cmbarton | Owner: grass-dev@…
     Type: defect | Status: new
Priority: normal | Milestone: 7.0.0
Component: Raster | Version: svn-trunk
Keywords: r.random.surface | Platform: MacOSX
      Cpu: Unspecified |
------------------------------+---------------------------------------------

Comment(by glynn):

That appears to be a conversion of
[http://burro.astr.cwru.edu/Academics/Astr327/HW/HW2/ran1.f this Fortran
function].

That's supposed to generate uniform random numbers in the [0,1) interval,
and so can be replaced by G_drand48().

--
Ticket URL: <http://trac.osgeo.org/grass/ticket/2496#comment:3&gt;
GRASS GIS <http://grass.osgeo.org>

#2496: r.random.surface error from RAN C library
------------------------------+---------------------------------------------
Reporter: cmbarton | Owner: grass-dev@…
     Type: defect | Status: new
Priority: normal | Milestone: 7.0.0
Component: Raster | Version: svn-trunk
Keywords: r.random.surface | Platform: MacOSX
      Cpu: Unspecified |
------------------------------+---------------------------------------------

Comment(by cmbarton):

If this is an easy fix, can someone let us know when it gets fixed? We
need this for landscape modeling experiments we are trying to run.

thanks
Michael

--
Ticket URL: <http://trac.osgeo.org/grass/ticket/2496#comment:4&gt;
GRASS GIS <http://grass.osgeo.org>

#2496: r.random.surface error from RAN C library
------------------------------+---------------------------------------------
Reporter: cmbarton | Owner: grass-dev@…
     Type: defect | Status: new
Priority: normal | Milestone: 7.0.0
Component: Raster | Version: svn-trunk
Keywords: r.random.surface | Platform: MacOSX
      Cpu: Unspecified |
------------------------------+---------------------------------------------

Comment(by annakrat):

Replying to [comment:4 cmbarton]:
> If this is an easy fix, can someone let us know when it gets fixed? We
need this for landscape modeling experiments we are trying to run.
>

It would be most welcome if somebody from your group would submit a patch
which can be reviewed and eventually submitted.

--
Ticket URL: <http://trac.osgeo.org/grass/ticket/2496#comment:5&gt;
GRASS GIS <http://grass.osgeo.org>

#2496: r.random.surface error from RAN C library
------------------------------+---------------------------------------------
Reporter: cmbarton | Owner: grass-dev@…
     Type: defect | Status: new
Priority: normal | Milestone: 7.0.0
Component: Raster | Version: svn-trunk
Keywords: r.random.surface | Platform: MacOSX
      Cpu: Unspecified |
------------------------------+---------------------------------------------

Comment(by cmbarton):

Unfortunately, no one here is a C programmer. We do Python, Java, and
other things. But not C. :frowning:

Otherwise we might have figured it out and fixed it already.

Michael

--
Ticket URL: <http://trac.osgeo.org/grass/ticket/2496#comment:6&gt;
GRASS GIS <http://grass.osgeo.org>

On Thu, Nov 20, 2014 at 9:55 PM, GRASS GIS <trac@osgeo.org> wrote:

#2496: r.random.surface error from RAN C library

------------------------------+---------------------------------------------
Reporter: cmbarton | Owner: grass-dev@…
     Type: defect | Status: new
Priority: normal | Milestone: 7.0.0
Component: Raster | Version: svn-trunk
Keywords: r.random.surface | Platform: MacOSX
      Cpu: Unspecified |

------------------------------+---------------------------------------------

Comment(by cmbarton):

Unfortunately, no one here is a C programmer. We do Python, Java, and
other things. But not C. :frowning:

Otherwise we might have figured it out and fixed it already.

Michael

Well, Python and Java are C-based languages:
http://en.wikipedia.org/wiki/List_of_C-based_programming_languages

I am merely trying to suggest that since you know what is wrong and how to
fix it, it probably won't be a big problem for anyone in your group who is
able to program in any language and able to compile grass. Of course, some
other grass developer could fix it faster, but from my experience, it's
better to try to fix things on your own if you need them to be fixed soon
enough, especially if the bug is not bothering other developers at that
time.

--
Ticket URL: <http://trac.osgeo.org/grass/ticket/2496#comment:6&gt;
GRASS GIS <http://grass.osgeo.org>

_______________________________________________
grass-dev mailing list
grass-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-dev

#2496: r.random.surface error from RAN C library
------------------------------+---------------------------------------------
Reporter: cmbarton | Owner: grass-dev@…
     Type: defect | Status: new
Priority: normal | Milestone: 7.0.0
Component: Raster | Version: svn-trunk
Keywords: r.random.surface | Platform: MacOSX
      Cpu: Unspecified |
------------------------------+---------------------------------------------

Comment(by glynn):

Replying to [comment:3 glynn]:
> so can be replaced by G_drand48().
Can someone test attachment:r.random.surface.patch ?

--
Ticket URL: <http://trac.osgeo.org/grass/ticket/2496#comment:7&gt;
GRASS GIS <http://grass.osgeo.org>

#2496: r.random.surface error from RAN C library
------------------------------+---------------------------------------------
Reporter: cmbarton | Owner: grass-dev@…
     Type: defect | Status: new
Priority: normal | Milestone: 7.0.0
Component: Raster | Version: svn-trunk
Keywords: r.random.surface | Platform: MacOSX
      Cpu: Unspecified |
------------------------------+---------------------------------------------

Comment(by cmbarton):

Is it updated in trunk or 7.1 dev? I can recompile and test.

Michael

--
Ticket URL: <http://trac.osgeo.org/grass/ticket/2496#comment:8&gt;
GRASS GIS <http://grass.osgeo.org>

#2496: r.random.surface error from RAN C library
------------------------------+---------------------------------------------
Reporter: cmbarton | Owner: grass-dev@…
     Type: defect | Status: new
Priority: normal | Milestone: 7.0.0
Component: Raster | Version: svn-trunk
Keywords: r.random.surface | Platform: MacOSX
      Cpu: Unspecified |
------------------------------+---------------------------------------------

Comment(by cmbarton):

Replying to [comment:8 cmbarton]:
> Is it updated in trunk or 7.1 dev? I can recompile and test.
>
> Michael

Sorry. I see it is a patch. I will try with 7.0 and let you know.

Michael

--
Ticket URL: <http://trac.osgeo.org/grass/ticket/2496#comment:9&gt;
GRASS GIS <http://grass.osgeo.org>

#2496: r.random.surface error from RAN C library
------------------------------+---------------------------------------------
Reporter: cmbarton | Owner: grass-dev@…
     Type: defect | Status: new
Priority: normal | Milestone: 7.0.0
Component: Raster | Version: svn-trunk
Keywords: r.random.surface | Platform: MacOSX
      Cpu: Unspecified |
------------------------------+---------------------------------------------

Comment(by cmbarton):

This patch seems to fix the problem. I'll know for sure after our script
repeated enough times. Most of the times, r.random.surface failed on the
first or second time run. Once it did not fail until the 62nd iteration.
I'm up to 65 iterations with no errors yet. So it looks good.

Michael

--
Ticket URL: <http://trac.osgeo.org/grass/ticket/2496#comment:10&gt;
GRASS GIS <http://grass.osgeo.org>

#2496: r.random.surface error from RAN C library
------------------------------+---------------------------------------------
Reporter: cmbarton | Owner: grass-dev@…
     Type: defect | Status: new
Priority: normal | Milestone: 7.0.0
Component: Raster | Version: svn-trunk
Keywords: r.random.surface | Platform: MacOSX
      Cpu: Unspecified |
------------------------------+---------------------------------------------

Comment(by neteler):

Will you submit the patch?

--
Ticket URL: <http://trac.osgeo.org/grass/ticket/2496#comment:11&gt;
GRASS GIS <http://grass.osgeo.org>

#2496: r.random.surface error from RAN C library
------------------------------+---------------------------------------------
Reporter: cmbarton | Owner: grass-dev@…
     Type: defect | Status: new
Priority: normal | Milestone: 7.0.0
Component: Raster | Version: svn-trunk
Keywords: r.random.surface | Platform: MacOSX
      Cpu: Unspecified |
------------------------------+---------------------------------------------

Comment(by cmbarton):

I tested this with trunk. While I can do the mechanics of submitting this
later this week for 7.0 and trunk, I'm a little hesitant since I'm not
familiar with C and don't know if this should be applied to other
r.random.x modules or not.

Michael

--
Ticket URL: <http://trac.osgeo.org/grass/ticket/2496#comment:12&gt;
GRASS GIS <http://grass.osgeo.org>

#2496: r.random.surface error from RAN C library
------------------------------+---------------------------------------------
Reporter: cmbarton | Owner: grass-dev@…
     Type: defect | Status: new
Priority: normal | Milestone: 7.0.0
Component: Raster | Version: svn-trunk
Keywords: r.random.surface | Platform: MacOSX
      Cpu: Unspecified |
------------------------------+---------------------------------------------

Comment(by neteler):

Indeed, these files are 99% cloned:
  * r.random.cells/gasdev.c
  * r.random.surface/gasdev.c

and
  * r.random.cells/random.c
  * r.random.surface/random.c

--
Ticket URL: <http://trac.osgeo.org/grass/ticket/2496#comment:13&gt;
GRASS GIS <http://grass.osgeo.org>

#2496: r.random.surface error from RAN C library
------------------------------+---------------------------------------------
Reporter: cmbarton | Owner: grass-dev@…
     Type: defect | Status: new
Priority: normal | Milestone: 7.0.0
Component: Raster | Version: svn-trunk
Keywords: r.random.surface | Platform: MacOSX
      Cpu: Unspecified |
------------------------------+---------------------------------------------

Comment(by cmbarton):

So multiple patches are needed for different modules? Different for GRASS
7.0 and 7.1 or the same?

Michael

--
Ticket URL: <http://trac.osgeo.org/grass/ticket/2496#comment:14&gt;
GRASS GIS <http://grass.osgeo.org>

#2496: r.random.surface error from RAN C library
------------------------------+---------------------------------------------
Reporter: cmbarton | Owner: grass-dev@…
     Type: defect | Status: new
Priority: normal | Milestone: 7.0.0
Component: Raster | Version: svn-trunk
Keywords: r.random.surface | Platform: MacOSX
      Cpu: Unspecified |
------------------------------+---------------------------------------------

Comment(by neteler):

Replying to [comment:14 cmbarton]:
> So multiple patches are needed for different modules? Different for
GRASS 7.0 and 7.1 or the same?

The same patch will work in 7.0 and 7.1.

--
Ticket URL: <http://trac.osgeo.org/grass/ticket/2496#comment:15&gt;
GRASS GIS <http://grass.osgeo.org>

#2496: r.random.surface error from RAN C library
------------------------------+---------------------------------------------
Reporter: cmbarton | Owner: grass-dev@…
     Type: defect | Status: new
Priority: normal | Milestone: 7.0.0
Component: Raster | Version: svn-trunk
Keywords: r.random.surface | Platform: MacOSX
      Cpu: Unspecified |
------------------------------+---------------------------------------------

Comment(by cmbarton):

So just a patch for each module that uses this then.

--
Ticket URL: <http://trac.osgeo.org/grass/ticket/2496#comment:16&gt;
GRASS GIS <http://grass.osgeo.org>