Skip to content

Deucalion: UTC timezone in eessi_container is actually WET/WEST due to system dictated Singularity bind-mounts #335

Open

Description

@Crivella

The Singularity on Deucalion mounts the system /etc/localtime onto /usr/share/zoneinfo/Etc/UTC causing the UTC timezone to actually have the behavior of WET/WEST

This can cause failures in tests as observed in:

Enabling singularity debug logs show the mount happening and disabling the mount of bind-paths allow UTC to behave as expected

$ singularity --debug exec /tmp/tmp.ZvcJkOsFxJ/ghcr.io_eessi_build_node_debian12.sif true 2>singularity-debug.log
$ grep -Ei 'zoneinfo|Lisbon' singularity-debug.log
DEBUG   [U=31336,P=3084982]mountGeneric()                Mounting /etc/localtime to /var/lib/singularity/mnt/session/final/usr/share/zoneinfo/Etc/UTC
DEBUG   [U=31336,P=3084982]mountGeneric()                Remounting /var/lib/singularity/mnt/session/final/usr/share/zoneinfo/Etc/UTC

$ singularity exec --no-mount bind-paths /tmp/tmp.ZvcJkOsFxJ/ghcr.io_eessi_build_node_debian12.sif zdump -v /usr/share/zoneinfo/UTC
/usr/share/zoneinfo/UTC  -9223372036854775808 = NULL
/usr/share/zoneinfo/UTC  -9223372036854689408 = NULL
/usr/share/zoneinfo/UTC  9223372036854689407 = NULL
/usr/share/zoneinfo/UTC  9223372036854775807 = NULL

$ grep -nEi 'bind path|localtime' /etc/singularity/singularity.conf
111:# BIND PATH: [STRING]
119:# for /etc/hosts and /etc/localtime. When invoked with --contain and --net,
123:#bind path = /etc/singularity/default-nsswitch.conf:/etc/nsswitch.conf
124:#bind path = /opt
125:#bind path = /scratch
126:bind path = /etc/localtime
127:bind path = /etc/hosts
144:# Enabling this option will make it possible to specify bind paths to locations
151:# Enabling this option will make it possible to specify bind paths to locations

Activity

  1. Crivella commented on Oct 30, 2026

    @Crivella
    ContributorAuthor

    Thanks to Miguel in slack it seems this is not a config issue but a known bug in Singularity, that has been addressed in Apptainer

    I would leave this open until the default container runner is Singularity on Deucalion

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions