Troubleshooting

Issue with cache folders and temporary folders

To make download of layers for build and pull faster and less redundant, singularity use a caching strategy. By default, the Singularity software will create a set of folders in your $HOME directory for docker layers and metadata, respectively:

$HOME/.singularity

Singularity also uses some temporary directories to build the squashfs filesystem, so this temp space needs to be large enough to hold the entire resulting Singularity image. By default this happens in /tmp but can be overridden by setting SINGULARITY_TMPDIR to the full path where you want the squashfs temp files to be stored.

In many HPC platform, limited space is assigned to $HOME. So to make the pipeline more robust, it is recommended to set SINGULARITY_CACHEDIR to make sure enough space can be used.

BoltDB Corruption Errors

The library that SingularityCE uses to retrieve and cache Docker/OCI layers keeps track of them using a single-file database. If your home directory is on a network filesystem which experiences interruptions, or you run out of storage, it is possible for this database to become inconsistent.

If you observe error messages that mention github.com/etcd-io/bbolt when trying to run SingularityCE, then you should remove the database file:

rm ~/.local/share/containers/cache/blob-info-cache-v1.boltdb

Here are the discussions useful for this issue:

https://github.com/apptainer/singularity/issues/5329#issuecomment-637595826 https://docs.sylabs.io/guides/main/user-guide/build_env.html#boltdb-corruption-errors https://github.com/apptainer/singularity/issues/5329#issuecomment-1062000005

Issue with NIH VPN

When the program inside a container needs to connect to a database via API or download some data, the error message below might be threwn out:

SSL certificate problem: self signed certificate in certificate chain

This is related to VPN setting. Disabling VPN solved the issue. Detailed reason not sure.

Issue with internal connection