* [linux-lvm] Clarifications wanted about locking process
@ 2009-08-14 0:13 Eric Bélanger
2009-08-14 8:24 ` Alasdair G Kergon
0 siblings, 1 reply; 4+ messages in thread
From: Eric Bélanger @ 2009-08-14 0:13 UTC (permalink / raw)
To: linux-lvm
Hi,
Since I updated from lvm2 2.02.48 to 2.02.51, I'm getting this message
on boot-up:
Write locks are prohibited with --ignorelockingfailure.
Unable to obtain global lock.
I found that it comes from the: "/sbin/lvm vgscan
--ignorelockingfailure --mknodes" command in /etc/rc.sysinit. I was
getting the same message from "/sbin/lvm vgchange
--ignorelockingfailure -a y" when using the 2.02.49 (or 2.02.50?)
versions.
Is this just an harmless informational message? I don't understand
why it would want a write lock when scanning or activating volume
groups. Wouldn't a read lock be sufficient? Also, shouldn't the use
of the --ignorelockingfailure option disable all locking-related
warnings? Any clarifications would be appreciated.
Thanks,
Eric
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [linux-lvm] Clarifications wanted about locking process
2009-08-14 0:13 [linux-lvm] Clarifications wanted about locking process Eric Bélanger
@ 2009-08-14 8:24 ` Alasdair G Kergon
2009-08-14 11:49 ` [PATCH] " Petr Rockai
0 siblings, 1 reply; 4+ messages in thread
From: Alasdair G Kergon @ 2009-08-14 8:24 UTC (permalink / raw)
To: LVM general discussion and development
On Thu, Aug 13, 2009 at 08:13:39PM -0400, Eric B�langer wrote:
> Since I updated from lvm2 2.02.48 to 2.02.51, I'm getting this message
> on boot-up:
> Write locks are prohibited with --ignorelockingfailure.
> Unable to obtain global lock.
Sounds like a bug.
> I found that it comes from the: "/sbin/lvm vgscan
> --ignorelockingfailure --mknodes" command in /etc/rc.sysinit. I was
> getting the same message from "/sbin/lvm vgchange
> --ignorelockingfailure -a y" when using the 2.02.49 (or 2.02.50?)
> versions.
Alasdair
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH] Re: [linux-lvm] Clarifications wanted about locking process
2009-08-14 8:24 ` Alasdair G Kergon
@ 2009-08-14 11:49 ` Petr Rockai
2009-08-14 17:12 ` Alasdair G Kergon
0 siblings, 1 reply; 4+ messages in thread
From: Petr Rockai @ 2009-08-14 11:49 UTC (permalink / raw)
To: LVM general discussion and development; +Cc: agk, lvm-devel
[-- Attachment #1: Type: text/plain, Size: 536 bytes --]
Alasdair G Kergon <agk@redhat.com> writes:
> On Thu, Aug 13, 2009 at 08:13:39PM -0400, Eric Bélanger wrote:
>> Since I updated from lvm2 2.02.48 to 2.02.51, I'm getting this message
>> on boot-up:
>> Write locks are prohibited with --ignorelockingfailure.
>> Unable to obtain global lock.
>
> Sounds like a bug.
The attached patch should fix the issue. I believe that taking a global write
lock while scanning is a mistake (I consulted with Milan, he says it only
serves to enable metadata caching).
Yours,
Petr.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: scanning-read-locks.diff --]
[-- Type: text/x-diff, Size: 1011 bytes --]
diff -rN -u -p old-upstream/tools/pvscan.c new-upstream/tools/pvscan.c
--- old-upstream/tools/pvscan.c 2009-08-14 13:44:39.000000000 +0200
+++ new-upstream/tools/pvscan.c 2009-08-14 13:44:40.000000000 +0200
@@ -124,7 +124,7 @@ int pvscan(struct cmd_context *cmd, int
arg_count(cmd, exported_ARG) ?
"of exported volume group(s)" : "in no volume group");
- if (!lock_vol(cmd, VG_GLOBAL, LCK_VG_WRITE)) {
+ if (!lock_vol(cmd, VG_GLOBAL, LCK_VG_READ)) {
log_error("Unable to obtain global lock.");
return ECMD_FAILED;
}
diff -rN -u -p old-upstream/tools/vgscan.c new-upstream/tools/vgscan.c
--- old-upstream/tools/vgscan.c 2009-08-14 13:44:39.000000000 +0200
+++ new-upstream/tools/vgscan.c 2009-08-14 13:44:40.000000000 +0200
@@ -40,7 +40,7 @@ int vgscan(struct cmd_context *cmd, int
return EINVALID_CMD_LINE;
}
- if (!lock_vol(cmd, VG_GLOBAL, LCK_VG_WRITE)) {
+ if (!lock_vol(cmd, VG_GLOBAL, LCK_VG_READ)) {
log_error("Unable to obtain global lock.");
return ECMD_FAILED;
}
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] Re: [linux-lvm] Clarifications wanted about locking process
2009-08-14 11:49 ` [PATCH] " Petr Rockai
@ 2009-08-14 17:12 ` Alasdair G Kergon
0 siblings, 0 replies; 4+ messages in thread
From: Alasdair G Kergon @ 2009-08-14 17:12 UTC (permalink / raw)
To: Petr Rockai; +Cc: lvm-devel, LVM general discussion and development
On Fri, Aug 14, 2009 at 01:49:13PM +0200, Peter Rockai wrote:
> The attached patch should fix the issue. I believe that taking a global write
> lock while scanning is a mistake (I consulted with Milan, he says it only
> serves to enable metadata caching).
Well only one instance of pvscan and/or vgscan is allowed to run at once,
and IIRC VG_GLOBAL with LCK_VG_WRITE is what enforces that.
IOW The write lock is correct.
See the comment in toollib:
/*
* If the lock_type is LCK_VG_READ (used only in reporting commands),
* we lock VG_GLOBAL to enable use of metadata cache.
* This can pause alongide pvscan or vgscan process for a while.
*/
I don't want to touch the VG_GLOBAL logic here at this stage.
Are there any problems with just excluding an already-held VG_GLOBAL from the
test that generates this error message?
Alasdair
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2009-08-14 17:12 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-08-14 0:13 [linux-lvm] Clarifications wanted about locking process Eric Bélanger
2009-08-14 8:24 ` Alasdair G Kergon
2009-08-14 11:49 ` [PATCH] " Petr Rockai
2009-08-14 17:12 ` Alasdair G Kergon
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).