Skip to content

new_installer.py: fix logging#51787

Merged
alalazo merged 1 commit intodevelopfrom
hs/fix/new-installer-log-file
Jan 9, 2026
Merged

new_installer.py: fix logging#51787
alalazo merged 1 commit intodevelopfrom
hs/fix/new-installer-log-file

Conversation

@haampie
Copy link
Copy Markdown
Member

@haampie haampie commented Dec 18, 2025

Logging in the new installer was modeled after the old installer, but it has
proven to be problematic as it requires the stage dir to exist before a log
file is created:

  1. many things can go wrong before the stage dir is created
  2. for build cache installs pkg.stage is obviously not used, but we do
    need a log file to troubleshoot failures. In the old installer this was
    no issue, because install from binary cache was done sequentially
    from the main process
  3. there is output before creating the stage dir that needs to be silenced to
    not mess up the UI

This commit generates a unique log file in the stage dir root, redirects output
to that as early as possible, and then ultimately symlinks the log file
in the package stage dir in the usual location during source builds.

Also, fixes two other issues:

  • flush stdout/stderr before closing it, otherwise log output may get lost.
  • actually close the log file before trying to copy a compressed version in
    the install prefix. Otherwise it's not complete, or worse, it may not even
    exist on the filesystem and cause a build failure.

Signed-off-by: Harmen Stoppels <[email protected]>
@haampie haampie force-pushed the hs/fix/new-installer-log-file branch from fc344d4 to fc0f018 Compare December 18, 2025 21:07
@alalazo alalazo self-assigned this Jan 9, 2026
@alalazo alalazo added the v1.1.1 label Jan 9, 2026
@alalazo alalazo merged commit 168d6b8 into develop Jan 9, 2026
56 of 59 checks passed
@alalazo alalazo deleted the hs/fix/new-installer-log-file branch January 9, 2026 10:03
@becker33 becker33 mentioned this pull request Jan 10, 2026
2 tasks
becker33 pushed a commit that referenced this pull request Jan 11, 2026
Logging in the new installer was modeled after the old installer, but it has
proven to be problematic as it requires the stage dir to exist before a log
file is created:

1. many things can go wrong before the stage dir is created
2. for build cache installs pkg.stage is obviously not used, but we do
   need a log file to troubleshoot failures. In the old installer this was
   no issue, because install from binary cache was done sequentially
   from the main process
3. there is output *before* creating the stage dir that needs to be silenced to
   not mess up the UI

This commit generates a unique log file in the stage dir root, redirects output
to that as early as possible, and then ultimately symlinks the log file
in the package stage dir in the usual location during source builds.

Signed-off-by: Harmen Stoppels <[email protected]>
becker33 pushed a commit that referenced this pull request Jan 11, 2026
Logging in the new installer was modeled after the old installer, but it has
proven to be problematic as it requires the stage dir to exist before a log
file is created:

1. many things can go wrong before the stage dir is created
2. for build cache installs pkg.stage is obviously not used, but we do
   need a log file to troubleshoot failures. In the old installer this was
   no issue, because install from binary cache was done sequentially
   from the main process
3. there is output *before* creating the stage dir that needs to be silenced to
   not mess up the UI

This commit generates a unique log file in the stage dir root, redirects output
to that as early as possible, and then ultimately symlinks the log file
in the package stage dir in the usual location during source builds.

Signed-off-by: Harmen Stoppels <[email protected]>
Signed-off-by: Gregory Becker <[email protected]>
becker33 pushed a commit that referenced this pull request Jan 12, 2026
Logging in the new installer was modeled after the old installer, but it has
proven to be problematic as it requires the stage dir to exist before a log
file is created:

1. many things can go wrong before the stage dir is created
2. for build cache installs pkg.stage is obviously not used, but we do
   need a log file to troubleshoot failures. In the old installer this was
   no issue, because install from binary cache was done sequentially
   from the main process
3. there is output *before* creating the stage dir that needs to be silenced to
   not mess up the UI

This commit generates a unique log file in the stage dir root, redirects output
to that as early as possible, and then ultimately symlinks the log file
in the package stage dir in the usual location during source builds.

Signed-off-by: Harmen Stoppels <[email protected]>
Signed-off-by: Gregory Becker <[email protected]>
becker33 pushed a commit that referenced this pull request Jan 15, 2026
Logging in the new installer was modeled after the old installer, but it has
proven to be problematic as it requires the stage dir to exist before a log
file is created:

1. many things can go wrong before the stage dir is created
2. for build cache installs pkg.stage is obviously not used, but we do
   need a log file to troubleshoot failures. In the old installer this was
   no issue, because install from binary cache was done sequentially
   from the main process
3. there is output *before* creating the stage dir that needs to be silenced to
   not mess up the UI

This commit generates a unique log file in the stage dir root, redirects output
to that as early as possible, and then ultimately symlinks the log file
in the package stage dir in the usual location during source builds.

Signed-off-by: Harmen Stoppels <[email protected]>
Signed-off-by: Gregory Becker <[email protected]>
vjranagit pushed a commit to vjranagit/spack that referenced this pull request Jan 18, 2026
Logging in the new installer was modeled after the old installer, but it has
proven to be problematic as it requires the stage dir to exist before a log
file is created:

1. many things can go wrong before the stage dir is created
2. for build cache installs pkg.stage is obviously not used, but we do
   need a log file to troubleshoot failures. In the old installer this was
   no issue, because install from binary cache was done sequentially
   from the main process
3. there is output *before* creating the stage dir that needs to be silenced to
   not mess up the UI

This commit generates a unique log file in the stage dir root, redirects output
to that as early as possible, and then ultimately symlinks the log file
in the package stage dir in the usual location during source builds.

Signed-off-by: Harmen Stoppels <[email protected]>
Signed-off-by: Gregory Becker <[email protected]>
becker33 pushed a commit that referenced this pull request Jan 22, 2026
Logging in the new installer was modeled after the old installer, but it has
proven to be problematic as it requires the stage dir to exist before a log
file is created:

1. many things can go wrong before the stage dir is created
2. for build cache installs pkg.stage is obviously not used, but we do
   need a log file to troubleshoot failures. In the old installer this was
   no issue, because install from binary cache was done sequentially
   from the main process
3. there is output *before* creating the stage dir that needs to be silenced to
   not mess up the UI

This commit generates a unique log file in the stage dir root, redirects output
to that as early as possible, and then ultimately symlinks the log file
in the package stage dir in the usual location during source builds.

Signed-off-by: Harmen Stoppels <[email protected]>
Signed-off-by: Gregory Becker <[email protected]>
becker33 pushed a commit that referenced this pull request Jan 26, 2026
Logging in the new installer was modeled after the old installer, but it has
proven to be problematic as it requires the stage dir to exist before a log
file is created:

1. many things can go wrong before the stage dir is created
2. for build cache installs pkg.stage is obviously not used, but we do
   need a log file to troubleshoot failures. In the old installer this was
   no issue, because install from binary cache was done sequentially
   from the main process
3. there is output *before* creating the stage dir that needs to be silenced to
   not mess up the UI

This commit generates a unique log file in the stage dir root, redirects output
to that as early as possible, and then ultimately symlinks the log file
in the package stage dir in the usual location during source builds.

Signed-off-by: Harmen Stoppels <[email protected]>
Signed-off-by: Gregory Becker <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants