[pve-devel] vm stop tasks hanging
Alexandre DERUMIER
aderumier at odiso.com
Fri Apr 20 12:03:43 CEST 2012
I think I found the problem:
in Qemuserver.pm : vm_stop_cleanup sub
-> PVE::Storage::deactivate_volumes($storecfg, $vollist);
sub deactivate_volumes {
my ($cfg, $vollist) = @_;
return if !($vollist && scalar(@$vollist));
my $lvs = lvm_lvs (); ------------------------------> this is called, but I don't use lvm
my @errlist = ();
foreach my $volid (@$vollist) {
my ($storeid, $volname) = parse_volume_id ($volid);
my $scfg = storage_config ($cfg, $storeid);
if ($scfg->{type} eq 'lvm') {
my ($name) = parse_volname_lvm ($volname);
if ($lvs->{$scfg->{vgname}}->{$name}) {
my $path = path ($cfg, $volid);
my $cmd = ['/sbin/lvchange', '-aln', $path];
eval { run_command($cmd, errmsg => "can't deactivate LV '$volid'"); };
if (my $err = $@) {
warn $err;
push @errlist, $volid;
}
}
}
}
die "volume deativation failed: " . join(' ', @errlist)
sub lvm_lvs {
my ($vgname) = @_;
my $cmd = ['/sbin/lvs', '--separator', ':', '--noheadings', '--units', 'b',
'--unbuffered', '--nosuffix', '--options',
'vg_name,lv_name,lv_size,uuid,tags'];
maybe adding a
return if $scfg->{type} ne 'lvm'
at the begin of deactivate_volumes sub should help ?
----- Mail original -----
De: "Alexandre DERUMIER" <aderumier at odiso.com>
À: "Stefan Priebe - Profihost AG" <s.priebe at profihost.ag>
Cc: pve-devel at pve.proxmox.com
Envoyé: Vendredi 20 Avril 2012 10:39:13
Objet: Re: [pve-devel] vm stop tasks hanging
interesting: when I stop the process, I have this error:
command '/sbin/lvs --separator : --noheadings --units b --unbuffered --nosuffix --options vg_name,lv_name,lv_size,uuid,tags' failed: received interrupt
root at kvm6:~#
I'm using scsi lun directly without lvm, maybe this is the cause of the problem ?
----- Mail original -----
De: "Alexandre DERUMIER" <aderumier at odiso.com>
À: "Stefan Priebe - Profihost AG" <s.priebe at profihost.ag>
Cc: pve-devel at pve.proxmox.com
Envoyé: Vendredi 20 Avril 2012 10:36:37
Objet: Re: [pve-devel] vm stop tasks hanging
Hi,
console or proxmox gui, same problem.
strace :
Process 536632 attached - interrupt to quit
select(8, [6], NULL, NULL, {0, 602921}) = 0 (Timeout)
open("/proc/536638/stat", O_RDONLY) = 10
ioctl(10, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff4daca4b0) = -1 ENOTTY (Inappropriate ioctl for device)
lseek(10, 0, SEEK_CUR) = 0
fstat(10, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
fcntl(10, F_SETFD, FD_CLOEXEC) = 0
read(10, "536638 (qm) S 536632 536638 5366"..., 4096) = 263
close(10) = 0
select(8, [6], NULL, NULL, {1, 0}) = 0 (Timeout)
open("/proc/536638/stat", O_RDONLY) = 10
ioctl(10, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff4daca4b0) = -1 ENOTTY (Inappropriate ioctl for device)
lseek(10, 0, SEEK_CUR) = 0
fstat(10, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
fcntl(10, F_SETFD, FD_CLOEXEC) = 0
read(10, "536638 (qm) S 536632 536638 5366"..., 4096) = 262
close(10) = 0
select(8, [6], NULL, NULL, {1, 0}) = 0 (Timeout)
open("/proc/536638/stat", O_RDONLY) = 10
ioctl(10, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff4daca4b0) = -1 ENOTTY (Inappropriate ioctl for device)
lseek(10, 0, SEEK_CUR) = 0
fstat(10, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
fcntl(10, F_SETFD, FD_CLOEXEC) = 0
read(10, "536638 (qm) S 536632 536638 5366"..., 4096) = 262
close(10) = 0
select(8, [6], NULL, NULL, {1, 0}) = 0 (Timeout)
open("/proc/536638/stat", O_RDONLY) = 10
ioctl(10, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff4daca4b0) = -1 ENOTTY (Inappropriate ioctl for device)
lseek(10, 0, SEEK_CUR) = 0
fstat(10, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
fcntl(10, F_SETFD, FD_CLOEXEC) = 0
read(10, "536638 (qm) S 536632 536638 5366"..., 4096) = 262
close(10) = 0
select(8, [6], NULL, NULL, {1, 0}) = 0 (Timeout)
open("/proc/536638/stat", O_RDONLY) = 10
ioctl(10, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff4daca4b0) = -1 ENOTTY (Inappropriate ioctl for device)
lseek(10, 0, SEEK_CUR) = 0
fstat(10, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
fcntl(10, F_SETFD, FD_CLOEXEC) = 0
read(10, "536638 (qm) S 536632 536638 5366"..., 4096) = 262
close(10) = 0
select(8, [6], NULL, NULL, {1, 0}) = 0 (Timeout)
open("/proc/536638/stat", O_RDONLY) = 10
ioctl(10, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff4daca4b0) = -1 ENOTTY (Inappropriate ioctl for device)
lseek(10, 0, SEEK_CUR) = 0
fstat(10, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
fcntl(10, F_SETFD, FD_CLOEXEC) = 0
read(10, "536638 (qm) S 536632 536638 5366"..., 4096) = 262
close(10) = 0
select(8, [6], NULL, NULL, {1, 0}) = 0 (Timeout)
open("/proc/536638/stat", O_RDONLY) = 10
ioctl(10, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff4daca4b0) = -1 ENOTTY (Inappropriate ioctl for device)
lseek(10, 0, SEEK_CUR) = 0
fstat(10, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
fcntl(10, F_SETFD, FD_CLOEXEC) = 0
read(10, "536638 (qm) S 536632 536638 5366"..., 4096) = 263
close(10) = 0
select(8, [6], NULL, NULL, {1, 0}) = 0 (Timeout)
open("/proc/536638/stat", O_RDONLY) = 10
ioctl(10, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff4daca4b0) = -1 ENOTTY (Inappropriate ioctl for device)
lseek(10, 0, SEEK_CUR) = 0
fstat(10, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
fcntl(10, F_SETFD, FD_CLOEXEC) = 0
read(10, "536638 (qm) S 536632 536638 5366"..., 4096) = 263
close(10) = 0
select(8, [6], NULL, NULL, {1, 0}) = 0 (Timeout)
open("/proc/536638/stat", O_RDONLY) = 10
ioctl(10, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff4daca4b0) = -1 ENOTTY (Inappropriate ioctl for device)
lseek(10, 0, SEEK_CUR) = 0
fstat(10, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
fcntl(10, F_SETFD, FD_CLOEXEC) = 0
read(10, "536638 (qm) S 536632 536638 5366"..., 4096) = 262
close(10) = 0
select(8, [6], NULL, NULL, {1, 0}) = 0 (Timeout)
open("/proc/536638/stat", O_RDONLY) = 10
ioctl(10, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff4daca4b0) = -1 ENOTTY (Inappropriate ioctl for device)
lseek(10, 0, SEEK_CUR) = 0
fstat(10, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
fcntl(10, F_SETFD, FD_CLOEXEC) = 0
read(10, "536638 (qm) S 536632 536638 5366"..., 4096) = 262
close(10) = 0
select(8, [6], NULL, NULL, {1, 0}) = 0 (Timeout)
open("/proc/536638/stat", O_RDONLY) = 10
ioctl(10, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff4daca4b0) = -1 ENOTTY (Inappropriate ioctl for device)
lseek(10, 0, SEEK_CUR) = 0
fstat(10, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
fcntl(10, F_SETFD, FD_CLOEXEC) = 0
read(10, "536638 (qm) S 536632 536638 5366"..., 4096) = 262
close(10) = 0
select(8, [6], NULL, NULL, {1, 0}) = 0 (Timeout)
open("/proc/536638/stat", O_RDONLY) = 10
ioctl(10, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff4daca4b0) = -1 ENOTTY (Inappropriate ioctl for device)
lseek(10, 0, SEEK_CUR) = 0
fstat(10, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
fcntl(10, F_SETFD, FD_CLOEXEC) = 0
read(10, "536638 (qm) S 536632 536638 5366"..., 4096) = 262
close(10) = 0
select(8, [6], NULL, NULL, {1, 0}) = 0 (Timeout)
open("/proc/536638/stat", O_RDONLY) = 10
ioctl(10, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff4daca4b0) = -1 ENOTTY (Inappropriate ioctl for device)
lseek(10, 0, SEEK_CUR) = 0
fstat(10, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
fcntl(10, F_SETFD, FD_CLOEXEC) = 0
read(10, "536638 (qm) S 536632 536638 5366"..., 4096) = 262
close(10) = 0
select(8, [6], NULL, NULL, {1, 0}) = 0 (Timeout)
open("/proc/536638/stat", O_RDONLY) = 10
ioctl(10, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff4daca4b0) = -1 ENOTTY (Inappropriate ioctl for device)
lseek(10, 0, SEEK_CUR) = 0
fstat(10, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
fcntl(10, F_SETFD, FD_CLOEXEC) = 0
read(10, "536638 (qm) S 536632 536638 5366"..., 4096) = 262
close(10) = 0
select(8, [6], NULL, NULL, {1, 0}) = 0 (Timeout)
open("/proc/536638/stat", O_RDONLY) = 10
ioctl(10, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff4daca4b0) = -1 ENOTTY (Inappropriate ioctl for device)
lseek(10, 0, SEEK_CUR) = 0
fstat(10, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
fcntl(10, F_SETFD, FD_CLOEXEC) = 0
read(10, "536638 (qm) S 536632 536638 5366"..., 4096) = 262
close(10) = 0
select(8, [6], NULL, NULL, {1, 0}) = 0 (Timeout)
open("/proc/536638/stat", O_RDONLY) = 10
ioctl(10, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff4daca4b0) = -1 ENOTTY (Inappropriate ioctl for device)
lseek(10, 0, SEEK_CUR) = 0
fstat(10, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
fcntl(10, F_SETFD, FD_CLOEXEC) = 0
read(10, "536638 (qm) S 536632 536638 5366"..., 4096) = 262
close(10) = 0
select(8, [6], NULL, NULL, {1, 0}^C <unfinished ...>
Process 536632 detached
----- Mail original -----
De: "Stefan Priebe - Profihost AG" <s.priebe at profihost.ag>
À: pve-devel at pve.proxmox.com
Envoyé: Vendredi 20 Avril 2012 10:00:50
Objet: Re: [pve-devel] vm stop tasks hanging
Am 20.04.2012 09:58, schrieb Alexandre DERUMIER:
> Hi Dietmar,
>
> I have problems with kvm stopping task, which are hanging.
>
> vm stop correctly (icon in tree is black), but task continue to run. (so i need to stop the task manually).
>
> I can reproduce it 100%.
>
> Do you have an idea ?
What does an strace -f -p PID of the vm stop command say? It should do
or wait for something. Also does it only happen via Proxmox console or
does it also happen when starting then command via shell?
Greets
Stefan
_______________________________________________
pve-devel mailing list
pve-devel at pve.proxmox.com
http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
--
--
Alexandre D erumier
Ingénieur Système
Fixe : 03 20 68 88 90
Fax : 03 20 68 90 81
45 Bvd du Général Leclerc 59100 Roubaix - France
12 rue Marivaux 75002 Paris - France
--
--
Alexandre D erumier
Ingénieur Système
Fixe : 03 20 68 88 90
Fax : 03 20 68 90 81
45 Bvd du Général Leclerc 59100 Roubaix - France
12 rue Marivaux 75002 Paris - France
_______________________________________________
pve-devel mailing list
pve-devel at pve.proxmox.com
http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
--
--
Alexandre D erumier
Ingénieur Système
Fixe : 03 20 68 88 90
Fax : 03 20 68 90 81
45 Bvd du Général Leclerc 59100 Roubaix - France
12 rue Marivaux 75002 Paris - France
More information about the pve-devel
mailing list