Возникла проблема : есть два хоста(A-клиент и B-сервер). С хоста A создается соединение к хосту B по SSH. После прошедшии некоторого времени и большого количества переподключений(обусловленно спецификой работы алгоритма создания подключений) получил следующую ситуацию:
1) netstat --inet - на хосте A, показывает открытое соединение.
2) netstat --inet - на хосте B, не показывает никаких соединений с A
3) после попытки убить соединение на A при помощи cutter выяснилось что оно не фигурирует в /proc/net/ip_conntrack
Соединение висит уже 6 часов и отваливаться не думает. Основная проблема в том что для него вызывана процедура блокирующего чтения, которая не может отвалиться и вызывает проблемы в работе программы.
Вопросы:
1) как может возникнуть подобная ситуация, разве соединение не должно отваливаться по таймауту?
2) как лучше всего решать подобные ситуации(желательно системными настройками, так как доступа к вызову read - нет)?