Opened 8 years ago

Closed 7 years ago

#1003 closed defect (fixed)

IHM "Invalid cross-device link"

Reported by: ben@… Owned by: Tom Goddard
Priority: moderate Milestone:
Component: Higher-Order Structure Version:
Keywords: Cc:
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

Opening nup84 IHM example on Linux with /tmp and ~/Downloads on different file systems gives an error trying to link a fetched zip archive (from Zenodo)

[Errno 18] Invalid cross-device link: '/tmp/tmpphvntz2nnup84-v1.0.2.zip' -> '/home/ben/Downloads/ChimeraX/DOI/10.5281/zenodo.820724/nup84-v1.0.2.zip'

Change History (2)

comment:1 by Tom Goddard, 7 years ago

More details of same bug.

Begin forwarded message:

From: Ben Webb
Subject: Re: NPC structure in mmCIF
Date: July 17, 2018 at 1:06:50 PM PDT
To: Tom Goddard

On 01/12/2018 01:01 PM, Tom Goddard wrote:> The second error about invalid cross-device link appears to be from
trying to extract a file from the zenodo zip archive. My code uses
the standard Python3 ZipFile class to extract files and apparently
that is trying on Linux to do an unzip in /tmp after making a hard
link to /tmp which fails because /tmp is on a different file system.

Just FYI, in case you thought you fixed this - just got the same thing on Linux today with the latest nightly build; running "open 16 from pdbdev" gives me the error:

File "/home/ben/chimerax/lib/python3.6/site-packages/chimerax/ihm/doi_fetch.py", line 116, in fetch_doi_archive_file

zip_path = fetch_doi(session, doi, url, ignore_cache = ignore_cache)

File "/home/ben/chimerax/lib/python3.6/site-packages/chimerax/ihm/doi_fetch.py", line 56, in fetch_doi

link(filename, cfile)

OSError: [Errno 18] Invalid cross-device link: '/tmp/tmpyck1q40iMODELLER.zip' -> '/home/ben/Downloads/ChimeraX/DOI/10.5281/zenodo.1209565/MODELLER.zip'

Ben

comment:2 by Tom Goddard, 7 years ago

Resolution: fixed
Status: assignedclosed

Fixed.

Made URL fetch put file directly in destination directory instead of /tmp.

Note: See TracTickets for help on using tickets.