Bug 34725

Summary: uvmm/node.py use shutil.move instead of os.rename
Product: UCS Reporter: Janis Meybohm <meybohm>
Component: Virtualization - UVMMAssignee: Philipp Hahn <hahn>
Status: CLOSED FIXED QA Contact: Erik Damrose <damrose>
Severity: normal    
Priority: P5 CC: gohmann, hahn, jmm
Version: UCS 3.2   
Target Milestone: UCS 3.2-4-errata   
Hardware: Other   
OS: Linux   
What kind of report is it?: --- What type of bug is this?: ---
Who will be affected by this bug?: --- How will those affected feel about the bug?: ---
User Pain: Enterprise Customer affected?:
School Customer affected?: ISV affected?:
Waiting Support: Flags outvoted (downgraded) after PO Review:
Ticket number: Bug group (optional):
Max CVSS v3 score:
Bug Depends on:    
Bug Blocks: 36988    

Description Janis Meybohm univentionstaff 2014-05-02 11:42:45 CEST
2014043021004395

node.py breaks when cache dir is on a different partition than /tmp/. The use of os.rename should be avoided, it should be replaced with shutil.move 


2014-04-30 13:40:22,664 - uvmmd.node - ERROR - ('qemu://SERVER1.tlt.local/system',): Exception in timer_callbck
Traceback (most recent call last):
  File "/usr/lib/pymodules/python2.6/univention/uvmm/node.py", line 578, in run
    self.update_autoreconnect()
  File "/usr/lib/pymodules/python2.6/univention/uvmm/node.py", line 597, in update_autoreconnect
    self.update()
  File "/usr/lib/pymodules/python2.6/univention/uvmm/node.py", line 771, in update
    self.write_novnc_tokens()
  File "/usr/lib/pymodules/python2.6/univention/uvmm/node.py", line 790, in write_novnc_tokens
    os.rename(tmp_file.name, path)
OSError: [Errno 18] Invalid cross-device link
Comment 1 Philipp Hahn univentionstaff 2014-05-02 11:47:42 CEST
(In reply to Janis Meybohm from comment #0)
> The use of os.rename should be avoided, it should be replaced with shutil.move 

No: cross-device renames are not atomic and introduce other cases with file permission/disc full/etc.
The file should instead be created inside the same directory with a prefix/suffix/different name and then be renamed.
Comment 2 Janis Meybohm univentionstaff 2014-11-17 15:29:48 CET
Ticket#2014110521000477

Reported again.
Comment 3 Janis Meybohm univentionstaff 2014-11-25 08:54:12 CET
Reported Again
2014112421000628
Comment 4 Philipp Hahn univentionstaff 2014-11-26 21:51:22 CET
r56208 | Bug #34725 UVMM: Fix noVNC temporary file location
r56210 | Bug #34725 UVMM: Fix noVNC temporary file location YAML

Package: univention-virtual-machine-manager-daemon
Version: 3.0.18-2.562.201411262140
Branch: ucs_3.2-0
Scope: errata3.2-4
Comment 5 Erik Damrose univentionstaff 2015-01-21 09:22:50 CET
OK: temporary file is created in the same directory as the target file, still use os.rename to replace the original file
OK: YAML
Verified
Comment 6 Moritz Muehlenhoff univentionstaff 2015-01-21 12:23:41 CET
http://errata.univention.de/ucs/3.2/275.html