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.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.