Messages in this thread | | | Date | Wed, 7 Nov 2012 10:54:34 -0500 | From | Dave Jones <> | Subject | Re: [PATCH] tcp: Replace infinite loop on recvmsg bug with proper crash |
| |
On Tue, Nov 06, 2012 at 05:51:19PM -0800, Julius Werner wrote: > > We've had reports of this WARN against the Fedora kernel for a while. > > Had this been immediately followed by a BUG(), we'd have never seen those traces at all, > > and just got "my machine just locked up" reports instead. > > > > The proper fix here is to find out why we're getting into this state. > > Are you sure you don't mean the WARN below that ("recvmsg bug 2") > instead? I don't think this one can happen without eventually running > into the syslog overflow issue I described.
bug2 is more common (And usually is accompanied by mangled traces), but we have reports of the first WARN too..
https://bugzilla.redhat.com/show_bug.cgi?id=841769 https://bugzilla.redhat.com/show_bug.cgi?id=845853 https://bugzilla.redhat.com/show_bug.cgi?id=846991 https://bugzilla.redhat.com/show_bug.cgi?id=860039
(I note that none of these reports mention "also, my hard disk is now full")
> I agree that the underlying cause must be fixed too, but as we will > always have bugs in the kernel I think proper handling when it does > happen is also important (and filling the hard disk with junk is > obviously not the best approach). If you think a full panic is too > extreme, I have an alternative version of this patch that logs the > WARN once, closes the socket, and returns EBADFD from the syscall... > would you think that is more appropriate?
It sounds more appropriate to me, instead of silently wedging the box. At least with that approach we have a chance of finding out what happened.
Dave
| |