Singularity issue > Solved

Bonjour @rey et la communauté.
On utilise singularity pour plusieurs de nos applications, mais je crois la dernière mise à jour apptainer version 1.1.8-1.el7 ( v1.1.8 - [2023-04-25]) sur les noeuds nous pose un problème. Sur le maitre on a singularity version 3.8.5-2.el7
Qd je lance un job (on utilise snakemake (je ne sais pas si cela à un lien)) nos workflow ne se lancent plus. Si on va voir dans les logs on a ce message (workflow error, puis -Minimum singularity version is 2.4.1.) on devrait donc etre OK
On a le même problème pour un autre workflow qui utilise singularity aussi et qu’un post doc fait tourner sur l’ifb.
Je suspecte fortement que la mise à jour d’apptainer soit la cause de nos soucis
Si jamais tu pouvais jeter un œil là dessus. je serai sur site demain si jamais tu veux discuter de vive voix
merci
Olivier

voici les messages d’erreurs
Workflow running…
Starting Trimming…
Error during trimming; exit code: 1
Exiting…
########################################
---- Errors ----
Results/logs/20230516T1738_trim.txt -Building DAG of jobs…
Results/logs/20230516T1738_trim.txt :WorkflowError:
Results/logs/20230516T1738_trim.txt -Minimum singularity version is 2.4.1.
Results/logs/20230516T1738_trim.txt - File “/shared/software/conda/envs/snakemake-5.19.2/lib/python3.9/site-packages/snakemake/deployment/singularity.py”, line 48, in init

une piste
le message d’erreur est généré par ce script
/shared/software/conda/envs/snakemake-7.7.0/lib/python3.9/site-packages/snakemake/deployment/singularity.py

avec cette partie du code
class Image:
def init(self, url, dag):
if " " in url:
raise WorkflowError(
"Invalid singularity image URL containing " “whitespace.”
)

    if not shutil.which("singularity"):
        raise WorkflowError(
            "The singularity command has to be "
            "available in order to use singularity "
            "integration."
        )
    try:
        v = subprocess.check_output(
            ["singularity", "--version"], stderr=subprocess.PIPE
        ).decode()
    except subprocess.CalledProcessError as e:
        raise WorkflowError(
            "Failed to get singularity version:\n{}".format(e.stderr.decode())
        )
    v = v.rsplit(" ", 1)[-1]
    if v.startswith("v"):
        v = v[1:]
    if not LooseVersion(v) >= LooseVersion("2.4.1"):
        raise WorkflowError("Minimum singularity version is 2.4.1.")

or qd on lance un job, car part sur un noeud
pour voir si en je lance en mode interactif srun -p ipop-up singularity --version
j’obtiens apptainer version 1.1.8-1.el7
qui donne un n° de version < 2.4.1
est ce que le pb viendrait donc que snakemake check singularity version, mais comme singularity est devenu apptainer, avec des n° de version different
Singularity 3.6.8 est devenu apptainer-1.0.0
donc si je ne dis pas n’importe quoi (??) c’est un pb de snakemake qui n’a pas suivi le mouvement Singularity-> apptainer ??
Olivier

probleme vu par d’autres

Hello @okirsh

Tu veux dire que le même problème est reproduit sur l’ifb-core ? Ils ont aussi la même version d’apptainer ?

je n’ai pas fait l’experience du probleme moi même, mais un thesard m’avait fait remonter ce pb
“I can run the singularity command but it still cannot run rasflow, it’s asking for a minimum version of 2.4.1 but the version now is 1.1.7-1”

et c’est arrivé qud ils ont fait une mise a jour de singularity vers apptainer sur le maitre (et sur les noeuds j’imagine)

tout ca ne semble donc pas un probleme de cluster a proprement parlé, mais de compatiblité entre snakemake dans env conda qui fait tourner un container apptainer/singularity

Cela me rassure un peu, pendant un moment j’ai cru que le problème venait de singularity/apptainer lui-même, or là le message vient de snakemake qui tourne dans un environnement conda, c’est bien ça ?

As-tu essayé de lancer toi-même “à la main” les commandes qui sont envoyées par snakemake ? Histoire de vérifier que apptainer est ok.

1 Like

petit tour à l’ifb

pb resolu avec snakemake/5.7.4

Il y a plusieurs autres versions plus récentes de snakemake : 6.12.3, 6.5.0 et 7.7.0.

Tu as testé ?

Ca marche sur l’IFB avec le module snakemake/7.25.0 mais pour une raison qui m’échappe, on a pas cette version sur notre cluster. On peut l’ajouter?
On a aussi besoin du support python pour DRMAA.
Merci!!

1 Like

Apparemment le pipeline avait planté pour ce commit: Pipeline · Institut Français de Bioinformatique / Cluster / tools · GitLab

Le job est trop ancien pour être relancé, je vais voir pour le faire “à la main”.

Snakemake 7.25.0 ajouté !

1 Like

merci Julien pour ta reactivité. ca tourne à nouveau