NetBSD Problem Report #41923

From bouyer@antioche.eu.org  Sun Aug 23 11:21:52 2009
Return-Path: <bouyer@antioche.eu.org>
Received: from mail.netbsd.org (mail.netbsd.org [204.152.190.11])
	by www.NetBSD.org (Postfix) with ESMTP id 648AA63C2D1
	for <gnats-bugs@gnats.NetBSD.org>; Sun, 23 Aug 2009 11:21:52 +0000 (UTC)
Message-Id: <200908231121.n7NBLkMK009290@rochebonne.antioche.eu.org>
Date: Sun, 23 Aug 2009 13:21:46 +0200 (CEST)
From: Manuel Bouyer <bouyer@antioche.eu.org>
Reply-To: bouyer@antioche.eu.org
To: gnats-bugs@gnats.NetBSD.org
Subject: assertion "cur != owner" failed
X-Send-Pr-Version: 3.95

>Number:         41923
>Category:       kern
>Synopsis:       assertion "cur != owner" failed
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    kern-bug-people
>State:          closed
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Aug 23 11:25:00 +0000 2009
>Closed-Date:    Mon Sep 28 21:03:57 +0000 2009
>Last-Modified:  Mon Sep 28 21:03:57 +0000 2009
>Originator:     Manuel Bouyer
>Release:        NetBSD 5.0_STABLE
>Organization:
>Environment:
System: NetBSD ftp.lip6.fr 5.0_STABLE NetBSD 5.0_STABLE (FTP) #0: Sun Aug 16 00:13:41 CEST 2009  bouyer@swing:/home/src/amd64/obj/home/src/src-5/src/sys/arch/amd64/compile/FTP amd64
Architecture: amd64
Machine: amd64
>Description:

This heavily-loaded ftp/http server running a DIAGNOSCTIC kernel paniced with:
panic: kernel diagnostic assertion "cur != owner" failed: file "/home/src/src-5/src/sys/kern/kern_turnstile.c", line 289                                        

below are informations collected from ddb

fatal breakpoint trap in supervisor mode
trap type 1 code 0 rip ffffffff803d4385 cs 8 rflags 246 cr2  ffff80007cf66000 cpl 7 rsp ffff80007e62f580                                                        
Stopped in pid 4963.1 (rsync) at        netbsd:breakpoint+0x5:  leave
db{0}> tr
breakpoint() at netbsd:breakpoint+0x5
panic() at netbsd:panic+0x24d
__kernassert() at netbsd:__kernassert+0x2d
turnstile_block() at netbsd:turnstile_block+0x50f
rw_vector_enter() at netbsd:rw_vector_enter+0x209
vlockmgr() at netbsd:vlockmgr+0xf6
VOP_LOCK() at netbsd:VOP_LOCK+0x64
vn_lock() at netbsd:vn_lock+0xd9
cache_lookup() at netbsd:cache_lookup+0x201
ufs_lookup() at netbsd:ufs_lookup+0xcd
VOP_LOOKUP() at netbsd:VOP_LOOKUP+0x80
lookup() at netbsd:lookup+0x34b
namei() at netbsd:namei+0x1a4
do_sys_stat() at netbsd:do_sys_stat+0x44
sys___lstat30() at netbsd:sys___lstat30+0x2a
syscall() at netbsd:syscall+0xb6
db{0}> mach cpu 1
using CPU 1
db{0}> tr
cache_lock_cpus() at netbsd:cache_lock_cpus+0x47
cache_reclaim() at netbsd:cache_reclaim+0x78
cache_thread() at netbsd:cache_thread+0x15
db{0}> ps /l
PID    LID S CPU     FLAGS       STRUCT LWP *               NAME WAIT
17470    1 3   0         4   ffff8000c1414400               ftpd biowait
3667     1 3   0        84   ffff8000ea9b7040               ftpd netio
13911    1 3   1        84   ffff8000c81e7420               ftpd netio
20741    1 3   0        84   ffff8000be41a040               ftpd netio
12033    1 3   1        84   ffff8000803eeba0               ftpd netio
12395    1 3   0        84   ffff800079a8e420               ftpd netio
26923    1 3   1        84   ffff8000c81e7800               ftpd netio
26093    1 3   0        84   ffff8000ea8deba0               ftpd netio
14859    1 3   0        84   ffff800078cb4be0               ftpd netio
4025     1 3   0        84   ffff8000d131c3e0               ftpd netio
15234    1 3   1         4   ffff8000ea84d7c0              rsync tstile
25220    1 3   1        84   ffff8000c009b7e0               ftpd netio
19517    1 3   1        84   ffff8000ea84d3e0               ftpd netio
16211    1 3   0        84   ffff8000ea9b7420               ftpd netio
22862    1 3   0        84   ffff8000a7ed6420               ftpd netio
5781     1 3   0        84   ffff80007d0077e0               ftpd netio
17789    1 3   1        84   ffff8000d2dd67c0               ftpd netio
23289    1 3   1        84   ffff8000c4fc4420               ftpd netio
11015    1 3   0        84   ffff8000db60f020               ftpd netio
18145    1 3   1        84   ffff800078cb4040               ftpd netio
4963 >   1 3   0         4   ffff80007e5523e0              rsync tstile
29380    1 3   0        84   ffff8000c0c6e400                 sh wait
13200    1 3   1        84   ffff8000c1414020                 sh wait
18735    1 3   0        84   ffff8000c1cdd3e0               cron piperd
8540     1 3   1        84   ffff8000c0a31ba0               ftpd netio
26277    1 3   0        84   ffff800081e977e0               ftpd netio
8196     1 3   1        84   ffff8000d2b1ebc0               ftpd netio
17900    1 3   0        84   ffff800079ac13e0              httpd socket
11177    1 3   0        84   ffff800079ac1000              httpd socket
20078    1 3   0        84   ffff8000884bb040              httpd socket
29056    1 3   0        84   ffff8000884bb420              httpd select
13590    1 3   0        84   ffff8000789f6040              httpd select
22095    1 3   0        84   ffff8000c009bbc0              httpd socket
16709    1 3   0        84   ffff8000d29987c0              httpd select
3259     1 3   0        84   ffff8000c237dba0              httpd select
29406    1 3   0         4   ffff8000d29983e0              httpd biowait
7776     1 3   0        84   ffff8000788eb020              httpd socket
26777    1 3   1         4   ffff8000ea84d000               ftpd biowait
18393    1 3   0        84   ffff800079ac17c0               ftpd socket
13109    1 3   1        84   ffff8000ea8de3e0               ftpd netio
25029    1 3   0        84   ffff8000d2b1e020              httpd select
8564     1 3   1        84   ffff8000d131c000              httpd select
19504    1 3   0        84   ffff8000c237d000              httpd socket
21131    1 3   0        84   ffff80007dd29000              httpd select
11683    1 3   0         4   ffff8000803ee7c0              httpd biowait
15067    1 3   0        84   ffff8000ea9b7800              httpd socket
28697    1 3   0        84   ffff8000be41abe0              httpd select
2582     1 3   0        84   ffff80007876aba0              httpd select
22682    1 3   0        84   ffff8000d2b1e400              httpd select
15687    1 3   0        84   ffff80007e2237e0              httpd socket
22134    1 3   0        84   ffff8000bdaa6020              httpd select
23329    1 3   0        84   ffff8000c237d7c0              httpd select
11072    1 3   1        84   ffff8000d1a1b420              httpd select
10488    1 3   1        84   ffff800079a8e800              httpd select
19966    1 3   0        84   ffff8000c0c6e020              httpd select
9698     1 3   0        84   ffff80008b30c040              httpd select
8012     1 3   0        84   ffff8000c02ef800              httpd socket
16946    1 3   1        84   ffff8000789f6800              httpd select
25902    1 3   1        84   ffff8000803ee3e0              httpd select
5839     1 3   1        84   ffff80007e552ba0              httpd socket
21391    1 3   1        84   ffff80008b30cbe0              httpd select
10580    1 3   0        84   ffff8000bdaa6bc0              httpd select
24273    1 3   1        84   ffff80007dd3fbc0             pickup kqueue
5450     1 3   0        84   ffff800079be37e0              httpd select
24999    1 3   0        84   ffff8000d2dd63e0              httpd select
18029    1 3   0        84   ffff8000d2dd6000              httpd select
12100    1 3   0        84   ffff80008b30c800              httpd select
22037    1 3   0        84   ffff80008b30c420              httpd select
3199     1 3   1        84   ffff8000db60fbc0              httpd select
20980    1 3   0        84   ffff80007d045bc0              httpd socket
9017     1 3   1        84   ffff8000db61c800              httpd select
167      1 3   0        84   ffff8000c1414bc0              httpd socket
11631    1 3   1        84   ffff800084f81040               ftpd netio
27417    1 3   0        84   ffff8000bb83cba0               ftpd netio
19122    1 3   0        84   ffff8000be41a420               ftpd netio
28070    1 3   0        84   ffff8000ea8de000               ftpd netio
26291    1 3   0        84   ffff80007e223bc0              httpd select
24103    1 3   0        84   ffff8000c0c6ebc0              httpd select
23727    1 3   0        84   ffff8000c02d9bc0              httpd select
28388    1 3   1        84   ffff8000bb827800              httpd select
28834    1 3   0        84   ffff8000d1a1b800              httpd select
25921    1 3   0        84   ffff80007d007020              httpd socket
25277    1 3   0        84   ffff8000789f6420              rsync select
10091    1 3   0        84   ffff8000c81fb3e0              rsync select
8471     1 3   0        84   ffff8000eaabfbc0              httpd select
4590     1 3   1        84   ffff8000eaabf400              httpd select
6233     1 3   1        84   ffff80007fa21bc0              httpd select
22861    1 3   1        84   ffff80007fa217e0              httpd select
17893    1 3   0        84   ffff8000a7ed57e0              httpd socket
9857     1 3   0        84   ffff8000a7ed5400              httpd select
23763    1 3   1        84   ffff8000a7ed5020              httpd select
15877    1 3   1        84   ffff8000803ee000              httpd select
3920     1 3   1        84   ffff8000db60f400              httpd select
9723     1 3   0        84   ffff8000c1cc6040              httpd socket
14412    1 3   0        84   ffff8000eaaa2ba0              httpd select
16286    1 3   0        84   ffff8000c4fc4800              httpd socket
13832    1 3   0        84   ffff8000c4fc4040              httpd select
27437    1 3   0        84   ffff800078a99000              httpd select
10678    1 3   0        84   ffff8000a7ed6be0              httpd select
12570    1 3   0        84   ffff8000c009b020              httpd select
14938    1 3   0        84   ffff800079929420              httpd socket
539      1 3   1        84   ffff8000bb83c7c0              httpd select
4340     1 3   0        84   ffff8000db61c420              httpd select
18535    1 3   0        84   ffff800079be3bc0              httpd socket
22458    1 3   1        84   ffff8000d1a1bbe0              httpd select
8250     1 3   0        84   ffff800078cb4800              httpd socket
9268     1 3   0        84   ffff8000d2dd6ba0              httpd socket
18929    1 3   0        84   ffff8000c1cc6420                 sh wait
15761    1 3   0        84   ffff8000992bbbe0                 sh wait
18137    1 3   0        84   ffff8000c1cdd7c0               cron piperd
1843     1 3   1        84   ffff8000c02d9020              httpd select
171      1 3   0        84   ffff8000bb827040              httpd select
8060     1 3   0        84   ffff800079a8e040              httpd socket
16962    1 3   0        84   ffff800078cb4420              httpd socket
17944    1 3   1        84   ffff80007d094800              httpd select
21578    1 3   1        84   ffff80007dd297c0              httpd socket
24669    1 3   0        84   ffff800079a8ebe0              httpd select
22327    1 3   0        84   ffff8000c1cddba0              httpd select
3701     1 3   0        84   ffff800079bf7040              httpd select
2936     1 3   0        84   ffff8000ea891be0              httpd select
19628    1 3   0        84   ffff800079be3020              httpd select
6997     1 3   0        84   ffff8000c02ef420              httpd select
28848    1 3   0        84   ffff8000db60f7e0              httpd select
10991    1 3   0        84   ffff8000be495020              httpd select
17332    1 3   0        84   ffff8000d2b1e7e0              httpd select
25888    1 3   1        84   ffff800078ca0bc0              httpd select
14899    1 3   0        84   ffff8000eaabf020              httpd socket
17066    1 3   1        84   ffff8000db61cbe0              httpd select
18749    1 3   0         4   ffff80007dd3f7e0              httpd biowait
9843     1 3   0        84   ffff8000c1cdd000              httpd socket
22982    1 3   0        84   ffff8000d2998ba0              httpd select
6723     1 3   0        84   ffff8000d2998000              httpd select
10366    1 3   1        84   ffff8000c009b400              httpd socket
28297    1 3   0        84   ffff8000be495400              httpd socket
4943     1 3   0        84   ffff800081e97bc0              httpd socket
18737    1 3   0        84   ffff8000eaaa27c0              httpd select
11818    1 3   0         4   ffff8000d2992be0              httpd uvn_fp2
8277     1 3   0        84   ffff8000be41a800              httpd select
14765    1 3   0        84   ffff80007d007400              httpd select
24462    1 3   0        84   ffff800079ad57e0              httpd select
21383    1 3   0        84   ffff8000944ac020               ftpd socket
19937    1 3   0        84   ffff8000a7ed6040              httpd select
23555    1 3   0         4   ffff8000d37ea7c0              httpd biowait
18084    1 3   0        84   ffff8000d37ea3e0              httpd select
12998    1 3   1        84   ffff8000d131cba0               ftpd socket
21351    1 3   0        84   ffff80007e223020              httpd select
21455    1 3   1        84   ffff8000db61e020              httpd select
10374    1 3   1        84   ffff8000c0c6e7e0              httpd select
22179    1 3   1        84   ffff8000c14147e0              httpd select
3177     1 3   0        84   ffff8000bdaa6400              httpd socket
27357    1 3   0        84   ffff8000bb827be0               ftpd netio
9304     1 3   0        84   ffff8000c81e7040              httpd select
27688    1 3   0        84   ffff8000bb827420              httpd socket
19333    1 3   0        84   ffff800081e97020              httpd select
22709    1 3   0        84   ffff8000c4fc4be0              httpd select
26043    1 3   1        84   ffff800079bf7420              httpd select
7588     1 3   1        84   ffff8000d2992800              httpd select
7601     1 3   1        84   ffff8000eaaa2000              httpd socket
587      1 3   1        84   ffff8000bdaa67e0              httpd select
4800     1 3   0        84   ffff8000eaaa23e0              httpd select
12489    1 3   0        84   ffff80007fa21400              httpd socket
27664    1 3   0        84   ffff8000c02d97e0              httpd socket
3477     1 3   0        84   ffff80007d007bc0              httpd select
10071    1 3   0        84   ffff80007ffe4040              httpd select
16950    1 3   1        84   ffff800079263ba0              httpd select
26171    1 3   0        84   ffff8000c0a317c0              httpd select
16942    1 3   1        84   ffff8000c05b5800              httpd select
13687    1 3   0        84   ffff8000c1cc6800              httpd socket
12734    1 3   0        84   ffff8000ea8de7c0              httpd socket
11254    1 3   1        84   ffff8000d2992420              httpd select
15471    1 3   0        84   ffff8000bb83c3e0              httpd select
16590    1 3   1        84   ffff8000ea84dba0              httpd select
22310    1 3   1        84   ffff800084f81be0              httpd select
28012    1 3   0        84   ffff8000d1a1b040              httpd select
22229    1 3   0        84   ffff8000d37ea000              httpd socket
315      1 3   0        84   ffff8000a7ed5bc0              httpd select
21931    1 3   0        84   ffff800081e97400              rsync select
2676     1 3   1        84   ffff8000a7ed6800              rsync select
16875    1 3   0        84   ffff80007dd29ba0                 sh wait
10627    1 3   0        84   ffff800079ad5bc0                 sh wait
10474    1 3   0        84   ffff800079be3400               cron piperd
4583     1 3   0        84   ffff8000792ad040              httpd socket
4626     1 3   0        84   ffff80007d0457e0              httpd select
1454     1 3   0        84   ffff80007fa21020               tcsh ttyraw
854      1 3   1        84   ffff800078ca07e0               tcsh ttyraw
785      1 3   1        84   ffff80007e5527c0                ksh pause
1247     1 3   0        84   ffff80007e223400               tcsh pause
862      1 3   0        84   ffff80007d094420       screen-4.0.3 select
444      1 3   1        84   ffff800078a993e0              getty ttyraw
437      1 3   0        84   ffff800078a997c0              getty ttyraw
445      1 3   0        84   ffff8000788eb7e0              getty ttyraw
435      1 3   1        84   ffff80007c753000              getty ttyraw
358      1 3   0        84   ffff8000789f6be0               cron nanoslp
402      1 3   1        84   ffff8000788eb400              inetd kqueue
395      1 3   0        84   ffff8000788ebbc0               qmgr kqueue
337      1 3   1        84   ffff80007876a000             master kqueue
286      1 3   1        84   ffff80007d094040               sshd select
259      1 3   1        84   ffff80007876a7c0               ntpd pause
141      1 3   1        84   ffff80007d045400              ipmon nanoslp
136      1 3   1        84   ffff80007d094be0            syslogd kqueue
1        1 3   1        84   ffff800056cdf400               init wait
0       50 3   0       204   ffff80007d045020            physiod physiod
              49 3   1       204   ffff80007c7533e0        vmem_rehash vmem_rehash
              48 3   1       204   ffff80007c7537c0           aiodoned aiodoned
              47 3   0       204   ffff80007c753ba0            ioflush syncer
              46 3   0       204   ffff80007c749040           pgdaemon pgdaemon
              45 3   1       204   ffff800056cde7c0            raidio2 raidiow
              44 3   1       204   ffff800056cde3e0              raid2 rfwcond
              43 3   0       204   ffff800056cdd420          cryptoret crypto_wait
              42 3   0       204   ffff800056cde000               ipmi ipmi_poll
              41 3   1       204   ffff80007c749420              ipmi0 ipmi0
              40 3   1       204   ffff800056cdeba0             sysmon smtaskq
              39 3   1       204   ffff800056cdfbc0         usbtask-dr usbtsk
              38 3   1       204   ffff800056cdf7e0         usbtask-hc usbtsk
              37 3   0       204   ffff800056cdf020               usb0 usbevt
              36 3   1       204   ffff80007c749800          atapibus1 sccomp
              34 3   1       204   ffff80007c749be0          atapibus0 sccomp
              32 3   1       204   ffff800056cdd040              unpgc unpgc
              23 3   1       204   ffff800056cdd800            atabus3 atath
              22 3   1       204   ffff800056cddbe0            atabus2 atath
              21 3   0       204   ffff800056cda020            atabus1 atath
              20 3   1       204   ffff800056cda400            atabus0 atath
              19 3   0       204   ffff800056cda7e0           scsibus1 sccomp
              18 3   0       204   ffff800056cdabc0           scsibus0 sccomp
              17 3   1       204   ffff800056cd8000            xcall/1 xcall
              16 1   1       204   ffff800056cd83e0          softser/1
              15 1   1       204   ffff800056cd87c0          softclk/1
              14 1   1       204   ffff800056cd8ba0          softbio/1
              13 1   1       204   ffff800056ccf040          softnet/1
              12 1   1       205   ffff800056ccf420             idle/1
              11 3   0       204   ffff800056ccf800           pmfevent pmfevent
              10 3   0       204   ffff800056ccfbe0           nfssilly nfssilly
           >   9 7   1       204   ffff800056ccc020            cachegc
               8 3   1       204   ffff800056ccc400              vrele vrele
               7 3   0       204   ffff800056ccc7e0            xcall/0 xcall
               6 1   0       204   ffff800056cccbc0          softser/0
               5 1   0       204   ffff800056cca000          softclk/0
               4 1   0       204   ffff800056cca3e0          softbio/0
               3 1   0       204   ffff800056cca7c0          softnet/0
               2 1   0       205   ffff800056ccaba0             idle/0
               1 3   0       204   ffffffff806cbd20            swapper schedule


>How-To-Repeat:
	run DIAGNOSTIC kernel and wait ?
>Fix:
	unknown

>Release-Note:

>Audit-Trail:
From: Manuel Bouyer <bouyer@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/41923 CVS commit: src/sys/kern
Date: Sun, 13 Sep 2009 14:38:20 +0000

 Module Name:	src
 Committed By:	bouyer
 Date:		Sun Sep 13 14:38:20 UTC 2009

 Modified Files:
 	src/sys/kern: kern_turnstile.c

 Log Message:
 PR kern/41923: assertion "cur != owner" failed
 In the for(;;) loop of turnstile_block(), the lock owner can change while
 cur's lock is released (cur's lock is also the tschain_t's mutex).
 Remove the KASSERT about owner being invariant and try to deal with the
 fact that the owner can change instead.
 http://mail-index.netbsd.org/tech-kern/2009/08/24/msg005957.html
 and followups.


 To generate a diff of this commit:
 cvs rdiff -u -r1.24 -r1.25 src/sys/kern/kern_turnstile.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

From: Soren Jacobsen <snj@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/41923 CVS commit: [netbsd-5] src/sys/kern
Date: Mon, 28 Sep 2009 01:38:25 +0000

 Module Name:	src
 Committed By:	snj
 Date:		Mon Sep 28 01:38:24 UTC 2009

 Modified Files:
 	src/sys/kern [netbsd-5]: kern_turnstile.c

 Log Message:
 Pull up following revision(s) (requested by bouyer in ticket #1028):
 	sys/kern/kern_turnstile.c: revision 1.25 via patch
 PR kern/41923: assertion "cur != owner" failed
 In the for(;;) loop of turnstile_block(), the lock owner can change while
 cur's lock is released (cur's lock is also the tschain_t's mutex).
 Remove the KASSERT about owner being invariant and try to deal with the
 fact that the owner can change instead.
 http://mail-index.netbsd.org/tech-kern/2009/08/24/msg005957.html
 and followups.


 To generate a diff of this commit:
 cvs rdiff -u -r1.23 -r1.23.4.1 src/sys/kern/kern_turnstile.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

State-Changed-From-To: open->closed
State-Changed-By: bouyer@NetBSD.org
State-Changed-When: Mon, 28 Sep 2009 21:03:57 +0000
State-Changed-Why:
Fix commied and pulled up


>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.