Bugzilla PR#293127 and 292884
Rick Macklem <[email protected]>
| Newsgroups | gmane.os.freebsd.devel.net |
|---|---|
| Message-ID | <CAM5tNy7FXa_1FStm34dgg-gjUuM8LdY1pbZwihfXrYoDv2H-cw@mail.gmail.com> |
Hi,
Could someone who is familiar with what has changed
related to socket handling between FreeBSD 14 and 15
please look at these bugzilla PRs.
They show similar crashes, which indicate that the
socket receive buffer has been discarded when
soreceive() returns EWOULDBLOCK.
292884 seems to be avoided by adding an extra
reference count on the socket, although that extra
reference count should not be needed.
293127 still happens even with the extra reference
count on the socket.
It comes down to a couple of questions..
- Is there any way the socket receive buffer
mutex can be free'd even though the socket
still has a reference count?
- How can a socket "go away" even thoiugh the
krpc has not done soclose() on it and holds a
reference count on the socket until soclose()?
- For some of these cases (maybe not all), the socket
structure has been recycled and become a UDP socket
instead of a TCP socket.
This krpc code has not changed in at least a
decade, so I think the problem must be caused
by some other change to socket and socket buffer
handling?
Thanks in advance for any help with this, rick
ps: At this time, I do not know of any common
network component between the three sites
reporting crashes.