On 4/20/17 7:01 AM, Robert Shearman wrote: >> The cached dst on sockets is one known place that causes a hang on a >> delete. Basically the delete stalls until the sockets are closed. I have >> a patch for sk_rx_dst which is the one I chased down last week.
I got to the bottom on the sk_rx_dst caching -- it is only a problem on older kernels (e.g., our 4.1 kernels) and only with multicast udp sockets. The early demux code in 4.1 is matching a listen socket when it should not. The early demux code for mcast had some changes unrelated to false matching that fixed the problem.