Opened 2 years ago

Closed 2 years ago

Last modified 2 years ago

#590 closed баг (fixed)

Агент Zabbix "зависает" в состоянии ожидания данных

Reported by: alx Owned by: alx
Priority: средний Milestone: 1 очередь
Component: swd Keywords:
Cc:

Description

Протокол взаимодействия агента Zabbix с сервером предполагает (упрощенно) установку соединения, отправку данных, получение ответа и разъединение. Было обнаружено, что при определенных условиях в сети (при большой потере пакетов вызванной перегрузкой сети в результате широковещательного флуда) возможна ситуация, когда после отправки данных агент не получает ответ от сервера:

07:33:22.255012 IP6 2a03:1ac0:2e92:d910:ad:c2ff:fe00:192.37332 > 2a03:1ac0:2e92:d910::1.10051: Flags [S], seq 3808182851, win 14400, options [mss 1440,sackOK,TS val 65471249 ecr 0,nop,wscale 3], length 0
07:33:22.314178 IP6 2a03:1ac0:2e92:d910::1.10051 > 2a03:1ac0:2e92:d910:ad:c2ff:fe00:192.37332: Flags [S.], seq 795152026, ack 3808182852, win 64260, options [mss 1440,sackOK,TS val 1644791899 ecr 65471249,nop,wscale 7], length 0
07:33:22.314450 IP6 2a03:1ac0:2e92:d910:ad:c2ff:fe00:192.37332 > 2a03:1ac0:2e92:d910::1.10051: Flags [.], ack 1, win 1800, options [nop,nop,TS val 65471308 ecr 1644791899], length 0
07:33:22.316798 IP6 2a03:1ac0:2e92:d910:ad:c2ff:fe00:192.37332 > 2a03:1ac0:2e92:d910::1.10051: Flags [.], seq 1:1429, ack 1, win 1800, options [nop,nop,TS val 65471311 ecr 1644791899], length 1428
07:33:22.317063 IP6 2a03:1ac0:2e92:d910:ad:c2ff:fe00:192.37332 > 2a03:1ac0:2e92:d910::1.10051: Flags [.], seq 1429:2857, ack 1, win 1800, options [nop,nop,TS val 65471311 ecr 1644791899], length 1428
07:33:22.317330 IP6 2a03:1ac0:2e92:d910:ad:c2ff:fe00:192.37332 > 2a03:1ac0:2e92:d910::1.10051: Flags [.], seq 2857:4285, ack 1, win 1800, options [nop,nop,TS val 65471311 ecr 1644791899], length 1428
07:33:22.317581 IP6 2a03:1ac0:2e92:d910:ad:c2ff:fe00:192.37332 > 2a03:1ac0:2e92:d910::1.10051: Flags [.], seq 4285:5713, ack 1, win 1800, options [nop,nop,TS val 65471311 ecr 1644791899], length 1428
07:33:22.317922 IP6 2a03:1ac0:2e92:d910:ad:c2ff:fe00:192.37332 > 2a03:1ac0:2e92:d910::1.10051: Flags [.], seq 5713:7141, ack 1, win 1800, options [nop,nop,TS val 65471312 ecr 1644791899], length 1428
07:33:22.318078 IP6 2a03:1ac0:2e92:d910:ad:c2ff:fe00:192.37332 > 2a03:1ac0:2e92:d910::1.10051: Flags [.], seq 7141:8569, ack 1, win 1800, options [nop,nop,TS val 65471312 ecr 1644791899], length 1428
07:33:22.318288 IP6 2a03:1ac0:2e92:d910:ad:c2ff:fe00:192.37332 > 2a03:1ac0:2e92:d910::1.10051: Flags [P.], seq 8569:9792, ack 1, win 1800, options [nop,nop,TS val 65471312 ecr 1644791899], length 1223
07:33:37.770883 IP6 2a03:1ac0:2e92:d910:ad:c2ff:fe00:192.37332 > 2a03:1ac0:2e92:d910::1.10051: Flags [.], seq 1:1429, ack 1, win 1800, options [nop,nop,TS val 65486656 ecr 1644791899], length 1428
07:33:37.829518 IP6 2a03:1ac0:2e92:d910::1.10051 > 2a03:1ac0:2e92:d910:ad:c2ff:fe00:192.37332: Flags [.], ack 9792, win 501, options [nop,nop,TS val 1644807415 ecr 65471312,nop,nop,sack 1 {1:1429}], length 0

После этого агент "застревает" в состоянии ожидания данных, так как никакого таймаута на этот случай не предусмотрено. Как результат, агент не выполняет свои функции даже после восстановления нормальной работы сети.

Предлагается устанавливать TCP сокету опцию KEEPALIVE с небольшим таймаутом (5 с) для гарантированного разрыва соединения.

Change History (2)

comment:1 by alx, 2 years ago

Resolution: fixed
Status: newclosed

In 2209/sw:

Агент Zabbix устанавливает сокету опцию KEEPALIVE.
При пропадании связи с сервером соединение рвется по таймауту.
Closes #590.

comment:2 by alx, 2 years ago

Живьем повторно воспроизвести проблему не удалось.
Синтетический тест показал, что после 5 неудачных проб keepalive сокет разрывает соединение, и агент возвращается в исходное состояние.

Note: See TracTickets for help on using tickets.