Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1416335

Summary: Error in error handler hide the real error when removing volume runlink
Product: Red Hat Enterprise Virtualization Manager Reporter: Tal Nisan <tnisan>
Component: vdsmAssignee: Nir Soffer <nsoffer>
Status: CLOSED UPSTREAM QA Contact: Elad <ebenahar>
Severity: high Docs Contact:
Priority: unspecified    
Version: 4.0.3CC: ahino, amureini, bazulay, bugs, gklein, lsurette, nsoffer, ratamir, srevivo, tnisan, ycui, ykaul, ylavi
Target Milestone: ovirt-4.0.7   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Cause: Typo in error handling code caused a failure when logging an error after live merge. Consequence: The new error was hiding the real error. Fix: The typo was fixed. Result: The real error is logged now.
Story Points: ---
Clone Of: 1405115 Environment:
Last Closed: 2017-01-31 11:39:48 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: Storage RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1405115    
Bug Blocks:    

Description Tal Nisan 2017-01-25 10:24:10 UTC
+++ This bug was initially created as a clone of Bug #1405115 +++

Description of problem:

An unfortunate typo in a error handler cause an AttriuteError when handling
an error to remove a volume run link (e.g. /run/vdsm/sd/img/vol):

I'm getting in VDSM:
2016-12-15 05:01:50,098 INFO  (merge/7adfae6f) [storage.StorageDomainManifest] Unlinking volme runtime link: u'/var/run/vdsm/storage/95e01177-20bf-4240-8656-3774e22deda0/1440299f-e24f-4d12-a6ba-ee583de8ed58/fae82f50-2d2c-406d-a293-c1f05125dc20' (blockSD:911)
2016-12-15 05:01:50,098 ERROR (merge/7adfae6f) [root] Unhandled exception (utils:369)
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/vdsm/utils.py", line 366, in wrapper
    return f(*a, **kw)
  File "/usr/share/vdsm/virt/vm.py", line 5000, in run
    self.teardown_top_volume()
  File "/usr/share/vdsm/virt/vm.py", line 4988, in teardown_top_volume
    self.job['topVolume'])
  File "/usr/share/vdsm/storage/blockSD.py", line 903, in teardownVolume
    self.removeVolumeRunLink(imgUUID, volUUID)
  File "/usr/share/vdsm/storage/blockSD.py", line 915, in removeVolumeRunLink
    if e.error != errno.ENOENT:
AttributeError: 'exceptions.OSError' object has no attribute 'error'
2016-12-15 05:01:50,098 ERROR (merge/7adfae6f) [root] Unhandled exception (utils:369)
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/vdsm/utils.py", line 366, in wrapper
    return f(*a, **kw)
  File "/usr/lib/python2.7/site-packages/vdsm/concurrent.py", line 180, in run
    return func(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/vdsm/utils.py", line 366, in wrapper
    return f(*a, **kw)
  File "/usr/share/vdsm/virt/vm.py", line 5000, in run
    self.teardown_top_volume()
  File "/usr/share/vdsm/virt/vm.py", line 4988, in teardown_top_volume
    self.job['topVolume'])
  File "/usr/share/vdsm/storage/blockSD.py", line 903, in teardownVolume
    self.removeVolumeRunLink(imgUUID, volUUID)
  File "/usr/share/vdsm/storage/blockSD.py", line 915, in removeVolumeRunLink
    if e.error != errno.ENOENT:
AttributeError: 'exceptions.OSError' object has no attribute 'error'


Version-Release number of selected component (if applicable):
vdsm-4.18.999-1162.gite95442e.el7.centos.x86_64


How reproducible:
Unknown, see once few month after the code was introduced.

Steps to Reproduce:
Unknown

Actual results:
Getting AttributeError about the wrong name.

Expected results:

1. If the link does not exists, nothing, this is expected condition. The only way
   to test for this condition correctly is to remove the link and check if 
   the operation failed with ENOENT.

2. If the link cannot be remove, fail loudly. This is unexpected situation that
   should never happen.

This is likely an expected condition (no link), but it may hide serious errors.

--- Additional comment from Sandro Bonazzola on 2017-01-25 09:54:45 IST ---

4.0.6 has been the last oVirt 4.0 release, please re-target this bug.

Comment 1 Elad 2017-01-31 11:39:48 UTC
Based on https://bugzilla.redhat.com/show_bug.cgi?id=1405115#c3 moving to CLOSED UPSTREAM