radical-cybertools / radical.saga

A Light-Weight Access Layer for Distributed Computing Infrastructure and Reference Implementation of the SAGA Python Language Bindings.
http://radical-cybertools.github.io/saga-python/
Other
82 stars 34 forks source link

Install question about environment #578

Closed marcoooo closed 8 years ago

marcoooo commented 8 years ago

Hi all, great job with this module I a about to push on production for my lab. I am experiencing a (little) issue regarding two directories used by saga, which want to be created in /var/www. (as I am in a apache environment, django framework, and dedicated .venv)

These two directories cannot be created. I wasn't able to find if any configuration option can be set up for all jobs in the config file.

Does installing saga 'globally' can be a workaround ?

I finally changed the 'job manager' user, and set it up to one that can create dirs, but I still have error in stderr for jobs, even if job script seems to work:

mkdir: impossible de créer le répertoire « /home/phylo »: Permission non accordée /opt/sge/default/spool/shannon17/job_scripts/205: ligne22: /home/phylo/.saga/adaptors/sge_job/205: Aucun fichier ou dossier de ce type

I am running sge on a localhost.

andre-merzky commented 8 years ago

Hi Marc,

I'm glad you find the stuff useful! :)

As for the directories, I am not sure I correctly understand the problem. When you say 'These two directories cannot be created', do you refer to missing permissions, to an error message which indicates that they can't be created, or that you want to avoid their creation altogether?

The directories are needed at runtime, as they maintain some state for the application. We can, however, influence their location to some extent, and, for example, configure things so that the end up in /tmp or elsewhere. The default location though is in $HOME.

So, please let us know what precisely you think the problem is, and if changing the location would be acceptable.

Thanks, Andre.

marcoooo commented 8 years ago

Thanks Andre for your response, I am not sure where the problem is.

I configured jobs to be executed on a locally available sge cluster, (located in /opt/sge/...), so my connection string is 'sge://localhost'. I initialise the service before running my job. The user is called 'phylo' (for phylogenetics :-)), so the job is well runned on sge, /home/phylo/.saga and /home/phylo/.radical root dirs are well created.

But, when the job is finished, I got a state 'Error' for the job, even if the sge script outputs correspond to the ones expected (I am running some supertree computation, and the output is available in specified output dir).

When I look at the 'job.stderr' file, I have message saying that sge cannot access saga/adaptors/sge_job/[IDJOB]. In fact, the only subdirectory created in .saga/adaptors directory is 'shell'.

Locally all work fine, and I have a 'sge_job' directory created as expected.

andre-merzky commented 8 years ago

Does the SGE cluster have a shared file system, and does $HOME live on that shared FS?

marksantcroos commented 8 years ago

The application probably can't access files outside of the apache container.

marcoooo commented 8 years ago

The SGE does have a shared file system, I am not sure if the /home/phylo/ is included. Does this means that the ~/sge_job/ dir is created by sge and not by my job runner script ?

marcoooo commented 8 years ago

I just forked your repo, I'll give a try to make calls to '$HOME', os.environ... and environ['HOME'] configurable (as I saw it one or twice as FIXME in code). Hope it will help me and may be you as well !

Anyway thanks for your time.

Marc

andre-merzky commented 8 years ago

Thanks for the note - let us know how that goes!

Best, Andre.