Running GRASS with modules

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Running GRASS with modules

Luí­s Moreira de Sousa
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 <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.

--
Luís Moreira de Sousa
RingID: ring:7ca91d83f4f9dec82fec9f1144b8e5c1ef2a110c

Sent with ProtonMail Secure Email.


_______________________________________________
grass-user mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/grass-user
Reply | Threaded
Open this post in threaded view
|

Re: Running GRASS with modules

Markus Metz-3


On Tue, Feb 5, 2019 at 11:54 AM Luí­s Moreira de Sousa <[hidden email]> 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
> [hidden email]
> https://lists.osgeo.org/mailman/listinfo/grass-user
_______________________________________________
grass-user mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/grass-user
Reply | Threaded
Open this post in threaded view
|

Re: Running GRASS with modules

Luí­s Moreira de Sousa


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

Sent with ProtonMail Secure Email.

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Tuesday, 5 February 2019 14:50, Markus Metz <[hidden email]> wrote:



On Tue, Feb 5, 2019 at 11:54 AM Luí­s Moreira de Sousa <[hidden email]> 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.
>
> --
> Luís Moreira de Sousa
> RingID: ring:7ca91d83f4f9dec82fec9f1144b8e5c1ef2a110c
>
> Sent with ProtonMail Secure Email.
>
> _______________________________________________
> grass-user mailing list


_______________________________________________
grass-user mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/grass-user
Reply | Threaded
Open this post in threaded view
|

Re: Running GRASS with modules

Markus Metz-3


On Tue, Feb 5, 2019 at 5:20 PM Luí­s Moreira de Sousa <[hidden email]> 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 <[hidden email]> wrote:
>
>
>
> On Tue, Feb 5, 2019 at 11:54 AM Luí­s Moreira de Sousa <[hidden email]> 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
> > [hidden email]
> > https://lists.osgeo.org/mailman/listinfo/grass-user
>
>

_______________________________________________
grass-user mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/grass-user