Skip to content

brew test fails with Invalid cross-device link #20114

@abitrolly

Description

@abitrolly
Contributor

brew doctor output

--

Verification

  • My "brew doctor output" above says Your system is ready to brew. and am still able to reproduce my issue.
    I ran brew update twice and am still able to reproduce my issue.
    This issue's title and/or description do not reference a single formula e.g. brew install wget. If they do, open an issue at https://github.com/Homebrew/homebrew-core/issues/new/choose instead.

brew config output

--

What were you trying to do (and why)?

Test my fixes for PR.

➜  ~ brew tests --changed

What happened (include all command output)?

Introduced by e9f55a8.

~ brew tests --changed
Randomized with seed 17175
1 process for 1 spec, ~ 1 spec per process
FFFFF

Failures:

  1) Homebrew::FormulaCreator gets name from generic tarball URL
     Failure/Error: File.link s, d

     Errno::EXDEV:
       Invalid cross-device link @ rb_file_s_link - (/home/anatoli/.cache/Homebrew/api/cask.jws.json, /var/tmp/homebrew-tests-20250615-121104-8zhyso/cache/api/cask.jws.json)
     # /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/portable-ruby/3.4.4/lib/ruby/3.4.0/fileutils.rb:522:in 'File.link'
     # /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/portable-ruby/3.4.4/lib/ruby/3.4.0/fileutils.rb:522:in 'block in FileUtils.ln'
     # /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/portable-ruby/3.4.4/lib/ruby/3.4.0/fileutils.rb:2487:in 'FileUtils.fu_each_src_dest0'
     # /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/portable-ruby/3.4.4/lib/ruby/3.4.0/fileutils.rb:520:in 'FileUtils.ln'
     # /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/test/spec_helper.rb:255:in 'block (3 levels) in <top (required)>'
     # /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/test/spec_helper.rb:254:in 'Array#each'
     # /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/test/spec_helper.rb:254:in 'block (2 levels) in <top (required)>'
     # /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/rspec-core-3.13.3/lib/rspec/core/example.rb:457:in 'BasicObject#instance_exec'
...

https://ruby-doc.org/core-2.5.5/File.html#method-c-link creates hardlink, and on Linux, the /tmp dir uses memory based tmpfs, so hardlinking fails.

What did you expect to happen?

Use symbolic link instead?

Step-by-step reproduction instructions (by running brew commands)

--

Activity

added theissue type on Jun 15, 2025
MikeMcQuaid

MikeMcQuaid commented on Jun 16, 2025

@MikeMcQuaid
Member

@abitrolly Please always fill in the issue template. You know better by now.

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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      Participants

      @MikeMcQuaid@abitrolly

      Issue actions

        `brew test` fails with Invalid cross-device link · Issue #20114 · Homebrew/brew