[GRASS-user] Running GRASS with modules

Dear all,

I am using GRASS in an HPC platform where libraries are managed with modules [0]. Recently I made GRASS 7.6 available as a shared module. This involved copying the compiled folder to a shared location and then creating a modulefile [1] (which essentially sets the correct PATH environment variable). I am able to load the GRASS module and run it; however, when other users try to do the same they get this error:

$ grass76
Cleaning up temporary files…

Traceback (most recent call last):

File “/cm/shared/apps/WUR/ESG/modules/grass/bin/grass76”, line 2209, in

main()

File “/cm/shared/apps/WUR/ESG/modules/grass/bin/grass76”, line 2087, in main

clean_temp()

File “/cm/shared/apps/WUR/ESG/modules/grass/bin/grass76”, line 1784, in clean_temp

call([gpath(“etc”, “clean_temp”)], stdout=nul)

File “/cm/shared/apps/WUR/ESG/modules/grass/bin/grass76”, line 247, in call

return subprocess.call(cmd, **kwargs)

File “/usr/lib64/python2.7/subprocess.py”, line 524, in call

return Popen(*popenargs, **kwargs).wait()

File “/usr/lib64/python2.7/subprocess.py”, line 711, in init

errread, errwrite)

File “/usr/lib64/python2.7/subprocess.py”, line 1327, in _execute_child

raise child_exception

OSError: [Errno 13] Permission denied

Naturally, GRASS is unable to access some asset it needs, the question is what? All users have read and execute permissions on the shared module folders and files. When it is launched, is GRASS trying to write somewhere? Which other assets GRASS needs to read when it is launched?

Thank you.

[0] http://modules.sourceforge.net/

[1] https://modules.readthedocs.io/en/latest/modulefile.html

···

Luís Moreira de Sousa

RingID: ring:7ca91d83f4f9dec82fec9f1144b8e5c1ef2a110c

URL: https://ldesousa.github.io

Sent with ProtonMail Secure Email.

On Tue, Feb 5, 2019 at 11:54 AM Luí­s Moreira de Sousa <luis.de.sousa@protonmail.ch> wrote:

Dear all,

I am using GRASS in an HPC platform where libraries are managed with modules [0]. Recently I made GRASS 7.6 available as a shared module. This involved copying the compiled folder to a shared location and then creating a modulefile [1] (which essentially sets the correct PATH environment variable). I am able to load the GRASS module and run it; however, when other users try to do the same they get this error:

Are other users trying to work in your mapset? This is not allowed, a user must be owner of the mapset. Users can read data from other mapsets owned by other users, but the current mapset must be owned by the current user.

A new mapset can be created on startup with
grass76 -c /path/to/new_mapset

this will create the folder “new_mapset” and populate it with some basic files neede to recognize this folder as a GRASS mapset. Now you can read data from already existing mapsets in the same GRASS database and location.

HTH,

Markus M

$ grass76
Cleaning up temporary files…
Traceback (most recent call last):
File “/cm/shared/apps/WUR/ESG/modules/grass/bin/grass76”, line 2209, in
main()
File “/cm/shared/apps/WUR/ESG/modules/grass/bin/grass76”, line 2087, in main
clean_temp()
File “/cm/shared/apps/WUR/ESG/modules/grass/bin/grass76”, line 1784, in clean_temp
call([gpath(“etc”, “clean_temp”)], stdout=nul)
File “/cm/shared/apps/WUR/ESG/modules/grass/bin/grass76”, line 247, in call
return subprocess.call(cmd, **kwargs)
File “/usr/lib64/python2.7/subprocess.py”, line 524, in call
return Popen(*popenargs, **kwargs).wait()
File “/usr/lib64/python2.7/subprocess.py”, line 711, in init
errread, errwrite)
File “/usr/lib64/python2.7/subprocess.py”, line 1327, in _execute_child
raise child_exception
OSError: [Errno 13] Permission denied

Naturally, GRASS is unable to access some asset it needs, the question is what? All users have read and execute permissions on the shared module folders and files. When it is launched, is GRASS trying to write somewhere? Which other assets GRASS needs to read when it is launched?

Thank you.

[0] http://modules.sourceforge.net/
[1] https://modules.readthedocs.io/en/latest/modulefile.html

Luís Moreira de Sousa
RingID: ring:7ca91d83f4f9dec82fec9f1144b8e5c1ef2a110c
URL: https://ldesousa.github.io

Sent with ProtonMail Secure Email.


grass-user mailing list
grass-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/grass-user

Hi Markus,

thank you for the reply. As you can see from the initial message, GRASS throws the exception even before verifying if a location/mapset binome was passed as argument or if it exists. The same exception is thrown with a valid mapset passed as argument. Also, GRASS exits orderly when it does not have permissions to access the given mapset.

Whatever is causing this exception it must be happening in the early start up of GRASS.

Thank you.

--
Luís Moreira de Sousa
RingID: ring:7ca91d83f4f9dec82fec9f1144b8e5c1ef2a110c
URL: https://ldesousa.github.io

Sent with [ProtonMail](https://protonmail.com) Secure Email.

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Tuesday, 5 February 2019 14:50, Markus Metz <markus.metz.giswork@gmail.com> wrote:

On Tue, Feb 5, 2019 at 11:54 AM Luí­s Moreira de Sousa <luis.de.sousa@protonmail.ch> wrote:

Dear all,

I am using GRASS in an HPC platform where libraries are managed with modules [0]. Recently I made GRASS 7.6 available as a shared module. This involved copying the compiled folder to a shared location and then creating a modulefile [1] (which essentially sets the correct PATH environment variable). I am able to load the GRASS module and run it; however, when other users try to do the same they get this error:

Are other users trying to work in your mapset? This is not allowed, a user must be owner of the mapset. Users can read data from other mapsets owned by other users, but the current mapset must be owned by the current user.

A new mapset can be created on startup with
grass76 -c /path/to/new_mapset

this will create the folder "new_mapset" and populate it with some basic files neede to recognize this folder as a GRASS mapset. Now you can read data from already existing mapsets in the same GRASS database and location.

HTH,

Markus M

$ grass76
Cleaning up temporary files...
Traceback (most recent call last):
  File "/cm/shared/apps/WUR/ESG/modules/grass/bin/grass76", line 2209, in <module>
    main()
  File "/cm/shared/apps/WUR/ESG/modules/grass/bin/grass76", line 2087, in main
    clean_temp()
  File "/cm/shared/apps/WUR/ESG/modules/grass/bin/grass76", line 1784, in clean_temp
    call([gpath("etc", "clean_temp")], stdout=nul)
  File "/cm/shared/apps/WUR/ESG/modules/grass/bin/grass76", line 247, in call
    return subprocess.call(cmd, **kwargs)
  File "/usr/lib64/python2.7/subprocess.py", line 524, in call
    return Popen(*popenargs, **kwargs).wait()
  File "/usr/lib64/python2.7/subprocess.py", line 711, in __init__
    errread, errwrite)
  File "/usr/lib64/python2.7/subprocess.py", line 1327, in _execute_child
    raise child_exception
OSError: [Errno 13] Permission denied

Naturally, GRASS is unable to access some asset it needs, the question is what? All users have read and execute permissions on the shared module folders and files. When it is launched, is GRASS trying to write somewhere? Which other assets GRASS needs to read when it is launched?

Thank you.

[0] http://modules.sourceforge.net/
[1] https://modules.readthedocs.io/en/latest/modulefile.html
--
Luís Moreira de Sousa
RingID: ring:7ca91d83f4f9dec82fec9f1144b8e5c1ef2a110c
URL: https://ldesousa.github.io

Sent with ProtonMail Secure Email.

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

On Tue, Feb 5, 2019 at 5:20 PM Luí­s Moreira de Sousa <luis.de.sousa@protonmail.ch> wrote:

Hi Markus,

thank you for the reply. As you can see from the initial message, GRASS throws the exception even before verifying if a location/mapset binome was passed as argument or if it exists. The same exception is thrown with a valid mapset passed as argument. Also, GRASS exits orderly when it does not have permissions to access the given mapset.

Looking at the initial message, the error eccurs after
Cleaning up temporary files…

that means a location and mapset have already been established, probably the last used.

Maybe the permissions for $GISBASE/etc/clean_temp are not correct?

$GISBASE is apparently /cm/shared/apps/WUR/ESG/modules/grass/

Unfortunately the error “Permission denied” does not tell which permission, execute, read, write?

Markus M

Whatever is causing this exception it must be happening in the early start up of GRASS.

Thank you.


Luís Moreira de Sousa
RingID: ring:7ca91d83f4f9dec82fec9f1144b8e5c1ef2a110c
URL: https://ldesousa.github.io

Sent with ProtonMail Secure Email.

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Tuesday, 5 February 2019 14:50, Markus Metz <markus.metz.giswork@gmail.com> wrote:

On Tue, Feb 5, 2019 at 11:54 AM Luí­s Moreira de Sousa <luis.de.sousa@protonmail.ch> wrote:

Dear all,

I am using GRASS in an HPC platform where libraries are managed with modules [0]. Recently I made GRASS 7.6 available as a shared module. This involved copying the compiled folder to a shared location and then creating a modulefile [1] (which essentially sets the correct PATH environment variable). I am able to load the GRASS module and run it; however, when other users try to do the same they get this error:

Are other users trying to work in your mapset? This is not allowed, a user must be owner of the mapset. Users can read data from other mapsets owned by other users, but the current mapset must be owned by the current user.

A new mapset can be created on startup with
grass76 -c /path/to/new_mapset

this will create the folder “new_mapset” and populate it with some basic files neede to recognize this folder as a GRASS mapset. Now you can read data from already existing mapsets in the same GRASS database and location.

HTH,

Markus M

$ grass76
Cleaning up temporary files…
Traceback (most recent call last):
File “/cm/shared/apps/WUR/ESG/modules/grass/bin/grass76”, line 2209, in
main()
File “/cm/shared/apps/WUR/ESG/modules/grass/bin/grass76”, line 2087, in main
clean_temp()
File “/cm/shared/apps/WUR/ESG/modules/grass/bin/grass76”, line 1784, in clean_temp
call([gpath(“etc”, “clean_temp”)], stdout=nul)
File “/cm/shared/apps/WUR/ESG/modules/grass/bin/grass76”, line 247, in call
return subprocess.call(cmd, **kwargs)
File “/usr/lib64/python2.7/subprocess.py”, line 524, in call
return Popen(*popenargs, **kwargs).wait()
File “/usr/lib64/python2.7/subprocess.py”, line 711, in init
errread, errwrite)
File “/usr/lib64/python2.7/subprocess.py”, line 1327, in _execute_child
raise child_exception
OSError: [Errno 13] Permission denied

Naturally, GRASS is unable to access some asset it needs, the question is what? All users have read and execute permissions on the shared module folders and files. When it is launched, is GRASS trying to write somewhere? Which other assets GRASS needs to read when it is launched?

Thank you.

[0] http://modules.sourceforge.net/
[1] https://modules.readthedocs.io/en/latest/modulefile.html

Luís Moreira de Sousa
RingID: ring:7ca91d83f4f9dec82fec9f1144b8e5c1ef2a110c
URL: https://ldesousa.github.io

Sent with ProtonMail Secure Email.


grass-user mailing list
grass-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/grass-user