[GRASS-user] "double free or corruption" when calling e.g. g.version, g.list, g.region

Hello,

I'm using GRASS 7.8.6 on openSUSE Leap 15.2 and experience the
following crashes:

Welcome to GRASS GIS 7.8.6
GRASS GIS homepage: https://grass.osgeo.org
This version running through: Z Shell (/bin/zsh)
  [...]
GRASS 7.8.6 : ~ > g.version
GRASS 7.8.6 (2021)
*** Error in `g.version': double free or corruption (out): 0x000055866fc655b0 ***
[1] 9995 abort (core dumped) g.version
GRASS 7.8.6 : ~ > g.list
Lists available GRASS data base files of the user-specified data type optionally using the search pattern.
  [...]
*** Error in `g.list': double free or corruption (out): 0x000055a24a9f75b0 ***
[1] 10000 abort (core dumped) g.list

Some other tools like g.gisenv work and GRASS used to work fully in the
past (using, potentially, older versions of GRASS and SUSE).

Even though these crashes occur at the end of execution (after output
was produced), they are problematic as they stop e.g. the GUI from
fully working, i.e. grass --gui brings up the launcher but crashes when
I press "Start GRASS session" with the following output (note that
there is additionally an assertion failure at the end):

Launching <wxpython> GUI in the background, please wait...
GRASS 7.8.6 : ~ > /usr/lib64/python3.6/site-packages/wx/py/buffer.py:6: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
  import imp
*** Error in `g.version': double free or corruption (out): 0x00005588157c15b0 ***
Unable to get GRASS version
*** Error in `g.version': double free or corruption (out): 0x000055ddbe4825b0 ***
Traceback (most recent call last):
  File "/usr/lib64/grass78/scripts/g.extension", line 2592, in <module>
    version = grass_version["version"].split(".")
KeyError: 'version'
*** Error in `g.list': double free or corruption (out): 0x000056167e0485b0 ***
Traceback (most recent call last):
  File "/usr/lib64/grass78/gui/wxpython/wxgui.py", line 106, in OnInit
    workspace=self.workspaceFile)
  File "/usr/lib64/grass78/gui/wxpython/lmgr/frame.py", line 143, in __init__
    self.notebook = self._createNoteBook()
  File "/usr/lib64/grass78/gui/wxpython/lmgr/frame.py", line 330, in _createNoteBook
    gcstyle=GC_PROMPT)
  File "/usr/lib64/grass78/gui/wxpython/gui_core/goutput.py", line 118, in __init__
    self.cmdPrompt = GPromptSTC(parent=self, menuModel=self._menuModel)
  File "/usr/lib64/grass78/gui/wxpython/gui_core/prompt.py", line 138, in __init__
    GPrompt.__init__(self, parent=parent, menuModel=menuModel)
  File "/usr/lib64/grass78/gui/wxpython/gui_core/prompt.py", line 56, in __init__
    self.mapList = self._getListOfMaps()
  File "/usr/lib64/grass78/gui/wxpython/gui_core/prompt.py", line 100, in _getListOfMaps
    result['raster'] = grass.list_strings('raster')
  File "/usr/lib64/grass78/etc/python/grass/script/core.py", line 1288, in list_strings
    mapset=mapset).splitlines():
  File "/usr/lib64/grass78/etc/python/grass/script/core.py", line 503, in read_command
    return handle_errors(returncode, stdout, args, kwargs)
  File "/usr/lib64/grass78/etc/python/grass/script/core.py", line 343, in handle_errors
    returncode=returncode)
grass.exceptions.CalledModuleError: Module run None g.list --q -m type=raster ended with error
Process ended with non-zero return code -6. See errors in the (error) output.
OnInit returned false, exiting...
Error in atexit._run_exitfuncs:
wx._core.wxAssertionError: C++ assertion "GetEventHandler() == this" failed at /home/abuild/rpmbuild/BUILD/wxPython-4.0.1/ext/wxWidgets/src/common/wincmn.cpp(478) in ~wxWindowBase(): any pushed event handlers must have been removed
*** Error in `python3': double free or corruption (!prev): 0x00005647498368e0 ***

Python versions used are 3.9.4 (local) for --text and 3.6.12 (system
wide, has wx) for --gui.

Any idea what could cause this?

Kind regards,
Maximilian

Hi Maximilian,

On Fri, Jan 21, 2022 at 12:03 PM Maximilian Stahlberg
<maximilian.stahlberg@tu-berlin.de> wrote:

Hello,

I'm using GRASS 7.8.6 on openSUSE Leap 15.2 and experience the
following crashes:

> Welcome to GRASS GIS 7.8.6
> GRASS GIS homepage: https://grass.osgeo.org
> This version running through: Z Shell (/bin/zsh)
> [...]
> GRASS 7.8.6 : ~ > g.version
> GRASS 7.8.6 (2021)
> *** Error in `g.version': double free or corruption (out): 0x000055866fc655b0 ***
> [1] 9995 abort (core dumped) g.version
> GRASS 7.8.6 : ~ > g.list
> Lists available GRASS data base files of the user-specified data type optionally using the search pattern.
> [...]
> *** Error in `g.list': double free or corruption (out): 0x000055a24a9f75b0 ***
> [1] 10000 abort (core dumped) g.list

Some other tools like g.gisenv work and GRASS used to work fully in the
past (using, potentially, older versions of GRASS and SUSE).

The (only?) way is to use a debugger. This isn't too difficult, see

https://grasswiki.osgeo.org/wiki/GRASS_Debugging#Using_GDB

In any case, the error is quite unusual and may be caused by some
library conflict on your system.

...

> *** Error in `g.version': double free or corruption (out): 0x00005588157c15b0 ***

You may start with `g.version -rge` and the debugger. I suppose that
all errors you see originate from the same problem.

Best,
Markus

This looks like a version mismatch between library GRASS was compiled
with and library used when running. If you are on a Gentoo system, run
revdep-rebuild. If you are not using Gentoo, ask your package provider
to do a full recompile. I would put my money on GDAL (and a smaller
bet on PROJ).

Māris.

piektd., 2022. g. 21. janv., plkst. 13:03 — lietotājs Maximilian
Stahlberg (<maximilian.stahlberg@tu-berlin.de>) rakstīja:

Hello,

I'm using GRASS 7.8.6 on openSUSE Leap 15.2 and experience the
following crashes:

> Welcome to GRASS GIS 7.8.6
> GRASS GIS homepage: https://grass.osgeo.org
> This version running through: Z Shell (/bin/zsh)
> [...]
> GRASS 7.8.6 : ~ > g.version
> GRASS 7.8.6 (2021)
> *** Error in `g.version': double free or corruption (out): 0x000055866fc655b0 ***
> [1] 9995 abort (core dumped) g.version
> GRASS 7.8.6 : ~ > g.list
> Lists available GRASS data base files of the user-specified data type optionally using the search pattern.
> [...]
> *** Error in `g.list': double free or corruption (out): 0x000055a24a9f75b0 ***
> [1] 10000 abort (core dumped) g.list

Some other tools like g.gisenv work and GRASS used to work fully in the
past (using, potentially, older versions of GRASS and SUSE).

Even though these crashes occur at the end of execution (after output
was produced), they are problematic as they stop e.g. the GUI from
fully working, i.e. grass --gui brings up the launcher but crashes when
I press "Start GRASS session" with the following output (note that
there is additionally an assertion failure at the end):

> Launching <wxpython> GUI in the background, please wait...
> GRASS 7.8.6 : ~ > /usr/lib64/python3.6/site-packages/wx/py/buffer.py:6: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
> import imp
> *** Error in `g.version': double free or corruption (out): 0x00005588157c15b0 ***
> Unable to get GRASS version
> *** Error in `g.version': double free or corruption (out): 0x000055ddbe4825b0 ***
> Traceback (most recent call last):
> File "/usr/lib64/grass78/scripts/g.extension", line 2592, in <module>
> version = grass_version["version"].split(".")
> KeyError: 'version'
> *** Error in `g.list': double free or corruption (out): 0x000056167e0485b0 ***
> Traceback (most recent call last):
> File "/usr/lib64/grass78/gui/wxpython/wxgui.py", line 106, in OnInit
> workspace=self.workspaceFile)
> File "/usr/lib64/grass78/gui/wxpython/lmgr/frame.py", line 143, in __init__
> self.notebook = self._createNoteBook()
> File "/usr/lib64/grass78/gui/wxpython/lmgr/frame.py", line 330, in _createNoteBook
> gcstyle=GC_PROMPT)
> File "/usr/lib64/grass78/gui/wxpython/gui_core/goutput.py", line 118, in __init__
> self.cmdPrompt = GPromptSTC(parent=self, menuModel=self._menuModel)
> File "/usr/lib64/grass78/gui/wxpython/gui_core/prompt.py", line 138, in __init__
> GPrompt.__init__(self, parent=parent, menuModel=menuModel)
> File "/usr/lib64/grass78/gui/wxpython/gui_core/prompt.py", line 56, in __init__
> self.mapList = self._getListOfMaps()
> File "/usr/lib64/grass78/gui/wxpython/gui_core/prompt.py", line 100, in _getListOfMaps
> result['raster'] = grass.list_strings('raster')
> File "/usr/lib64/grass78/etc/python/grass/script/core.py", line 1288, in list_strings
> mapset=mapset).splitlines():
> File "/usr/lib64/grass78/etc/python/grass/script/core.py", line 503, in read_command
> return handle_errors(returncode, stdout, args, kwargs)
> File "/usr/lib64/grass78/etc/python/grass/script/core.py", line 343, in handle_errors
> returncode=returncode)
> grass.exceptions.CalledModuleError: Module run None g.list --q -m type=raster ended with error
> Process ended with non-zero return code -6. See errors in the (error) output.
> OnInit returned false, exiting...
> Error in atexit._run_exitfuncs:
> wx._core.wxAssertionError: C++ assertion "GetEventHandler() == this" failed at /home/abuild/rpmbuild/BUILD/wxPython-4.0.1/ext/wxWidgets/src/common/wincmn.cpp(478) in ~wxWindowBase(): any pushed event handlers must have been removed
> *** Error in `python3': double free or corruption (!prev): 0x00005647498368e0 ***

Python versions used are 3.9.4 (local) for --text and 3.6.12 (system
wide, has wx) for --gui.

Any idea what could cause this?

Kind regards,
Maximilian
_______________________________________________
grass-user mailing list
grass-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/grass-user

Thank you Markus and Māris!

The problem has just fixed itself (at least when running grass over ssh),
possibly due to a routine update. I'm dealing with faculty-wide binaries, so I
can't be sure when and what was updated, though judging from timestamps it
would be none of GRASS, GDAL or PROJ.

Best,
Maximilian

On Mon, 2022-01-24 at 09:00 +0200, Maris Nartiss wrote:

This looks like a version mismatch between library GRASS was compiled
with and library used when running. If you are on a Gentoo system, run
revdep-rebuild. If you are not using Gentoo, ask your package provider
to do a full recompile. I would put my money on GDAL (and a smaller
bet on PROJ).

Māris.

piektd., 2022. g. 21. janv., plkst. 13:03 — lietotājs Maximilian
Stahlberg (<maximilian.stahlberg@tu-berlin.de>) rakstīja:
>
> Hello,
>
> I'm using GRASS 7.8.6 on openSUSE Leap 15.2 and experience the
> following crashes:
>
> > Welcome to GRASS GIS 7.8.6
> > GRASS GIS homepage: https://grass.osgeo.org
> > This version running through: Z Shell (/bin/zsh)
> > [...]
> > GRASS 7.8.6 : ~ > g.version
> > GRASS 7.8.6 (2021)
> > *** Error in `g.version': double free or corruption (out): 0x000055866fc655b0 ***
> > [1] 9995 abort (core dumped) g.version
> > GRASS 7.8.6 : ~ > g.list
> > Lists available GRASS data base files of the user-specified data type optionally using the search pattern.
> > [...]
> > *** Error in `g.list': double free or corruption (out): 0x000055a24a9f75b0 ***
> > [1] 10000 abort (core dumped) g.list
>
> Some other tools like g.gisenv work and GRASS used to work fully in the
> past (using, potentially, older versions of GRASS and SUSE).
>
> Even though these crashes occur at the end of execution (after output
> was produced), they are problematic as they stop e.g. the GUI from
> fully working, i.e. grass --gui brings up the launcher but crashes when
> I press "Start GRASS session" with the following output (note that
> there is additionally an assertion failure at the end):
>
> > Launching <wxpython> GUI in the background, please wait...
> > GRASS 7.8.6 : ~ > /usr/lib64/python3.6/site-packages/wx/py/buffer.py:6: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
> > import imp
> > *** Error in `g.version': double free or corruption (out): 0x00005588157c15b0 ***
> > Unable to get GRASS version
> > *** Error in `g.version': double free or corruption (out): 0x000055ddbe4825b0 ***
> > Traceback (most recent call last):
> > File "/usr/lib64/grass78/scripts/g.extension", line 2592, in <module>
> > version = grass_version["version"].split(".")
> > KeyError: 'version'
> > *** Error in `g.list': double free or corruption (out): 0x000056167e0485b0 ***
> > Traceback (most recent call last):
> > File "/usr/lib64/grass78/gui/wxpython/wxgui.py", line 106, in OnInit
> > workspace=self.workspaceFile)
> > File "/usr/lib64/grass78/gui/wxpython/lmgr/frame.py", line 143, in __init__
> > self.notebook = self._createNoteBook()
> > File "/usr/lib64/grass78/gui/wxpython/lmgr/frame.py", line 330, in _createNoteBook
> > gcstyle=GC_PROMPT)
> > File "/usr/lib64/grass78/gui/wxpython/gui_core/goutput.py", line 118, in __init__
> > self.cmdPrompt = GPromptSTC(parent=self, menuModel=self._menuModel)
> > File "/usr/lib64/grass78/gui/wxpython/gui_core/prompt.py", line 138, in __init__
> > GPrompt.__init__(self, parent=parent, menuModel=menuModel)
> > File "/usr/lib64/grass78/gui/wxpython/gui_core/prompt.py", line 56, in __init__
> > self.mapList = self._getListOfMaps()
> > File "/usr/lib64/grass78/gui/wxpython/gui_core/prompt.py", line 100, in _getListOfMaps
> > result['raster'] = grass.list_strings('raster')
> > File "/usr/lib64/grass78/etc/python/grass/script/core.py", line 1288, in list_strings
> > mapset=mapset).splitlines():
> > File "/usr/lib64/grass78/etc/python/grass/script/core.py", line 503, in read_command
> > return handle_errors(returncode, stdout, args, kwargs)
> > File "/usr/lib64/grass78/etc/python/grass/script/core.py", line 343, in handle_errors
> > returncode=returncode)
> > grass.exceptions.CalledModuleError: Module run None g.list --q -m type=raster ended with error
> > Process ended with non-zero return code -6. See errors in the (error) output.
> > OnInit returned false, exiting...
> > Error in atexit._run_exitfuncs:
> > wx._core.wxAssertionError: C++ assertion "GetEventHandler() == this" failed at /home/abuild/rpmbuild/BUILD/wxPython-4.0.1/ext/wxWidgets/src/common/wincmn.cpp(478) in ~wxWindowBase(): any pushed event handlers must have been removed
> > *** Error in `python3': double free or corruption (!prev): 0x00005647498368e0 ***
>
> Python versions used are 3.9.4 (local) for --text and 3.6.12 (system
> wide, has wx) for --gui.
>
> Any idea what could cause this?
>
> Kind regards,
> Maximilian
> _______________________________________________
> grass-user mailing list
> grass-user@lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/grass-user