Date: Wed, 17 Nov 1999 23:59:46 -0800 (PST) From: Matthew Dillon <dillon@apollo.backplane.com> To: "David E. Cross" <crossd@cs.rpi.edu> Cc: Doug White <dwhite@resnet.uoregon.edu>, "David E. Cross" <crossd@cs.rpi.edu>, freebsd-hackers@FreeBSD.ORG, crossd@cs.rpi.edu Subject: Re: vmpfw in pine via NFS Message-ID: <199911180759.XAA78788@apollo.backplane.com> References: <199911161847.NAA07576@cs.rpi.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
:> : :> :> Which FreeBSD release is being used here? What kind of NFS mount is :> being used (localhost mount?) : :Ok, I have some additional details, as I was able to mostly resolve the issue. : :Yes, mail is nfs exported, but that does not appear to be the issue in this :case. pine is run from nfs mounted "/usr/local" pine would hang every time :a user would go to send a composed message and wind up in "vmpfw". The "fix" :was to go to the NFS server for /usr/local and do "mv pine pine.old; cp :pine.old pine". This would (obviously) not affect any of the old pine's, it :would however allow any new pines to run w/o problems. Note that any access :to /usr/local/bin/pine.old on the client machine would result in a hang. :Specifically "file /usr/local/bin/pine.old" resulted in "vmpfw" as did "cmp" :and a couple of others. All of these worked just fine on the NFS server. :The release in question is 3.3-STABLE from this past Friday (Nov. 12). : :-- :David Cross | email: crossd@cs.rpi.edu pine does some really *bad* things with mmap(), as I recall. I'm trying to remember what the bug was. The thing to do is to run a debug kernel, and when you hit the problem do a 'ps axl' and locate all the processes that are 'stuck' in a state that they shouldn't be stuck in. It's almost certainly a deadlock somewhere. There should be more then one. Once you have identified the processes you can gdb the running kernel and get a backtrace of each stuck process: gdb -k kernel.debug /dev/mem proc XXX back proc YYY back ... I think the problem is related to pine's use of MAP_PRIVATE mmap's of mail files, and then going through and modifying every page as it scans the map. This causes a large number of write faults to occur and even though the copy-on-write's are creating private pages, vm_fault still winds up locking the underlying file. This can cause a deadlock to occur somewhere - I'm not exactly sure where. I recall that there are some VM-related situations where NFS can get into a deadlock due to side effects, but I don't recall it well enough to figure it out without some backtraces to work with. -Matt Matthew Dillon <dillon@backplane.com> 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?199911180759.XAA78788>