Fabrizio Pirovano created an issue: https://gitlab.rtems.org/rtems/rtos/rtems/-/issues/5201
## Summary Using rtems-6 and freebsd-12 (30.01.2025), we are facing the following issue: close socket fail with error "Device or resource busy" because the reference count is not zero. ## Steps to reproduce The following code highlights the error. static void test(void) { int kq, sock; struct kevent evset; kq = kqueue(); if (kq < 0) printf("kqueue() failed: %s\n", strerror(errno)); else { sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP); if (sock >= 0) { EV_SET(&evset, sock, EVFILT_READ, EV_ADD, 0, 0, NULL); if (kevent(kq, &evset, 1, NULL, 0, NULL) < 0) printf("kevent() EV_ADD failed: %s\n", strerror(errno)); EV_SET(&evset, sock, EVFILT_READ, EV_DELETE, 0, 0, NULL); if (kevent(kq, &evset, 1, NULL, 0, NULL) < 0) printf("kevent() EV_DELETE failed: %s\n", strerror(errno)); if (close(sock) < 0) printf("close() socket failed: %s\n", strerror(errno)); } } } The same behavior can be observed in testsuite/selectpollkqueue01 if we add the close sockets and their checks after the sockets have been used with kevent(). The attached patch modifies testsuite/selectpollkqueue01/test_main.c[selectpollkqueue01.patch]. We haven't add intentionally the assert() after close socket to highlight the errors. (/uploads/9729838c50ad8254a4f6fbfaafce0976/selectpollkqueue01.patch) ### Pre-set options -- View it on GitLab: https://gitlab.rtems.org/rtems/rtos/rtems/-/issues/5201 You're receiving this email because of your account on gitlab.rtems.org.
_______________________________________________ bugs mailing list bugs@rtems.org http://lists.rtems.org/mailman/listinfo/bugs