public inbox for cluster-cvs@sourceware.org
help / color / mirror / Atom feed
* cluster/dlm-kernel/src lockspace.c
@ 2005-03-26 4:43 teigland
0 siblings, 0 replies; 8+ messages in thread
From: teigland @ 2005-03-26 4:43 UTC (permalink / raw)
To: cluster-cvs
CVSROOT: /cvs/cluster
Module name: cluster
Changes by: teigland@sourceware.org 2005-03-26 04:43:33
Modified files:
dlm-kernel/src : lockspace.c
Log message:
On Fri, Mar 25, 2005 at 03:22:38PM -0800, Daniel McNeil wrote:
Looking at the code, the problem is a race condition between
dlm_astd() and release_lockspace(). dlm_astd can pull an
lkb off the ast_queue and still be processing it while the
release_lockspace() is running calls dlm_dir_clear() and
then kfree()s ls->ls_dirtbl. When dlm_astd() calls
release_rsb() it leads to a dlm_dir_remove() which accesses
the freed ls_dirtbl which is freed. With slab debug, this
leads a spinning write_lock() and a hung umount. My machines
are 2 cpu systems which also might expose the race condition.
The fix is below and is fairly simple, just do the astd_suspend()
in release_lockspace() before the dlm_dir_clear() and kfree().
That way astd won't be process lkb on the astqueue will it
is being freed.
Patches:
http://sources.redhat.com/cgi-bin/cvsweb.cgi/cluster/dlm-kernel/src/lockspace.c.diff?cvsroot=cluster&r1=1.24&r2=1.25
^ permalink raw reply [flat|nested] 8+ messages in thread
* cluster/dlm-kernel/src lockspace.c
@ 2006-04-18 14:55 teigland
0 siblings, 0 replies; 8+ messages in thread
From: teigland @ 2006-04-18 14:55 UTC (permalink / raw)
To: cluster-cvs
CVSROOT: /cvs/cluster
Module name: cluster
Branch: STABLE
Changes by: teigland@sourceware.org 2006-04-18 14:55:28
Modified files:
dlm-kernel/src : lockspace.c
Log message:
printk "lockspace already in use"
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/dlm-kernel/src/lockspace.c.diff?cvsroot=cluster&only_with_tag=STABLE&r1=1.19.2.6.6.2&r2=1.19.2.6.6.3
^ permalink raw reply [flat|nested] 8+ messages in thread
* cluster/dlm-kernel/src lockspace.c
@ 2006-04-18 14:54 teigland
0 siblings, 0 replies; 8+ messages in thread
From: teigland @ 2006-04-18 14:54 UTC (permalink / raw)
To: cluster-cvs
CVSROOT: /cvs/cluster
Module name: cluster
Branch: RHEL4
Changes by: teigland@sourceware.org 2006-04-18 14:54:41
Modified files:
dlm-kernel/src : lockspace.c
Log message:
printk "lockspace already in use"
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/dlm-kernel/src/lockspace.c.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.19.2.8&r2=1.19.2.9
^ permalink raw reply [flat|nested] 8+ messages in thread
* cluster/dlm-kernel/src lockspace.c
@ 2005-11-14 15:27 teigland
0 siblings, 0 replies; 8+ messages in thread
From: teigland @ 2005-11-14 15:27 UTC (permalink / raw)
To: cluster-cvs
CVSROOT: /cvs/cluster
Module name: cluster
Branch: STABLE
Changes by: teigland@sourceware.org 2005-11-14 15:26:59
Modified files:
dlm-kernel/src : lockspace.c
Log message:
Add printk("WARNING: dlm_emergency_shutdown\n") to help diagnose
panics.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/dlm-kernel/src/lockspace.c.diff?cvsroot=cluster&only_with_tag=STABLE&r1=1.19.2.6.6.1&r2=1.19.2.6.6.2
^ permalink raw reply [flat|nested] 8+ messages in thread
* cluster/dlm-kernel/src lockspace.c
@ 2005-11-14 15:25 teigland
0 siblings, 0 replies; 8+ messages in thread
From: teigland @ 2005-11-14 15:25 UTC (permalink / raw)
To: cluster-cvs
CVSROOT: /cvs/cluster
Module name: cluster
Branch: RHEL4
Changes by: teigland@sourceware.org 2005-11-14 15:25:49
Modified files:
dlm-kernel/src : lockspace.c
Log message:
Add printk("WARNING: dlm_emergency_shutdown\n") to start and
end of named function. This should help us diagnose some
otherwise uncertain panics.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/dlm-kernel/src/lockspace.c.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.19.2.7&r2=1.19.2.8
^ permalink raw reply [flat|nested] 8+ messages in thread
* cluster/dlm-kernel/src lockspace.c
@ 2005-08-31 6:51 teigland
0 siblings, 0 replies; 8+ messages in thread
From: teigland @ 2005-08-31 6:51 UTC (permalink / raw)
To: cluster-cvs
CVSROOT: /cvs/cluster
Module name: cluster
Branch: STABLE
Changes by: teigland@sourceware.org 2005-08-31 06:51:28
Modified files:
dlm-kernel/src : lockspace.c
Log message:
copy usage count fix from RHEL4 branch
Patches:
http://sources.redhat.com/cgi-bin/cvsweb.cgi/cluster/dlm-kernel/src/lockspace.c.diff?cvsroot=cluster&only_with_tag=STABLE&r1=1.19.2.6&r2=1.19.2.6.6.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* cluster/dlm-kernel/src lockspace.c
@ 2005-06-28 13:11 pcaulfield
0 siblings, 0 replies; 8+ messages in thread
From: pcaulfield @ 2005-06-28 13:11 UTC (permalink / raw)
To: cluster-cvs
CVSROOT: /cvs/cluster
Module name: cluster
Branch: RHEL4
Changes by: pcaulfield@sourceware.org 2005-06-28 13:11:14
Modified files:
dlm-kernel/src : lockspace.c
Log message:
Don't increment the DLM reference count when connecting to an already
extant lockspace.
fixes bz#157295
Patches:
http://sources.redhat.com/cgi-bin/cvsweb.cgi/cluster/dlm-kernel/src/lockspace.c.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.19.2.6&r2=1.19.2.7
^ permalink raw reply [flat|nested] 8+ messages in thread
* cluster/dlm-kernel/src lockspace.c
@ 2005-03-26 4:43 teigland
0 siblings, 0 replies; 8+ messages in thread
From: teigland @ 2005-03-26 4:43 UTC (permalink / raw)
To: cluster-cvs
CVSROOT: /cvs/cluster
Module name: cluster
Branch: RHEL4
Changes by: teigland@sourceware.org 2005-03-26 04:43:51
Modified files:
dlm-kernel/src : lockspace.c
Log message:
On Fri, Mar 25, 2005 at 03:22:38PM -0800, Daniel McNeil wrote:
Looking at the code, the problem is a race condition between
dlm_astd() and release_lockspace(). dlm_astd can pull an
lkb off the ast_queue and still be processing it while the
release_lockspace() is running calls dlm_dir_clear() and
then kfree()s ls->ls_dirtbl. When dlm_astd() calls
release_rsb() it leads to a dlm_dir_remove() which accesses
the freed ls_dirtbl which is freed. With slab debug, this
leads a spinning write_lock() and a hung umount. My machines
are 2 cpu systems which also might expose the race condition.
The fix is below and is fairly simple, just do the astd_suspend()
in release_lockspace() before the dlm_dir_clear() and kfree().
That way astd won't be process lkb on the astqueue will it
is being freed.
Patches:
http://sources.redhat.com/cgi-bin/cvsweb.cgi/cluster/dlm-kernel/src/lockspace.c.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.19.2.5&r2=1.19.2.6
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2006-04-18 14:55 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-03-26 4:43 cluster/dlm-kernel/src lockspace.c teigland
2005-03-26 4:43 teigland
2005-06-28 13:11 pcaulfield
2005-08-31 6:51 teigland
2005-11-14 15:25 teigland
2005-11-14 15:27 teigland
2006-04-18 14:54 teigland
2006-04-18 14:55 teigland
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 read-only IMAP folder(s) and NNTP newsgroup(s).