Skip to content

Regression when ~/.rustup/downloads and/or tmp are symlinks #3344

@ijackson

Description

@ijackson

Problem

rustcargo@zealot:/volatile/rustcargo/Rustup/Arti/arti$ ls -ald ~/.rustup/{tmp,downloads}{/,}
lrwxrwxrwx 1 rustcargo rustcargo      37 Jun  8  2021 /home/rustcargo/.rustup/downloads -> /volatile/rustcargo/rustup/downloads/
drwxrwxr-x 2 rustcargo rustcargo    4096 May  3 12:43 /home/rustcargo/.rustup/downloads/
lrwxrwxrwx 1 rustcargo rustcargo      31 Jun  8  2021 /home/rustcargo/.rustup/tmp -> /volatile/rustcargo/rustup/tmp/
drwxrwxr-x 2 rustcargo rustcargo 1249280 May  3 12:45 /home/rustcargo/.rustup/tmp/
rustcargo@zealot:/volatile/rustcargo/Rustup/Arti/arti$ rustup update
info: syncing channel updates for 'stable-x86_64-unknown-linux-gnu'
info: syncing channel updates for 'beta-x86_64-unknown-linux-gnu'
info: syncing channel updates for 'nightly-x86_64-unknown-linux-gnu'
info: syncing channel updates for '1.31-x86_64-unknown-linux-gnu'
info: syncing channel updates for '1.37-x86_64-unknown-linux-gnu'
info: syncing channel updates for '1.40-x86_64-unknown-linux-gnu'
info: syncing channel updates for '1.51-x86_64-unknown-linux-gnu'
info: syncing channel updates for '1.53-x86_64-unknown-linux-gnu'
info: syncing channel updates for '1.54-x86_64-unknown-linux-gnu'
info: syncing channel updates for '1.63-x86_64-unknown-linux-gnu'
info: checking for self-update

   stable-x86_64-unknown-linux-gnu unchanged - rustc 1.69.0 (84c898d65 2023-04-16)
     beta-x86_64-unknown-linux-gnu unchanged - rustc 1.70.0-beta.2 (071f14baa 2023-04-30)
  nightly-x86_64-unknown-linux-gnu unchanged - rustc 1.71.0-nightly (a368898de 2023-05-02)
     1.31-x86_64-unknown-linux-gnu unchanged - rustc 1.31.1 (b6c32da9b 2018-12-18)
     1.37-x86_64-unknown-linux-gnu unchanged - rustc 1.37.0 (eae3437df 2019-08-13)
     1.40-x86_64-unknown-linux-gnu unchanged - rustc 1.40.0 (73528e339 2019-12-16)
     1.51-x86_64-unknown-linux-gnu unchanged - rustc 1.51.0 (2fd73fabe 2021-03-23)
     1.53-x86_64-unknown-linux-gnu unchanged - rustc 1.53.0 (53cb7b09b 2021-06-17)
     1.54-x86_64-unknown-linux-gnu unchanged - rustc 1.54.0 (a178d0322 2021-07-26)
     1.63-x86_64-unknown-linux-gnu unchanged - rustc 1.63.0 (4b91a6ea7 2022-08-08)

info: cleaning up downloads & tmp directories
thread 'main' panicked at 'Unable to clean up /home/rustcargo/.rustup/downloads: Os { code: 40, kind: FilesystemLoop, message: "Too many levels of symbolic links" }', src/utils/utils.rs:650:13
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Steps

  1. Make ~/.rustup/tmp and ~/.rustup/downloads symlinks to like-named directories elsewhere
  2. Run rustup

Possible Solution(s)

No response

Notes

I assume something has changed in rustup's handling of these directories. This used to work. I could probably bisect it if it's not obvious.

Rustup version

rustcargo@zealot:/volatile/rustcargo/Rustup/Arti/arti$ rustup --version
rustup 1.26.0 (5af9b9484 2023-04-05)
info: This is the version for the rustup toolchain manager, not the rustc compiler.
info: The currently active `rustc` version is `rustc 1.70.0-beta.2 (071f14baa 2023-04-30)`
rustcargo@zealot:/volatile/rustcargo/Rustup/Arti/arti$ 

Installed toolchains

rustcargo@zealot:/volatile/rustcargo/Rustup/Arti/arti$ rustup show
Default host: x86_64-unknown-linux-gnu
rustup home:  /home/rustcargo/.rustup

installed toolchains
--------------------

stable-x86_64-unknown-linux-gnu
beta-x86_64-unknown-linux-gnu (default)
nightly-2018-12-19-x86_64-unknown-linux-gnu
nightly-2022-06-24-x86_64-unknown-linux-gnu
nightly-2022-11-12-x86_64-unknown-linux-gnu
nightly-x86_64-unknown-linux-gnu
1.31-x86_64-unknown-linux-gnu
1.37-x86_64-unknown-linux-gnu
1.40-x86_64-unknown-linux-gnu
1.51-x86_64-unknown-linux-gnu
1.53-x86_64-unknown-linux-gnu
1.54-x86_64-unknown-linux-gnu
1.63-x86_64-unknown-linux-gnu
local
stage1
1.63.0-x86_64-unknown-linux-gnu

installed targets for active toolchain
--------------------------------------

wasm32-unknown-unknown
x86_64-unknown-linux-gnu
x86_64-unknown-linux-musl

active toolchain
----------------

beta-x86_64-unknown-linux-gnu (default)
rustc 1.70.0-beta.2 (071f14baa 2023-04-30)

rustcargo@zealot:/volatile/rustcargo/Rustup/Arti/arti$ 

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions