Patch with explanation to follow
Created attachment 6119 [details] Patch for 3.5 If a child dies, the parent process right away closes the socket. This is wrong, with tevent we still have events pending. This works fine for epoll but does not for at least the FreeBSD select variant. Tevent sticks a closed socket into the select masks. This then returns an error EBADF. When this happens, the parent winbind dies instead of forking a new child. This moves the socket close from the SIGCHLD cleanup function to the socket receiver. I could not reproduce the parent death anymore and it did not create an obvious fd leak.
Created attachment 6120 [details] Fix for master and v3-6-test.
Comment on attachment 6120 [details] Fix for master and v3-6-test. Tested 3.6 with that patch. Could not drive it into the lockup anymore that was easily reproducable without this patch. Volker
Jeremy, can you give the 3.5 patch another consideration? This needs a formal review to get into 3.5. Thanks, Volker
Ok, probably this is not worth it for 3.5.
Yes, it's worth it for 3.5.x. winbindd reliability is a significant issue - always ! I've reviewed and will + it for 3.5.x. Jeremy.
Comment on attachment 6119 [details] Patch for 3.5 LGTM for 3.5.x. Jeremy.
Re-assigning to Karolin for inclusion in 3.5.next. Jeremy.
Pushed to v3-5-test. Closing out bug report. Thanks!