You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
while if you're somewhere like the Analysis Facility at UChicago you'd get
$ echo$HOME/home/feickert
and so
datamount="/home"
Example
This is fine, but can cause problems for the way that Singularity interacts with the local file system when mounting. For example, if a user makes a Python virtual environment and installs recast-atlas[local] and tries to run the examples/rome workflow at the UChicago AF with a script like
#!/bin/bashexport PACKTIVITY_CONTAINER_RUNTIME=singularity
export SINGULARITY_CACHEDIR="/tmp/$(whoami)/singularity"
mkdir -p "${SINGULARITY_CACHEDIR}"# Confirm workflow
recast catalogue ls
recast catalogue describe examples/rome
recast catalogue check examples/rome
recast run examples/rome --backend local --tag examples-rome
it will fail as the steps that the eventselection stage runs through in the container include
source /home/atlas/release_setup.sh
With the data mount set to /home the command packtivity runs would be something like
which given how Singularity handles bind mounts means that the path /home/atlas in the container doesn't exist anymore as it has gotten clobbered by the UChicago filesystem's /home, causing the workflow to fail.
Proposed Solution or Idea
There should either be some way to set an alternative datamount in
(maybe via environmental variable?), or there should be an alternative method for setting the datamount (this seems hard to do in general). @lukasheinrich might have smarter ideas here.
Issue
Currently
packtivity
selects the root path of a user's$HOME
to use as the data mount pointpacktivity/packtivity/handlers/execution_handlers.py
Lines 424 to 438 in e7020f5
This means somewhere like LXPLUS8 you get
and so
while if you're somewhere like the Analysis Facility at UChicago you'd get
and so
Example
This is fine, but can cause problems for the way that Singularity interacts with the local file system when mounting. For example, if a user makes a Python virtual environment and installs
recast-atlas[local]
and tries to run theexamples/rome
workflow at the UChicago AF with a script likeit will fail as the steps that the
eventselection
stage runs through in the container includesource /home/atlas/release_setup.sh
With the data mount set to
/home
the commandpacktivity
runs would be something likesingularity exec -C -B /home:/home --pwd /tmp/_sing_home_82sbnqfs/r6cndyad -H /tmp/_sing_home_82sbnqfs docker://reanahub/reana-demo-atlas-recast-eventselection:1.0 sh -c bash
which given how Singularity handles bind mounts means that the path
/home/atlas
in the container doesn't exist anymore as it has gotten clobbered by the UChicago filesystem's/home
, causing the workflow to fail.Proposed Solution or Idea
There should either be some way to set an alternative
datamount
inpacktivity/packtivity/handlers/execution_handlers.py
Line 424 in e7020f5
(maybe via environmental variable?), or there should be an alternative method for setting the
datamount
(this seems hard to do in general). @lukasheinrich might have smarter ideas here.Other Related Issues
The text was updated successfully, but these errors were encountered: