NetBSD Problem Report #12189

Received: (qmail 25916 invoked from network); 12 Feb 2001 10:51:48 -0000
Message-Id: <200102121051.f1CApjP07846@nethack.cs.hut.fi>
Date: Mon, 12 Feb 2001 12:51:45 +0200 (EET)
From: Antti Kantee <pooka@iki.fi>
Reply-To: pooka@iki.fi
To: gnats-bugs@gnats.netbsd.org
Subject: processes hang in vnlock
X-Send-Pr-Version: 3.95

>Number:         12189
>Category:       kern
>Synopsis:       vnd deadlock
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    kern-bug-people
>State:          analyzed
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Feb 12 10:52:01 +0000 2001
>Closed-Date:    
>Last-Modified:  Sun Sep 03 19:50:01 +0000 2006
>Originator:     Antti Kantee
>Release:        NetBSD/sparc 1.5
>Organization:
>Environment:
System: NetBSD/sparc 1.5 w/ softdeps


>Description:

The system had been up for some 70 days and was happily running along, when
I noticed that I couldn't login anymore or start another shell. The processes
that were running (eg. irc) continued to work fine and the machine responded
to ping. I could even do a root login to a certain point: I saw motd, but
after that it hang.

(gdb) xps
              proc   pid     flag st              wchan comm
        0xf1ea9948 15485        4  4         0xf1ae3a44 sh (vnlock)
        0xf1ea97a0 15484     4084  4         0xf1ea97a0 sh (wait)
        0xf1ea95f8 15483       84  4         0xf077224c cron (netio)
        0xf1ea9450 15482        4  4         0xf1ae3a44 sh (vnlock)
        0xf1ea92a8 15481     4084  4         0xf1ea92a8 sh (wait)
        0xf1ea9100 15480       84  4         0xf0772054 cron (netio)
        0xf1e8fe38 15479        4  4         0xf1ae3a44 sh (vnlock)
        0xf1e8fc90 15478     4084  4         0xf1e8fc90 sh (wait)
        0xf1e8fae8 15477       84  4         0xf0736e14 cron (netio)
        0xf1e8f940 15476        4  4         0xf1ae3a44 sh (vnlock)
        0xf1e8f798 15475     4084  4         0xf1e8f798 sh (wait)
        0xf1e8f5f0 15474       84  4         0xf0736c1c cron (netio)
        0xf1e8f448 15473        4  4         0xf1ae3a44 sshd (vnlock)
        0xf1e8f2a0 15472        4  4         0xf1ae3a44 sh (vnlock)
        0xf1e8f0f8 15471     4084  4         0xf1e8f0f8 sh (wait)
          0xf1e78c88 15469        4  4         0xf1ae3a44 sh (vnlock)
        0xf1e78ae0 15468        4  4         0xf1ae3a44 sh (vnlock)
        0xf1e78938 15467      114  4         0xf1ae3a44 cron (vnlock)
        0xf1e78790 15466        4  4         0xf1e78790 cron (ppwait)
        0xf1e785e8 15465     4084  4         0xf1e785e8 sh (wait)
        0xf1e78440 15464     4084  4         0xf1e78440 sh (wait)
---Type <return> to continue, or q <return> to quit---
        0xf1e78298 15463       84  4         0xf073643c cron (netio)
        0xf1e780f0 15462       84  4         0xf073619c cron (netio)
        0xf1e62e28 15461        4  4         0xf1ae3a44 sh (vnlock)
        0xf1e62c80 15460     4084  4         0xf1e62c80 sh (wait)
        0xf1e62ad8 15459       84  4         0xf0702f5c cron (netio)
        0xf1e62930 15458        4  4         0xf1ae3a44 sh (vnlock)
        0xf1e62788 15457     4084  4         0xf1e62788 sh (wait)
        0xf1e625e0 15456       84  4         0xf0702d64 cron (netio)
        0xf1e62438 15455        4  4         0xf1ae3a44 sh (vnlock)
        0xf1e62290 15454     4084  4         0xf1e62290 sh (wait)
        0xf1e620e8 15453       84  4         0xf0702b6c cron (netio)
        0xf1e47e20 15452        4  4         0xf1ae3a44 sh (vnlock)
        0xf1e47c78 15451     4084  4         0xf1e47c78 sh (wait)
        0xf1e47ad0 15450       84  4         0xf0702974 cron (netio)
        0xf1e47928 15449        4  4         0xf1ae3a44 sh (vnlock)
        0xf1e47780 15448     4084  4         0xf1e47780 sh (wait)
        0xf1e475d8 15447       84  4         0xf070277c cron (netio)
        0xf1e47430 15446        4  4         0xf1ae3a44 sh (vnlock)
        0xf1e47288 15445        4  4         0xf1ae3a44 sh (vnlock)
        0xf1e470e0 15444      114  4         0xf1ae3a44 cron (vnlock)
        0xf1e2fe18 15443     4084  4         0xf1e2fe18 sh (wait)
        0xf1e2fc70 15442     4084  4         0xf1e2fc70 sh (wait)
        0xf1e2fac8 15441        4  4         0xf1e2fac8 cron (ppwait)
---Type <return> to continue, or q <return> to quit---
        0xf1e2f920 15440       84  4         0xf070238c cron (netio)
        0xf1e2f778 15439       84  4         0xf07020ec cron (netio)
        0xf1e2f5d0 15438        4  4         0xf1ae3a44 sh (vnlock)
        0xf1e2f428 15437     4084  4         0xf1e2f428 sh (wait)
        0xf1e2f280 15436       84  4         0xf06c4ecc cron (netio)
        0xf1e2f0d8 15435        4  4         0xf1ae3a44 sh (vnlock)
        0xf1e16e10 15434     4084  4         0xf1e16e10 sh (wait)
        0xf1e16c68 15433       84  4         0xf06c4cd4 cron (netio)
        0xf1e16ac0 15432        4  4         0xf1ae3a44 sh (vnlock)
        0xf1e16918 15431     4084  4         0xf1e16918 sh (wait)
        0xf1e16770 15430       84  4         0xf06c4adc cron (netio)
        0xf1e165c8 15429        4  4         0xf1ae3a44 sh (vnlock)
        0xf1e16420 15428     4084  4         0xf1e16420 sh (wait)
        0xf1e16278 15427       84  4         0xf06c48e4 cron (netio)
        0xf1e160d0 15426        4  4         0xf1ae3a44 sh (vnlock)
        0xf1dffe08 15425     4084  4         0xf1dffe08 sh (wait)
        0xf1dffc60 15424       84  4         0xf06c46ec cron (netio)
        0xf1dffab8 15423        4  4         0xf1ae3a44 sh (vnlock)
        0xf1dff910 15422        4  4         0xf1ae3a44 sh (vnlock)
        0xf1dff768 15421     4084  4         0xf1dff768 sh (wait)
        0xf1dff5c0 15420      114  4         0xf1ae3a44 cron (vnlock)
        0xf1dff418 15419     4084  4         0xf1dff418 sh (wait)
        0xf1dff270 15418        4  4         0xf1dff270 cron (ppwait)
---Type <return> to continue, or q <return> to quit---
        0xf1dff0c8 15417       84  4         0xf06c405c cron (netio)
        0xf1de7e00 15416       84  4         0xf06c459c cron (netio)
        0xf1de7c58 15415        4  4         0xf1ae3a44 sh (vnlock)
        0xf1de7ab0 15414     4084  4         0xf1de7ab0 sh (wait)
        0xf1de7908 15413       84  4         0xf0683e1c cron (netio)
        0xf1de7760 15412        4  4         0xf1ae3a44 sh (vnlock)
        0xf1de75b8 15411     4084  4         0xf1de75b8 sh (wait)
        0xf1de7410 15410       84  4         0xf0683c24 cron (netio)
        0xf1de7268 15409        4  4         0xf1ae3a44 sh (vnlock)
        0xf1de70c0 15408     4084  4         0xf1de70c0 sh (wait)
        0xf1dcedf8 15407       84  4         0xf0683a2c cron (netio)
        0xf1dcec50 15406        4  4         0xf1ae3a44 sh (vnlock)
        0xf1dceaa8 15405     4084  4         0xf1dceaa8 sh (wait)
        0xf1dce900 15404       84  4         0xf0683834 cron (netio)
        0xf1dce758 15403        4  4         0xf1ae3a44 sh (vnlock)
        0xf1dce5b0 15402     4084  4         0xf1dce5b0 sh (wait)
        0xf1dce408 15401       84  4         0xf068363c cron (netio)
        0xf1dce260 15400        4  4         0xf1ae3a44 sh (vnlock)
        0xf1dce0b8 15399        4  4         0xf1ae3a44 sh (vnlock)
        0xf1db8df0 15398      114  4         0xf1ae3a44 cron (vnlock)
        0xf1db8c48 15397     4084  4         0xf1db8c48 sh (wait)
        0xf1db8aa0 15396     4084  4         0xf1db8aa0 sh (wait)
        0xf1db88f8 15395        4  4         0xf1db88f8 cron (ppwait)
---Type <return> to continue, or q <return> to quit---
        0xf1db8750 15394       84  4         0xf068324c cron (netio)
        0xf1db85a8 15393       84  4         0xf0645f64 cron (netio)
        0xf1db8400 15392        4  4         0xf1ae3a44 sh (vnlock)
        0xf1db8258 15391     4084  4         0xf1db8258 sh (wait)
        0xf1db80b0 15390       84  4         0xf0645d6c cron (netio)
        0xf1d9fde8 15389        4  4         0xf1ae3a44 sh (vnlock)
        0xf1d9fc40 15388     4084  4         0xf1d9fc40 sh (wait)
        0xf1d9fa98 15387       84  4         0xf0645b74 cron (netio)
        0xf1d9f8f0 15386        4  4         0xf1ae3a44 sh (vnlock)
        0xf1d9f748 15385     4084  4         0xf1d9f748 sh (wait)
        0xf1d9f5a0 15384       84  4         0xf064597c cron (netio)
        0xf1d9f3f8 15383        4  4         0xf1ae3a44 sh (vnlock)
        0xf1d9f250 15382     4084  4         0xf1d9f250 sh (wait)
        0xf1d9f0a8 15381       84  4         0xf0645784 cron (netio)
        0xf1d86de0 15380        4  4         0xf1ae3a44 sh (vnlock)
        0xf1d86c38 15379     4084  4         0xf1d86c38 sh (wait)
        0xf1d86a90 15378       84  4         0xf064558c cron (netio)
        0xf1d868e8 15377        4  4         0xf1ae3a44 sh (vnlock)
        0xf1d86740 15376        4  4         0xf1ae3a44 sh (vnlock)
        0xf1d86598 15375     4084  4         0xf1d86598 sh (wait)
        0xf1d863f0 15374      114  4         0xf1ae3a44 cron (vnlock)
        0xf1d86248 15373     4084  4         0xf1d86248 sh (wait)
        0xf1d860a0 15372        4  4         0xf1d860a0 cron (ppwait)
---Type <return> to continue, or q <return> to quit--- 
        0xf1d6ddd8 15371       84  4         0xf0607eb4 cron (netio)
        0xf1d6dc30 15370       84  4         0xf064543c cron (netio)
        0xf1d6da88 15369        4  4         0xf1ae3a44 sh (vnlock)
        0xf1d6d8e0 15368     4084  4         0xf1d6d8e0 sh (wait)
        0xf1d66d590 15366        4  4         0xf1ae3a44 sh (vnlock)
        0xf1d6d3e8 15365     4084  4         0xf1d6d3e8 sh (wait)
        0xf1d6d240 15364       84  4         0xf0607ac4 cron (netio)
        0xf1d6d098 15363        4  4         0xf1ae3a44 sh (vnlock)
        0xf1d55dd0 15362     4084  4         0xf1d55dd0 sh (wait)
        0xf1d55c28 15361       84  4         0xf06078cc cron (netio)
        0xf1d55a80 15360        4  4         0xf1ae3a44 sh (vnlock)
        0xf1d558d8 15359     4084  4         0xf1d558d8 sh (wait)
        0xf1d55730 15358       84  4         0xf06076d4 cron (netio)
        0xf1d55588 15357        4  4         0xf1ae3a44 sh (vnlock)
        0xf1d553e0 15356     4084  4         0xf1d553e0 sh (wait)
        0xf1d55238 15355       84  4         0xf06074dc cron (netio)
        0xf1d55090 15354        4  4         0xf1ae3a44 sh (vnlock)
        0xf1d3ddc8 15353        4  4         0xf1ae3a44 sh (vnlock)
        0xf1d3dc20 15352     4084  4         0xf1d3dc20 sh (wait)
        0xf1d3da78 15351      114  4         0xf1ae3a44 cron (vnlock)
        0xf1d3d8d0 15350     4084  4         0xf1d3d8d0 sh (wait)
        0xf1d3d728 15349        4  4         0xf1d3d728 cron (ppwait)
---Type <return> to continue, or q <return> to quit---
        0xf1d3d580 15348       84  4         0xf060738c cron (netio)
        0xf1d3d3d8 15347       84  4         0xf05c7e24 cron (netio)
        0xf1d3d230 15346        4  4         0xf1ae3a44 sh (vnlock)
        0xf1d3d088 15345     4084  4         0xf1d3d088 sh (wait)
        0xf1d26dc0 15344       84  4         0xf05c7c2c cron (netio)
        0xf1d26c18 15343        4  4         0xf1ae3a44 sh (vnlock)
        0xf1d26a70 15342     4084  4         0xf1d26a70 sh (wait)
        0xf1d268c8 15341       84  4         0xf05c7a34 cron (netio)
        0xf1d26720 15340        4  4         0xf1ae3a44 sh (vnlock)
        0xf1d26578 15339     4084  4         0xf1d26578 sh (wait)
        0xf1d263d0 15338       84  4         0xf05c783c cron (netio)
        0xf1d26228 15337        4  4         0xf1ae3a44 sh (vnlock)
        0xf1d26080 15336     4084  4         0xf1d26080 sh (wait)
        0xf1d0fdb8 15335       84  4         0xf05c7644 cron (netio)
        0xf1d0fc10 15334        4  4         0xf1ae3a44 sh (vnlock)
        0xf1d0fa68 15333     4084  4         0xf1d0fa68 sh (wait)
        0xf1d0f8c0 15332       84  4         0xf05c744c cron (netio)
        0xf1d0f718 15331        4  4         0xf1ae3a44 sh (vnlock)
        0xf1d0f570 15330        4  4         0xf1ae3a44 sh (vnlock)
        0xf1d0f3c8 15329     4084  4         0xf1d0f3c8 sh (wait)
        0xf1d0f220 15328      114  4         0xf1ae3a44 cron (vnlock)
        0xf1d0f078 15327     4084  4         0xf1d0f078 sh (wait)
        0xf1cf5db0 15326        4  4         0xf1cf5db0 cron (ppwait)
---Type <return> to continue, or q <return> to quit---
        0xf1cf5c08 15325       84  4         0xf05c72fc cron (netio)
        0xf1cf5a60 15324       84  4         0xf0596d74 cron (netio)
        0xf1cf58b8 15323        4  4         0xf1ae3a44 sh (vnlock)
        0xf1cf5710 15322     4084  4         0xf1cf5710 sh (wait)
        0xf1cf5568 15321       84  4         0xf0596b7c cron (netio)
        0xf1cf53c0 15320        4  4         0xf1ae3a44 sh (vnlock)
        0xf1cf5218 15319     4084  4         0xf1cf5218 sh (wait)
        0xf1cf5070 15318       84  4         0xf0596984 cron (netio)
        0xf1cdeda8 15317        4  4         0xf1ae3a44 sh (vnlock)
        0xf1cdec00 15316     4084  4         0xf1cdec00 sh (wait)
        0xf1cdea58 15315       84  4         0xf059678c cron (netio)
        0xf1cde8b0 15314        4  4         0xf1ae3a44 sh (vnlock)
        0xf1cde708 15313     4084  4         0xf1cde708 sh (wait)
        0xf1cde560 15312       84  4         0xf0596594 cron (netio)
        0xf1cde3b8 15311     4004  4         0xf1ae3a44 date (vnlock)
        0xf1cde210 15309     4084  4         0xf05962f4 sh (netio)
        0xf1cde068 15308     4004  4         0xf1ae3a44 sh (vnlock)
        0xf1cc5da0 15307       84  4         0xf05960fc cron (netio)
        0xf1cc5bf8 15306        4  4         0xf1ae3a44 sh (vnlock)
        0xf1cc5a50 15303     4084  4         0xf1cc5a50 sh (wait)
        0xf1cc58a8 15302       84  4         0xf0559ebc cron (netio)
        0xf1cc5700 15301        4  4         0xf1ae3a44 sh (vnlock)
        0xf1cc5558 15300        4  4         0xf1ae3a44 sh (vnlock)
---Type <return> to continue, or q <return> to quit---
        0xf1cc53b0 15299     4084  4         0xf1cc53b0 sh (wait)
        0xf1cc5208 15298      114  4         0xf1ae3a44 cron (vnlock)
        0xf1cc5060 15297     4084  4         0xf1cc5060 sh (wait)
        0xf1cacd98 15296        4  4         0xf1cacd98 cron (ppwait)
        0xf1cacbf0 15295       84  4         0xf0559d6c cron (netio)
        0xf1caca48 15294       84  4         0xf055982c cron (netio)
        0xf1cac8a0 15293        4  4         0xf1ae3a44 sh (vnlock)
        0xf1cac6f8 15292     4084  4         0xf1cac6f8 sh (wait)
        0xf1cac550 15291       84  4         0xf0559634 cron (netio)
        0xf1cac3a8 15290        4  4         0xf1ae3a44 sh (vnlock)
        0xf1cac200 15289     4084  4         0xf1cac200 sh (wait)
        0xf1cac058 15288       84  4         0xf055943c cron (netio)
        0xf1c94d90 15287        4  4         0xf1ae3a44 sh (vnlock)
        0xf1c94be8 15286     4084  4         0xf1c94be8 sh (wait)
        0xf1c94a40 15285       84  4         0xf0559244 cron (netio)
        0xf1c94898 15284        4  4         0xf1ae3a44 sh (vnlock)
        0xf1c946f0 15283     4084  4         0xf1c946f0 sh (wait)
        0xf1c94548 15282       84  4         0xf055904c cron (netio)
        0xf1c943a0 15281        4  4         0xf1ae3a44 sh (vnlock)
        0xf1c941f8 15280     4084  4         0xf1c941f8 sh (wait)
        0xf1c94050 15279       84  4         0xf052de0c cron (netio)
        0xf1c7ed88 15278        4  4         0xf1ae3a44 sh (vnlock)
        0xf1c7ebe0 15277        4  4         0xf1ae3a44 sh (vnlock)
---Type <return> to continue, or q <return> to quit---
        0xf1c7ea38 15276      114  4         0xf1ae3a44 cron (vnlock)
        0xf1c7e890 15275     4084  4         0xf1c7e890 sh (wait)
        0xf1c7e6e8 15274     4084  4         0xf1c7e6e8 sh (wait)
        0xf1c7e540 15273        4  4         0xf1c7e540 cron (ppwait)
        0xf1c7e398 15272       84  4         0xf052da1c cron (netio)
        0xf1c7e1f0 15271       84  4         0xf052d77c cron (netio)
        0xf1c7e048 15270        4  4         0xf1ae3a44 sh (vnlock)
        0xf1c68d80 15269     4084  4         0xf1c68d80 sh (wait)
        0xf1c68bd8 15268       84  4         0xf052d584 cron (netio)
        0xf1c24878 15267        4  4         0xf1ae3a44 sh (vnlock)
        0xf1c24a20 15266     4084  4         0xf1c24a20 sh (wait)
        0xf1c24030 15265       84  4         0xf052d38c cron (netio)
        0xf1c68a30 15264        4  4         0xf1ae3a44 sh (vnlock)
        0xf1c68040 15263     4084  4         0xf1c68040 sh (wait)
        0xf1c4dd78 15262       84  4         0xf052d23c cron (netio)
        0xf1c68888 15261        4  4         0xf1ae3a44 sshd (vnlock)
        0xf1c686e0 15260        4  4         0xf1ae3a44 sh (vnlock)
        0xf1c68538 15259     4084  4         0xf1c68538 sh (wait)
        0xf1c68390 15258       84  4         0xf04fff74 cron (netio)
        0xf1c681e8 15257        6  4         0xf1ae3a44 csh (vnlock)
        0xf1b8c1c0 15254        4  4         0xf1ae3a44 sshd (vnlock)
        0xf1bb3370 15253      104  4         0xf1ae3a44 inetd (vnlock)
        0xf1bb3d60 15252       16  4         0xf1ae3a44 tcsh (vnlock)
---Type <return> to continue, or q <return> to quit---
        0xf1c4dbd0 15251        4  4         0xf1ae3a44 sh (vnlock)
        0xf1c4da28 15250     4084  4         0xf1c4da28 sh (wait)
        0xf1c4d880 15249       84  4         0xf04ffc2c cron (netio)
        0xf1c4d6d8 15248        4  4         0xf1ae3a44 csh (vnlock)
        0xf1c4d530 15247     4084  4         0xf04ff3a4 csh (netio)
        0xf1c4d388 15245        4  4         0xf1ae3a44 csh (vnlock)
        0xf1c4d038 15244     4084  4         0xf04ff98c csh (netio)
        0xf1c4d1e0 15242        6  4         0xf1ae3a44 csh (vnlock)
        0xf1b8cd58 15239        4  4         0xf1ae3a44 sshd (vnlock)
        0xf1bb36c0 15238       16  4         0xf1ae3a44 tcsh (vnlock)
        0xf1c09bc0 15237        4  4         0xf1ae3a44 sshd (vnlock)
        0xf1c09d68 15236        4  4         0xf1ae3a44 sshd (vnlock)
        0xf1c09520 15235        4  4         0xf1ae3a44 sh (vnlock)
        0xf1c096c8 15234        4  4         0xf1ae3a44 sh (vnlock)
        0xf1c09378 15233      114  4         0xf1ae3a44 cron (vnlock)
        0xf1c091d0 15232        4  4         0xf1c091d0 cron (ppwait)
        0xf1c09028 15231     4084  4         0xf1c09028 sh (wait)
        0xf1c09870 15230     4084  4         0xf1c09870 sh (wait)
        0xf1c09a18 15229       84  4         0xf04c3984 cron (netio)
        0xf1b8cbb0 15228       84  4         0xf04c3c24 cron (netio)
        0xf1b8ca08 15227      104  4         0xf1ae3a44 inetd (vnlock)
        0xf1b8c510 15226      104  4         0xf1ae3a44 inetd (vnlock)
        0xf1b8c860 15225        6  4         0xf1ae3a44 csh (vnlock)
---Type <return> to continue, or q <return> to quit---
        0xf1b8c018 15222      104  4         0xf1ad9f34 sshd (vnlock)
        0xf1b8c368 15219      106  4         0xf1b51a1c screen-3.9.5 (vnlock)
        0xf1b8c6b8 15218     4006  4         0xf1b4a5d4 ls (vnlock)
        0xf1bb3868 15214     4086  4         0xf1bc2388 tcsh (pause)
        0xf1bb3020 13590     4006  4         0xf1bb3020 tcsh (ppwait)
        0xf1bb3bb8  9619     4086  4         0xf03eba24 grep (netio)
        0xf1c246d0  9618     4086  4         0xf04c32f4 cat (netio)
        0xf1c24380  3748     4004  4         0xf0dae140 find (getblk)
        0xf1c241d8  3743     4184  4         0xf03ebacc sendmail (netio)
        0xf1c24bc8  3742     4084  4         0xf03eb8d4 tee (netio)
        0xf1a36848  3741     4084  4         0xf1a36848 sh (wait)
        0xf1b5c6b0  3740     4084  4         0xf1b5c6b0 sh (wait)
        0xf1b5c010  3739       84  4         0xf03eb19c cron (netio)
        0xf1c24d70 27208     4086  4         0xf1a2f820 ksh (ttyin)
        0xf1b5cba8 27207      184  4         0xf02025ac sshd (select)
        0xf1b5cd50 24171     4086  4         0xf1a2f380 tcsh (ttyin)
        0xf1c24528 15305     4086  4         0xf1a2fb98 ksh (ttyin)
        0xf1b319f8 15304      184  4         0xf02025ac sshd (select)
        0xf1bb3a10  1260     4086  4         0xf02025ac irc-20001231 (select)
        0xf1b5c508  1256      184  4         0xf02025ac screen-3.9.5 (select)
        0xf1bb31c8 21928     4086  4         0xf02025ac irc-20001231 (select)
        0xf1bb3518 21927      184  4         0xf02025ac screen-3.9.5 (select)
        0xf1b5c1b8 20168     4006  4         0xf1b5c1b8 tcsh (ppwait)
---Type <return> to continue, or q <return> to quit---
        0xf1b5ca00   639     4086  4         0xf02025ac irc-4.4Z (select)
        0xf1b5c858   635     4086  4         0xf1b77020 tcsh (pause)
        0xf1b5c360   634      184  4         0xf02025ac screen-3.9.5 (select)
        0xf1a366a0   188     4006  4         0xf1ae3a44 getty (vnlock)
        0xf1b31d48   186       84  4         0xf01db9c0 cron (nanosleep)
        0xf1b31ba0   183       84  4         0xf02025ac inetd (select)
        0xf1a36b98   178       84  4         0xf02025ac sshd (select)
        0xf1b31008   163       84  4         0xf1a3a9d8 ntpd (pause)
        0xf1b31850   121    20284  3         0xf02184e0 nfsio (nfsidl)
        0xf1b316a8   120    20284  3         0xf02184dc nfsio (nfsidl)
        0xf1b31500   119    20284  3         0xf02184d8 nfsio (nfsidl)
        0xf1b31358   118    20284  3         0xf02184d4 nfsio (nfsidl)
        0xf1b311b0   114       84  4         0xf1b28830 mount_mfs (mfsidl)
        0xf1a36d40   105       84  4         0xf02025ac rpcbind (select)
        0xf1a369f0    92       84  4                  0 syslogd (select)
        0xf1a364f8     4    20204  3         0xf0201e0c ioflush (syncer)
        0xf1a36350     3    20204  3         0xf0201b2c reaper (reaper)
        0xf1a361a8     2    20204  3         0xf0218bc8 pagedaemon (daemon_slp)
        0xf1a36000     1     4084  4         0xf1a36000 init (wait)
        0xf02001a0     0    20204  3         0xf02001a0 swapper (scheduler)
              proc   pid     flag st              wchan comm
(gdb) proc 0xf1c4dbd0
(gdb) bt
#0  mi_switch (p=0xf1c4dbd0) at ../../../../kern/kern_synch.c:825
#1  0xf00399f0 in bpendtsleep () at ../../../../kern/kern_synch.c:482
#2  0xf0031ff8 in lockmgr (lkp=0xf1ae3a44, flags=65538, interlkp=0xf1ae3a40)
    at ../../../../kern/kern_lock.c:590
#3  0xf006c608 in genfs_lock (v=0xf1c61978)
    at ../../../../miscfs/genfs/genfs_vnops.c:317
#4  0xf006a1bc in vn_lock (vp=0xf1ae39a0, flags=65538)
    at ../../../../sys/vnode_if.h:755
#5  0xf00621bc in vget (vp=0xf1ae39a0, flags=65538)
    at ../../../../kern/vfs_subr.c:1108
#6  0xf012ce54 in ufs_ihashget (dev=1795, inum=2, flags=2)
    at ../../../../ufs/ufs/ufs_ihash.c:121
#7  0xf011f460 in ffs_vget (mp=0xf03ae400, ino=2, vpp=0xf1c61b34)
    at ../../../../ufs/ffs/ffs_vfsops.c:1012
#8  0xf012eaf8 in ufs_root (mp=0xf03ae400, vpp=0xf1c61ba4)
    at ../../../../ufs/ufs/ufs_vfsops.c:89
#9  0xf0060728 in lookup (ndp=0xf1c61e10) at ../../../../kern/vfs_lookup.c:514
#10 0xf0060124 in namei (ndp=0xf1c61e10) at ../../../../kern/vfs_lookup.c:153
#11 0xf002e938 in check_exec (p=0xf1c4dbd0, epp=0xf1c61e58)
    at ../../../../kern/kern_exec.c:105
#12 0xf002ed70 in sys_execve (p=0xf1c4dbd0, v=0xf1c61f28, retval=0x0)
    at ../../../../kern/kern_exec.c:267
#13 0xf016eb2c in syscall (code=59, tf=0xf1c61fb0, pc=267048)
---Type <return> to continue, or q <return> to quit---
    at ../../../../arch/sparc/sparc/trap.c:1241
#14 0xf0006530 in _syscall ()
can not access 0x13504, invalid address (13504)
can not access 0x13504, invalid address (13504)
can not access 0x13504, invalid address (13504)
can not access 0x13504, invalid address (13504)
can not access 0xeffff880, invalid address (effff880)
can not access 0xeffff880, invalid address (effff880)
Cannot access memory at address 0xeffff880.
(gdb) proc 0xf1b8c6b8
(gdb) bt
#0  mi_switch (p=0xf1b8c6b8) at ../../../../kern/kern_synch.c:825
#1  0xf00399f0 in bpendtsleep () at ../../../../kern/kern_synch.c:482
#2  0xf0031ff8 in lockmgr (lkp=0xf1b4a5d4, flags=65538, interlkp=0xf1b4a5d0)
    at ../../../../kern/kern_lock.c:590
#3  0xf006c608 in genfs_lock (v=0xf1c21a68)
    at ../../../../miscfs/genfs/genfs_vnops.c:317
#4  0xf006a1bc in vn_lock (vp=0xf1b4a530, flags=65538)
    at ../../../../sys/vnode_if.h:755
#5  0xf00621bc in vget (vp=0xf1b4a530, flags=65538)
    at ../../../../kern/vfs_subr.c:1108
#6  0xf012ce54 in ufs_ihashget (dev=1795, inum=75800, flags=2)
    at ../../../../ufs/ufs/ufs_ihash.c:121
#7  0xf011f460 in ffs_vget (mp=0xf03ae400, ino=75800, vpp=0xf1c21c48)
    at ../../../../ufs/ffs/ffs_vfsops.c:1012
#8  0xf012dd14 in ufs_lookup (v=0x0) at ../../../../ufs/ufs/ufs_lookup.c:593
#9  0xf006055c in lookup (ndp=0xf1c21e08) at ../../../../sys/vnode_if.h:71
#10 0xf0060124 in namei (ndp=0xf1c21e08) at ../../../../kern/vfs_lookup.c:153
#11 0xf006752c in sys___lstat13 (p=0xf1b8c6b8, v=0xf1c21f28, retval=0xf1c21f20)
    at ../../../../kern/v, pc=250100)
    at ../../../../arch/sparc/sparc/trap.c:1241
#13 0xf0006530 in _syscall ()
can not access 0x184dc, invalid address (184dc)
can not access 0x184dc, invalid address (184dc)
can not access 0x184dc, invalid address (184dc)
can not access 0x184dc, invalid address (184dc)
can not access 0xeffff270, invalid address (effff270)
can not access 0xeffff270, invalid address (effff270)
Cannot access memory at address 0xeffff270.

>How-To-Repeat:

No idea. I just happened.

>Fix:

-
>Release-Note:
>Audit-Trail:

From: Chuck Silvers <chuq@chuq.com>
To: gnats-bugs@gnats.netbsd.org
Cc:  
Subject: Re: kern/12189: processes hang in vnlock
Date: Sun, 18 Feb 2001 10:45:09 -0800

 ok, the interesting thread is this one:

         0xf1c24380  3748     4004  4         0xf0dae140 find (getblk)

 (gdb) proc 0xf1c24380
 (gdb) bt
 #0  mi_switch (p=0xf1c24380) at ../../../../kern/kern_synch.c:825
 #1  0xf00399f0 in bpendtsleep () at ../../../../kern/kern_synch.c:482
 #2  0xf005c06c in getblk (vp=0xf1b4a530, blkno=-12, size=8192, slpflag=0, 
     slptimeo=0) at ../../../../kern/vfs_bio.c:674
 #3  0xf012c9d4 in ufs_bmaparray (vp=0xf1b4a530, bn=565, bnp=0xf1c0f488, 
     ap=0xf1c0f374, nump=0xfffffff4, runp=0xf1c0f484)
     at ../../../../ufs/ufs/ufs_bmap.c:188
 #4  0xf012c7c8 in ufs_bmap (v=0xf1c0f490) at ../../../../ufs/ufs/ufs_bmap.c:85
 #5  0xf0022a04 in vndstrategy (bp=0xf0dada40) at ../../../../sys/vnode_if.h:802
 #6  0xf0071bf0 in spec_strategy (v=0xf0dada40)
     at ../../../../miscfs/specfs/spec_vnops.c:511
 #7  0xf005b9d0 in bwrite (bp=0xf0dada40) at ../../../../sys/vnode_if.h:1124
 #8  0xf005ba04 in vn_bwrite (v=0xf1c0f650) at ../../../../kern/vfs_bio.c:400
 #9  0xf005bb60 in bawrite (bp=0xf0dada40) at ../../../../sys/vnode_if.h:1139
 #10 0xf005c460 in getnewbuf (slpflag=0, slptimeo=0)
     at ../../../../kern/vfs_bio.c:825
 #11 0xf005c2a8 in allocbuf (bp=0xf0dae140, size=8192)
     at ../../../../kern/vfs_bio.c:760
 #12 0xf005c1dc in getblk (vp=0xf1b4a530, blkno=-12, size=8192, slpflag=0, 
     slptimeo=0) at ../../../../kern/vfs_bio.c:705
 #13 0xf012c9d4 in ufs_bmaparray (vp=0xf1b4a530, bn=569, bnp=0xf1c0f928, 
     ap=0xf1c0f814, nump=0xfffffff4, runp=0xf1c0f924)
     at ../../../../ufs/ufs/ufs_bmap.c:188
 #14 0xf012c7c8 in ufs_bmap (v=0xf1c0f930) at ../../../../ufs/ufs/ufs_bmap.c:85
 #15 0xf0022a04 in vndstrategy (bp=0xf0dad2c0) at ../../../../sys/vnode_if.h:802
 #16 0xf0071bf0 in spec_strategy (v=0xf0dad2c0)
     at ../../../../miscfs/specfs/spec_vnops.c:511
 #17 0xf005b9d0 in bwrite (bp=0xf0dad2c0) at ../../../../sys/vnode_if.h:1124
 #18 0xf005ba04 in vn_bwrite (v=0xf1c0faf0) at ../../../../kern/vfs_bio.c:400
 #19 0xf005bb60 in bawrite (bp=0xf0dad2c0) at ../../../../sys/vnode_if.h:1139
 #20 0xf005c460 in getnewbuf (slpflag=0, slptimeo=0)
     at ../../../../kern/vfs_bio.c:825
 #21 0xf005c148 in getblk (vp=0xf1ae3eb0, blkno=0, size=1024, slpflag=0, 
     slptimeo=0) at ../../../../kern/vfs_bio.c:697
 #22 0xf005b520 in bread (vp=0xf1ae3eb0, blkno=0, size=1024, cred=0xffffffff, 
     bpp=0xf1c0fcb4) at ../../../../kern/vfs_bio.c:196
 #23 0xf011fe20 in ffs_read (v=0x0) at ../../../../ufs/ufs/ufs_readwrite.c:133
 #24 0xf01310cc in ufs_readdir (v=0xf1c0fdf8) at ../../../../sys/vnode_if.h:271
 can not access 0x2a000, invalid address (2a000)
 can not access 0x2a000, invalid address (2a000)
 can not access 0x2a000, invalid address (2a000)
 can not access 0x2a000, invalid address (2a000)
 #25 0xf00699ec in vn_readdir (fp=0xf1bbadd0, 
     buf=0x2a000 <Address 0x2a000 out of bounds>, segflg=0, count=4096, 
     done=0xf1c0feb0, p=0xf1c24380, cookies=0x0, ncookies=0x0)
     at ../../../../sys/vnode_if.h:657
 #26 0xf00690f0 in sys_getdents (p=0xf1c24380, v=0xf1c0ff28, retval=0xf1c0ff20)
     at ../../../../kern/vfs_syscalls.c:3013
 #27 0xf016eb2c in syscall (code=272, tf=0xf1c0ffb0, pc=269249424)
     at ../../../../arch/sparc/sparc/trap.c:1241
 #28 0xf0006530 in _syscall ()


 notice that frames 2 and 12 are trying to get the same vnode and blkno.
 what's happened is that we've allocated a buffer for an indirect block
 and now we're trying to steal memory from other buffers to assign to
 the buffer we're working on.  the next buffer on the free list is for
 a file in the same vnd, and in order to clean that buffer we need to
 access the same indirect block that we're in the middle of setting up.
 so this thread deadlocks.  this thread has a directory vnode locked,
 so any other thread which tries to access that vnode will get stuck in
 "vnlock".

 what this really amounts to is a lock-ordering problem.  vnd is making
 a blocking request to acquire a buffer lock (ie. set B_BUSY) when it's
 already holding a buffer lock.  there may be specific cases where this is ok,
 but in general it's not.  when the buffer cache is moving memory around
 between buffers, it tries to avoid this problem by skipping over buffers
 that are locked, but vnd breaks this by creating dependencies between
 buffers that are hidden from the buffer cache (ie. in order to write
 a vnd buffer you may have to lock a buffer for an indirect block in the
 file underlying the vnd device).

 so to fix this, we need to do two thing:

  1. expose vnd's hidden dependencies between buffers to the
     buffer cache code so that it can avoid the lock-ordering problem.
     the page-stealing code in the buffer cache should skip over dirty
     vnd buffers just like it skips over locked (ie. busy) buffers.
     the simplest way to do this would be to skip all dirty buffers,
     but this might cause other problems, so we should probably restrict
     this to just dirty vnd buffers.

  2. prevent the buffer cache from filling up with dirty vnd buffers,
     since if this happens then we may not be able to write any of them
     if every buffer requires us to read an indirect block in order to
     write that buffer.  I haven't thought of any especially great way
     to do this, though.


 -Chuck
State-Changed-From-To: open->analyzed 
State-Changed-By: chs 
State-Changed-When: Sun Feb 18 15:13:31 PST 2001 
State-Changed-Why:  
we know what's going on with this one. 

From: Chuck Silvers <chuq@chuq.com>
To: Antti Kantee <pooka@iki.fi>
Cc: gnats-bugs@gnats.netbsd.org
Subject: Re: kern/12189: processes hang in vnlock
Date: Sun, 18 Feb 2001 21:38:48 -0800

 see also PR 10731.

 -Chuck
State-Changed-From-To: analyzed->closed
State-Changed-By: christos@netbsd.org
State-Changed-When: Sun, 27 Aug 2006 14:46:38 -0400
State-Changed-Why:
fixed, thanks


From: Christos Zoulas <christos@netbsd.org>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: PR/12189 CVS commit: src/sys/dev
Date: Sun, 27 Aug 2006 18:45:20 +0000 (UTC)

 Module Name:	src
 Committed By:	christos
 Date:		Sun Aug 27 18:45:20 UTC 2006

 Modified Files:
 	src/sys/dev: vnd.c

 Log Message:
 PR/34293: Michael van Elst: vnd deadlocks on I/O buffers
 Also fixes: PR/10731, PR/12189, PR/20296
 Sleep while there a buffer shortage.


 To generate a diff of this commit:
 cvs rdiff -r1.148 -r1.149 src/sys/dev/vnd.c

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

From: Pavel Cahyna <pavel@NetBSD.org>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: Re: PR/12189 CVS commit: src/sys/dev
Date: Sun, 27 Aug 2006 21:58:47 +0200

 On Sun, Aug 27, 2006 at 06:50:10PM +0000, Christos Zoulas wrote:
 > The following reply was made to PR kern/12189; it has been noted by GNATS.
 > 
 > From: Christos Zoulas <christos@netbsd.org>
 > To: gnats-bugs@NetBSD.org
 > Cc: 
 > Subject: PR/12189 CVS commit: src/sys/dev
 > Date: Sun, 27 Aug 2006 18:45:20 +0000 (UTC)
 > 
 >  Module Name:	src
 >  Committed By:	christos
 >  Date:		Sun Aug 27 18:45:20 UTC 2006
 >  
 >  Modified Files:
 >  	src/sys/dev: vnd.c
 >  
 >  Log Message:
 >  PR/34293: Michael van Elst: vnd deadlocks on I/O buffers
 >  Also fixes: PR/10731, PR/12189, PR/20296
 >  Sleep while there a buffer shortage.

 How does it fix the problem in PR/12189? I don't see it.

 Pavel

State-Changed-From-To: closed->analyzed
State-Changed-By: christos@netbsd.org
State-Changed-When: Sun, 27 Aug 2006 16:38:15 -0400
State-Changed-Why:
problem is not fixed


From: Manuel Bouyer <bouyer@netbsd.org>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: PR/12189 CVS commit: src/sys/dev
Date: Sun,  3 Sep 2006 19:49:34 +0000 (UTC)

 Module Name:	src
 Committed By:	bouyer
 Date:		Sun Sep  3 19:49:34 UTC 2006

 Modified Files:
 	src/sys/dev: vnd.c

 Log Message:
 Back out rev 1.149.
 From various discussion about vndstrategy (see
 http://mail-index.netbsd.org/tech-kern/2005/03/29/0034.html
 http://mail-index.netbsd.org/tech-kern/2005/03/23/0015.html)
 it's not correct to tsleep() in a strategy routine, which may be called from
 interrupt context.
 Unfortunably this reopens PR/10731, PR/12189, PR/20296, PR/34293

 As for what the correct fix it, this needs to be analysed deeper. I suspect
 throttling the caller in vnd only hides the problem; the same caller writing
 to some other device could exaust all buffers as well. If this driver doesn't
 need to allocate buffer this won't cause a deadlock, but it's bad for
 performances on systems with e.g. multiple drives. Also, others stacked
 block device drivers may also have this issue.


 To generate a diff of this commit:
 cvs rdiff -r1.149 -r1.150 src/sys/dev/vnd.c

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

>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.