Dear Daniela,
> We have been trying out DIRACOS in v7r0p1. So far it seems to work well with the inbuilt DIRAC commands (dirac-dms-* etc), but we are having issues with external commands.
>
> For example our standard test job contains a perl script. With diracos enabled perl segfaults if the jobs runs on a CentOS7 node.
What do you mean by this? The payload of the job is a perl script that is executed on a node or you use perl to submit jobs and automate things?
If it is the first case, this is just a problem of payload isolation / job setup. For instance the iLCDirac jobs always see the default node env and not the env of externals+lcg / diracos.
> Sourcing the DIRAC environment on the UI (on CentOS7) causes both emacs and even 'less' to malfunction :-S
That certain system commands don’t work in diracos is known, however less works for me under CC7 (doesn’t work for me under diracos+Fedora).
However I would like to point out that this was never promised. The main aim was to provide a small as possible binary layer, to enable running of DIRAC commands and services on several platforms, not that native binaries from these platform will work with diracos, this opens up an endless support queue and would blow up the size of diracos. This feature would be a nice and a desirable side product, but is subordinate to cross platform support.
> We've played around with this, but it's not clear what th best way forward is. Most experiments seem to setup their own environment in detail and don't expect DIRAC to change this.
I can only comment here for iLCDirac, we always advised our users not to mix the “offline software”/experiment environment with the dirac environment. And we have been recommending this since long before DIRACOS.
The main reason behind this is that the python even in externals+lcg had different compile flags than the system python, or the python that comes with the offline software of the experiment (not to speak that these are all different versions). If an experiment uses python, it is impossible for dirac not to change this. If you add pip installed packages to this, you have a disaster.
> The simplest idea we have for fixing this (which is still a fairly major change) would be:
>
> - Modify bashrc so that it only adds the dirac-* commands to the path.
> - Create a second script "diracenv" that sets X509_USER_CERT, etc... and sources diracosrc (much like bashrc now)
> (This should _set_ the LD_LIBRARY_PATH, etc. not just add to it so the environment is completely consistent)
> - Modify the wrapper scripts for all dirac-* commands so that they source "diracenv" before starting python.
> - Modify the runsv startup scripts to source diracenv for the servers.
>
> This way all of the dirac tools get a fixed environment and all of the user stuff gets the environment from the host (which is what the users expect).
This is a viable solution that you could provide to your users. We recommend to our users to use one shell to prepare you binaries with the experiment software or do development stuff, open up a new shell source DIRAC/bashrc and submit jobs, and under no circumstances source the experiment software and dirac in the same shell.
> We don't really want to go down the alternative path of having users compile their code within DIRACOS: The small experiments simply don't have the time to look at that, plus people running stuff locally won't want a DIRAC install just for the environment.
This point I don’t understand, why would you compile inside DIRACOS? I completely agree you should not do this. This is of course is not desired nor intended.
Cheers,
Marko
>
> Regards,
>
> Daniela & Simon
>
> --
> You received this message because you are subscribed to the Google Groups "diracgrid-forum" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to
diracgrid-for...@googlegroups.com.
> To view this discussion on the web visit
https://groups.google.com/d/msgid/diracgrid-forum/8c19b4ec-d11d-4730-b422-9d37e76a7949%40googlegroups.com.