Bug 733958

Summary: libvirt restart always activates directory storage pools
Product: Red Hat Enterprise Linux 6 Reporter: Michael Hines <mrhines>
Component: libvirtAssignee: Libvirt Maintainers <libvirt-maint>
Status: CLOSED NOTABUG QA Contact: Virtualization Bugs <virt-bugs>
Severity: high Docs Contact:
Priority: unspecified    
Version: 6.1CC: berrange, dyuan, mzhan, nzhang, rwu, veillard, whuang
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-08-30 10:00:18 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Michael Hines 2011-08-28 22:05:12 UTC
Description of problem:

Whenever you restart libvirt, all directory-based storage pools, regardless of their autostart status are always activated no matter what.

Version-Release number of selected component (if applicable):
Tested on version 0.8.7 through 0.9.1

How reproducible:

Create a directory storage pool, restart libvirt and list the new pool.
Should be inactive, but it is instead active.

Steps to Reproduce:
1. virsh pool-define-as default  dir --target /
2. virsh pool-list --all # pool is active, with autostart == no
3. service libvirtd restart
4. virsh pool-list --all
  
Actual results:

Upon restart, the new pool is activated.

Expected results:

Should be deactivated upon restart (with autostart == no)

Additional info:

Comment 2 Daniel Veillard 2011-08-29 02:50:57 UTC
The main problem I see is that "fixing" this the way you suggest is
changing the default behaviour for dir pools. I tend to think that default
behaviour for pool dir should be to have autostart = yes, now if the user
forces it to no, then I agree this should not show on libvirtd restart.

Daniel

Comment 3 Michael Hines 2011-08-29 03:00:16 UTC
Regardless of the default (auto yes or no), libvirt is not respecting the user's choice.

If I manually disable autostart and restart libvirt, then the pool should not be started, no?

Comment 4 Daniel Berrangé 2011-08-30 10:00:18 UTC
> Whenever you restart libvirt, all directory-based storage pools, regardless of
> their autostart status are always activated no matter what.

When libvirtd restarts it attempts to detect if any of its managed resources are already active. For example, if any guest VMs are running, it will detect this. We recently made it also detect if any storage pools are *already* running.  Directory based storage pools are effectively always running, unless the filesystem on which they live has been unmounted, hence you are seeing them listed as running.

This behaviour is completely independant of the autostart flag, which is about instructing libvirtd to explicitly start storage pools that were *not already* running.