I would like to merge an update for the addon r.in.vect, but the CI job “Build and test / main (Python 3.11) (pull_request)” is failing. As far as I can tell, the failure does not seem to be related to the changes in my pull request.
From the rather lengthy log it is difficult for me to pinpoint the exact cause, but it appears that at least part of the failure may be related to the use of format=‘plain’ in several test calls to GRASS modules (e.g., v.surf.rst.cv, v.to.rast.multi).
I’m not very familiar with the testing framework, so I’m unsure whether this is something straightforward to fix or if there is already a known issue. I mainly wanted to flag it here in case someone more familiar with the tests immediately recognizes the problem.
If there is something I can reasonably do on my side to help resolve it, I’m happy to try.
I don’t think it is exactly were you think the error is, but the last commits were all passing, but since, the scheduled test job this morning (4am my time) failed. I could also go on my computer and compare if the number of built addons changed between a passing and a failing run, as the build scripts ignore failures if I recall correctly.
The workaround solution would be to change the success threshold, to match the minimum that works.
But if you want to help too, I saw a couple of test failures failing at the same place of r.random.walk, because of a division by zero determining the memory for a process:
File "scripts/r.random.walk", line 419, in main
mem_for_process = math.floor(int(memory) / processes)
~~~~~~~~~~~~^~~~~~~~~~~
ZeroDivisionError: division by zero
It seems something easy to fix that would help some tests pass
ERROR: setUpClass (__main__.TestHand)
----------------------------------------------------------------------
Traceback (most recent call last):
File "etc/python/grass/gunittest/case.py", line 1320, in runModule
module.run()
File "etc/python/grass/pygrass/modules/interface/module.py", line 849, in run
self.wait()
File "etc/python/grass/pygrass/modules/interface/module.py", line 868, in wait
raise CalledModuleError(
grass.exceptions.CalledModuleError: Module run `r.watershed elevation=elevation threshold=50000 convergence=5 memory=300 drainage=test_direction stream=test_stream_rast --q` ended with an error.
The subprocess ended with a non-zero return code: -6. See the following errors:
*** buffer overflow detected ***: terminated
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "raster/r.hand/testsuite/test_r_hand.py", line 52, in setUpClass
cls.runModule(
File "etc/python/grass/gunittest/case.py", line 1337, in runModule
raise CalledModuleError(
grass.exceptions.CalledModuleError: Module run `r.watershed(elevation='elevation', threshold=50000, drainage='test_direction', stream='test_stream_rast', convergence=5, memory=300, quiet=True)` ended with an error.
The subprocess ended with a non-zero return code: -6. See the following errors:
*** buffer overflow detected ***: terminated
There’s more than one failure with different inputs in addons that use r.watershed in the test run I’m looking at. Maybe we could have a test that recreates a situation like that.