Skip to content

Library generation fails on AFS because AFS does not support hard links across directories #49

@magv

Description

@magv

Hi, all. It seems pySecDec library generation does not work on the AFS file system. With pySecDec 1.6.4 if I run python3 generate_easy.py from examples/easy, I get this error:

Traceback (most recent call last):
  File "generate_easy.py", line 7, in <module>
    make_package(
  File "pySecDec/make_package.py", line 375, in make_package
    sum_package(
  File "pySecDec/code_writer/sum_package.py", line 480, in sum_package
    template_replacements = [_generate_one_term(
  File "pySecDec/code_writer/sum_package.py", line 480, in <listcomp>
    template_replacements = [_generate_one_term(
  File "pySecDec/code_writer/sum_package.py", line 153, in _generate_one_term
    os.link(filename, filename2)
OSError: [Errno 18] Invalid cross-device link: 'easy_data/easy_integral_coefficient0.txt' -> 'disteval/coefficients/easy_integral_coefficient0.txt'

And indeed, if I manually run

ln easy_data/easy_integral_coefficient0.txt disteval/coefficients/easy_integral_coefficient0.txt

I get:

ln: failed to create hard link 'disteval/coefficients/easy_integral_coefficient0.txt' => 'easy_data/easy_integral_coefficient0.txt': Invalid cross-device link

I guess we can not rely on hard links working on AFS across directories. They do seem to work within the same directory, but not between different ones.

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