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

Bug 1059791

Summary: [engine] DisconnectStoragePool is sent after the pool was destroyed during DestroyStoragePool flow
Product: [Retired] oVirt Reporter: Gadi Ickowicz <gickowic>
Component: ovirt-engine-coreAssignee: Liron Aravot <laravot>
Status: CLOSED NOTABUG QA Contact: bugs <bugs>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 3.4CC: acanan, acathrow, amureini, gklein, iheim, nlevinki, yeylon
Target Milestone: ---Keywords: Triaged
Target Release: 3.5.0   
Hardware: All   
OS: Linux   
Whiteboard: storage
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-06-22 11:14:30 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:
Attachments:
Description Flags
engine logs none

Description Gadi Ickowicz 2014-01-30 16:25:32 UTC
Created attachment 857563 [details]
engine logs

Description of problem:
When removing a datacenter, after DestroyStoragePool engine attempts to perform DisconnectStoragePool on the hosts. This fails (silently) on the hosts since the pool does not exist anymore.

2014-01-30 15:27:32,677 INFO  [org.ovirt.engine.core.vdsbroker.irsbroker.DestroyStoragePoolVDSCommand] (org.ovirt.thread.pool-6-thread-25) [16beba9f] START, DestroyStoragePoolVDSCommand( storagePoolId = 36263611-a
2014-01-30 15:27:32,698 INFO  [org.ovirt.engine.core.bll.storage.SetStoragePoolStatusCommand] (org.ovirt.thread.pool-6-thread-25) [43035533] Running command: SetStoragePoolStatusCommand internal: true. Entities af
<.....snip.....>
2014-01-30 15:28:04,561 INFO  [org.ovirt.engine.core.vdsbroker.irsbroker.DestroyStoragePoolVDSCommand] (org.ovirt.thread.pool-6-thread-25) [43035533] FINISH, DestroyStoragePoolVDSCommand, log id: 428e6195
2014-01-30 15:28:04,600 INFO  [org.ovirt.engine.core.vdsbroker.vdsbroker.DisconnectStorageServerVDSCommand] (org.ovirt.thread.pool-6-thread-25) [43035533] START, DisconnectStorageServerVDSCommand(HostName = gold-v
2014-01-30 15:28:05,248 INFO  [org.ovirt.engine.core.vdsbroker.vdsbroker.DisconnectStorageServerVDSCommand] (org.ovirt.thread.pool-6-thread-25) [43035533] FINISH, DisconnectStorageServerVDSCommand, return: {}, log
2014-01-30 15:28:05,257 INFO  [org.ovirt.engine.core.vdsbroker.vdsbroker.DisconnectStorageServerVDSCommand] (org.ovirt.thread.pool-6-thread-25) [43035533] START, DisconnectStorageServerVDSCommand(HostName = gold-v
2014-01-30 15:28:05,943 INFO  [org.ovirt.engine.core.vdsbroker.vdsbroker.DisconnectStorageServerVDSCommand] (org.ovirt.thread.pool-6-thread-25) [43035533] FINISH, DisconnectStorageServerVDSCommand, return: {}, log
2014-01-30 15:28:05,946 WARN  [org.ovirt.engine.core.utils.threadpool.ThreadPoolUtil] (org.ovirt.thread.pool-6-thread-38) Executing a command: java.util.concurrent.FutureTask , but note that there are 1 tasks in t
2014-01-30 15:28:05,947 INFO  [org.ovirt.engine.core.bll.storage.DisconnectStoragePoolAsyncOperation] (org.ovirt.thread.pool-6-thread-24) [43035533] Disconnect storage pool treatment vds: gold-vdsc.qa.lab.tlv.redh
2014-01-30 15:28:05,948 INFO  [org.ovirt.engine.core.bll.storage.DisconnectStoragePoolAsyncOperation] (org.ovirt.thread.pool-6-thread-38) [43035533] Disconnect storage pool treatment vds: gold-vdsd.qa.lab.tlv.redh
2014-01-30 15:28:05,950 INFO  [org.ovirt.engine.core.vdsbroker.vdsbroker.DisconnectStoragePoolVDSCommand] (org.ovirt.thread.pool-6-thread-38) [43035533] START, DisconnectStoragePoolVDSCommand(HostName = gold-vdsd.
2014-01-30 15:28:05,952 INFO  [org.ovirt.engine.core.vdsbroker.vdsbroker.DisconnectStoragePoolVDSCommand] (org.ovirt.thread.pool-6-thread-24) [43035533] START, DisconnectStoragePoolVDSCommand(HostName = gold-vdsc.
2014-01-30 15:28:05,954 WARN  [org.ovirt.engine.core.utils.threadpool.ThreadPoolUtil] (org.ovirt.thread.pool-6-thread-4) Executing a command: java.util.concurrent.FutureTask , but note that there are 1 tasks in th
2014-01-30 15:28:05,962 INFO  [org.ovirt.engine.core.vdsbroker.vdsbroker.DisconnectStoragePoolVDSCommand] (org.ovirt.thread.pool-6-thread-24) [43035533] FINISH, DisconnectStoragePoolVDSCommand, log id: 7c02bd99
2014-01-30 15:28:07,674 INFO  [org.ovirt.engine.core.vdsbroker.vdsbroker.DisconnectStoragePoolVDSCommand] (org.ovirt.thread.pool-6-thread-38) [43035533] FINISH, DisconnectStoragePoolVDSCommand, log id: 17edc76a
Version-Release number of selected component (if applicable):
ovirt-engine-3.4.0-0.2.master.20140112020439.git9ad8529.el6.noarch

How reproducible:
100%

Steps to Reproduce:
1 DC with 1 domain and 1 host
1. Move domain to maintenance
2. Remove datacenter

Actual results:
Engine logs show DisconnectStoragePool sent after DestroyStoragePool

Expected results:
If the pool was destroyed there is no more need to disconnect it.

Additional info:

Comment 1 Liron Aravot 2014-06-22 11:14:30 UTC
I'm closing this one as NOTABUG.
when running the destroyStoragePool verb on vdsm side what's actually being done is detaching all the domains from the pool.
Later on the engine attempts to disconnect all the hosts that aren't the spm from the pool. This is needed as those hosts somehow been connected to the pool (for example - when attempting to select the spm to run the destroy verb). if the hosts are already disconnected from the pool we'll get pool unknown error from vdsm, but that's not related to the fact that the destroy verb was executed prior to this call.

We need to file another bug to refactor this whole flow, but this issue isn't a bug.