Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 17 Dec 1998 15:41:11 -0500 (EST)
From:      Alfred Perlstein <bright@hotjobs.com>
To:        "David G. Andersen" <danderse@cs.utah.edu>
Cc:        hackers@FreeBSD.ORG
Subject:   Re: kern/8732: nfs mounts with 'intr' can cause system hang
Message-ID:  <Pine.BSF.4.05.9812171537230.384-100000@bright.fx.genx.net>
In-Reply-To: <Pine.BSF.4.05.9812171442380.378-100000@bright.fx.genx.net>

next in thread | previous in thread | raw e-mail | index | archive | help
> On Thu, 17 Dec 1998, David G. Andersen wrote:
> 
> > 
> > I've submitted a patch to vfs_subr.c which causes the kernel to return 
> > EINTR on an interrupted close().  It's behaving properly on our
> > systems, but I'd love it if other interested parties (Karl, Alfred,
> > Andrew?) would give it a run before I say "look, it works."
> > 
> >   -dave
> > Index: vfs_subr.c
> > ===================================================================
> > RCS file: /n/marker/usr/lsrc/FreeBSD/CVS/src/sys/kern/vfs_subr.c,v
> > retrieving revision 1.174
> > diff -r1.174 vfs_subr.c
> > 582,584c582,589
> > <                       tsleep((caddr_t)&vp->v_numoutput,
> > <                               slpflag | (PRIBIO + 1),
> > <                               "vinvlbuf", slptimeo);
> > ---
> > >                       if (error = tsleep((caddr_t)&vp->v_numoutput,
> > >                                          slpflag | (PRIBIO + 1),
> > >                                          "vinvlbuf", slptimeo)) {
> > >                               if (error == EINTR) {
> > >                                     splx(s);
> > >                                     return (EINTR);
> > >                               }
> > >                       }

whoa! nope, didn't work for me:

crashed on the first mail delete:

db>  ps
  pid   proc     addr    uid  ppid  pgrp  flag stat wmesg   wchan   cmd
  342 f6920d80 f6925000 1288   341   342 004006  2                  pine
  341 f6920ec0 f6922000 1288   340   341 004086  3   pause f69220f0 zsh
  340 f6839040 f6917000 1288   339   340 000184  3  select f0299d2c screen-3.7.4
  339 f6839540 f6908000 1288   335   339 004186  3   pause f69080f0 screen-3.7.4
  335 f6920240 f6982000 1288   333   335 004086  3   pause f69820f0 zsh
  334 f6920380 f697e000 1288   332   334 004086  3   ttyin f02725bc zsh
  333 f69204c0 f6979000 1288   297   285 004086  3  select f0299d2c kvt
  332 f6920600 f6974000 1288   297   285 004086  3  select f0299d2c kvt
  331 f6920740 f6970000 1288   297   285 004086  3  select f0299d2c kioslave
  330 f6920880 f696c000 1288   297   285 004086  3  select f0299d2c kioslave
  314 f6920b00 f692b000 1288     1   285 004186  3  nanslp f0272518 kblob.kss
  309 f6838f00 f691a000 1288   295   285 004086  3  nanslp f0272518 maudio
  301 f6839180 f6913000 1288   293   285 004086  3  select f0299d2c kpanel
  300 f68392c0 f690f000 1288   292   285 004086  3  select f0299d2c krootwm
  299 f6839400 f690c000 1288   291   285 004086  3  select f0299d2c kbgndwm
  297 f6839680 f6902000 1288   289   285 004086  3  select f0299d2c kfm
  296 f68397c0 f68ff000 1288   288   285 004086  3  select f0299d2c kwmsound
  295 f6839900 f68fc000 1288   287   285 004086  3  nanslp f0272518 kaudioserver
  293 f6839b80 f68f5000 1288   286   285 000086  3    wait f6839b80 sh
  292 f6839cc0 f68f2000 1288   286   285 000086  3    wait f6839cc0 sh
  291 f6839e00 f68ef000 1288   286   285 000086  3    wait f6839e00 sh
  289 f683a080 f68e8000 1288   286   285 000086  3    wait f683a080 sh
  288 f683a1c0 f68e5000 1288   286   285 000086  3    wait f683a1c0 sh
  287 f683a300 f68e2000 1288   286   285 000086  3    wait f683a300 sh
  286 f683a440 f68df000 1288   285   285 004086  3  select f0299d2c kwm
  285 f683a580 f68da000 1288   283   285 004086  3    wait f683a580 sh
  284 f683a6c0 f68cb000 1288   283   284 004184  3  select f0299d2c Xaccel
  283 f683a800 f68c9000 1288   278   278 004086  3    wait f683a800 xinit
  278 f683a940 f68c4000 1288   264   278 004086  3    wait f683a940 sh
  277 f683aa80 f68c2000    0   273   277 004086  3   ttyin f0294610 cat
  273 f683abc0 f68bf000    0   271   273 004086  3   pause f68bf0f0 zsh
  271 f683ad00 f68bb000    0   263   271 004086  3   pause f68bb0f0 csh
  270 f683ae40 f68b4000    0     1   270 004086  3   ttyin f029797c getty
  269 f683af80 f68ae000    0     1   269 004086  3   ttyin f0297888 getty
  268 f683b0c0 f68ab000    0     1   268 004086  3   ttyin f0297794 getty
  267 f683b200 f68a8000    0     1   267 004086  3   ttyin f02976a0 getty
  266 f683b5c0 f6897000    0     1   266 004086  3   ttyin f02975ac getty
  265 f683b700 f6894000    0     1   265 004086  3   ttyin f02974b8 getty
  264 f683c880 f6850000 1288     1   264 004086  3   pause f68500f0 zsh
  263 f683c9c0 f684c000 1288     1   263 004086  3   pause f684c0f0 zsh
  235 f683b340 f689f000    0     1   235 000084  3  select f0299d2c sshd1
  193 f683b840 f6890000    0     1   193 000084  2                  moused
  157 f683b980 f688d000    0     1   157 000184  3  select f0299d2c sendmail
  154 f683bac0 f6888000    0     1   154 000084  3  select f0299d2c lpd
  150 f683bc00 f6884000    0     1   150 000084  3  nanslp f0272518 cron
  147 f683c240 f6875000    0     1   147 000084  3  select f0299d2c inetd
  125 f683bd40 f6881000    0     1   120 000084  3  nfsrcvlk f686ccc0 nfsiod
  124 f683be80 f687e000    0     1   120 000084  3  nfsrcvlk f686ccc0 nfsiod
  123 f683bfc0 f687b000    0     1   120 000084  3  nfsrcvlk f686ccc0 nfsiod
  122 f683c100 f6878000    0     1   120 000004  3  sbwait f6660e04 nfsiod
  109 f683c380 f6872000    1     1   109 000184  3  select f0299d2c portmap
  100 f683c4c0 f6861000    0     1   100 000084  3  select f0299d2c syslogd
   33 f683c740 f685b000    0     1    33 000084  3   pause f685b0f0 adjkerntz
   26 f683c600 f685e000    0     1    26 000084  3  mfsidl f6835700 mount_mfs
    4 f683cb00 f6847000    0     0     0 000204  3  syncer f0299cdc syncer
    3 f683cc40 f6845000    0     0     0 000204  3  psleep f02925e4 vmdaemon
    2 f683cd80 f6843000    0     0     0 000204  3  psleep f0265370 pagedaemon
    1 f683cec0 f6841000    0     0     1 004084  3    wait f683cec0 init
    0 f0299038 f02e8000    0     0     0 000204  3   sched f0299038 swapper
  290 f6839f40 f68ec000 1288   286   285 002006  5                  sh

my window manager settings got hosed as well. *grrr*

thanks for the attempt though.

Alfred Perlstein - Programmer, HotJobs Inc. - www.hotjobs.com
-- There are operating systems, and then there's FreeBSD.
-- http://www.freebsd.org/                        3.0-current



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.05.9812171537230.384-100000>