Swift-recon-cron returns: [Errno 18] Invalid cross-device link

Bug #949366 reported by David Chamard on 2012-03-07
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Object Storage (swift)
Undecided
Florian Hines

Bug Description

I get an error when I am trying to run Swift-recon-cron:

ile "/usr/lib/pymodules/python2.6/swift/obj/replicator.py", line 611, in run_forever#012 self.recon_object)#012 File "/usr/lib/pymodules/python2.6/swift/common/utils.py", line 1110, in dump_recon_cache#012 raise#012 File "/usr/lib/python2.6/contextlib.py", line 34, in __exit__#012 self.gen.throw(type, value, traceback)#012 File "/usr/lib/pymodules/python2.6/swift/common/utils.py", line 672, in lock_file#012 yield file_obj#012 File "/usr/lib/pymodules/python2.6/swift/common/utils.py", line 1104, in dump_recon_cache#012 os.rename(tf.name, cache_file)#012OSError: [Errno 18] Invalid cross-device link

After researching it seems related to have a non atomic linux config and having /tmp on a different partition/filesystem
 http://groups.google.com/group/python-virtualenv/browse_thread/thread/18f5c08bd599288b

Changed in swift:
assignee: nobody → Florian Hines (pandemicsyn)

Fix proposed to branch: master
Review: https://review.openstack.org/5063

Changed in swift:
status: New → In Progress

Reviewed: https://review.openstack.org/5063
Committed: http://github.com/openstack/swift/commit/f1290e8080e79ccb7ba8af9b749319fa548aec3c
Submitter: Jenkins
Branch: master

commit f1290e8080e79ccb7ba8af9b749319fa548aec3c
Author: Florian Hines <email address hidden>
Date: Thu Mar 8 04:47:00 2012 +0000

    Create tmpfile in the same dir as the cache file

    Make sure we don't try to rename files across devices. Fixes bug 949366

    Change-Id: I75581a0682c8db90cad9b077b1c22a886d234e31

Changed in swift:
status: In Progress → Fix Committed
Thierry Carrez (ttx) on 2012-03-20
Changed in swift:
milestone: none → 1.4.8
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers