Я имею дело с многопоточным приложением, поток которого открывает локальный сокет домена Unix и привязывает его к абстрактному адресу. Оказывается, этот поток необходимо завершить и создать заново. Теперь, несмотря на закрытие сокета, а также отмену и присоединение потока без ошибок, вызов связывания в перезапущенном потоке возвращает адрес ошибки, который уже используется. В этой ситуации netstat -pax показывает e. г.
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node PID/Program name Path
…
unix 2 [ ] DGRAM CONNECTED 17650 - @@@@PCOS@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
…
для адреса. После этого I-узел больше не появляется в выводе команды ls -l /proc/*/fd. Я отмечаю, что RefCnt по-прежнему равен 2, но как я могу увидеть, кто или что ссылается на эту вещь? И как мне освободить адрес и привязать к нему заново?
Linux axcf3152 6.1.107-rt39-pxc #1 SMP PREEMPT_RT Wed May 28 14:14:49 UTC 2025 x86_64 GNU/Linux
Подробнее здесь: https://stackoverflow.com/questions/798 ... descriptor