[ZBX-22789] zabbix_sender v6.4 hangs when sending value to 2 servers Created: 2023 May 11  Updated: 2024 Apr 10  Resolved: 2023 Aug 13

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Agent (G)
Affects Version/s: 6.4.2
Fix Version/s: 6.4.6rc1, 7.0.0alpha4, 7.0 (plan)

Type: Problem report Priority: Blocker
Reporter: Oleksii Zagorskyi Assignee: Andris Mednis
Resolution: Fixed Votes: 5
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Causes
Duplicate
Team: Team C
Sprint: Sprint 103 (Aug 2023)
Story Points: 0.25

 Description   

To reproduce, have this sender.conf file (think it's agent's conf file):

ServerActive=127.0.0.1,127.0.0.1:10061
Hostname=it0

Have 2 zabbix servers running. In current example locally, on different ports for trappers (default 10051 and 10061), but it does not matter. The same happens with 2 separate servers in network on different IPs.

sender v6.2 works fine:

# /zab/bin/6.2/zabbix_sender -V
zabbix_sender (Zabbix) 6.2.9
Revision {ZABBIX_REVISION} 27 March 2023, compilation time: May 11 2023 16:02:16

# /zab/bin/6.2/zabbix_sender -c /zab/bin/sender.conf -k test.item -o 123 -vv
zabbix_sender [337102]: DEBUG: In zbx_connect_to_server() [127.0.0.1]:10061 [timeout:60, connection timeout:3]
zabbix_sender [337103]: DEBUG: In zbx_connect_to_server() [127.0.0.1]:10051 [timeout:60, connection timeout:3]
zabbix_sender [337102]: DEBUG: In is_ip4() ip:'127.0.0.1'
zabbix_sender [337103]: DEBUG: In is_ip4() ip:'127.0.0.1'
zabbix_sender [337102]: DEBUG: End of is_ip4():SUCCEED
zabbix_sender [337103]: DEBUG: End of is_ip4():SUCCEED
zabbix_sender [337103]: DEBUG: answer [{"response":"success","info":"processed: 1; failed: 0; total: 1; seconds spent: 0.000027"}]
Response from "127.0.0.1:10051": "processed: 1; failed: 0; total: 1; seconds spent: 0.000027"
zabbix_sender [337102]: DEBUG: answer [{"response":"success","info":"processed: 1; failed: 0; total: 1; seconds spent: 0.000104"}]
Response from "127.0.0.1:10061": "processed: 1; failed: 0; total: 1; seconds spent: 0.000104"
sent: 1; skipped: 0; total: 1

while sender 6.4 hangs:

# /zab/bin/6.4/zabbix_sender -V
zabbix_sender (Zabbix) 6.4.3rc1
Revision {ZABBIX_REVISION} 25 April 2023, compilation time: May 11 2023 16:13:51


# /zab/bin/6.4/zabbix_sender -c /zab/bin/sender.conf -k test.item -o 123 -vv
zabbix_sender [322602]: DEBUG: In zbx_connect_to_server() [127.0.0.1]:10061 [timeout:60, connection timeout:3]
zabbix_sender [322603]: DEBUG: In zbx_connect_to_server() [127.0.0.1]:10051 [timeout:60, connection timeout:3]
zabbix_sender [322602]: DEBUG: In zbx_is_ip4() ip:'127.0.0.1'
zabbix_sender [322602]: DEBUG: End of zbx_is_ip4():SUCCEED
zabbix_sender [322602]: DEBUG: answer [{"response":"success","info":"processed: 1; failed: 0; total: 1; seconds spent: 0.000027"}]
Response from "127.0.0.1:10061": "processed: 1; failed: 0; total: 1; seconds spent: 0.000027"
... <hangs here and being killed with level -9 !!! from another session> ...
Killed

So, only one zabbix server actually received the value, which is very firs in the ServerActive list.

Everything is compiled from current 6.2 and 6.4 sources.

zabbix_sender v6.0 also works fine.



 Comments   
Comment by Joe [ 2023 May 31 ]

I can confirm that. As soon as there are 2 IP Adresses in the zabbix_agent2 config the zabbix_sender hangs... Imho Critical error

Example:

echo "- app.status[test] 0"  | zabbix_sender -c /etc/zabbix/zabbix_agent2.conf -i -
Response from "x.y.z.87:10051": "processed: 1; failed: 0; total: 1; seconds spent: 0.000061"

The data "0" is sent and can be seen in zabbix server under latest data. But the command hangs and has to be killed with kill -9 to exit it.
 

Further info:

cat /etc/os-release
NAME="SLES"
VERSION="15-SP4"
VERSION_ID="15.4"
PRETTY_NAME="SUSE Linux Enterprise Server 15 SP4"

zabbix_sender -V
zabbix_sender (Zabbix) 6.4.2
Revision dbfe71773cf 25 April 2023, compilation time: Apr 25 2023 12:19:39

zabbix_server -V
zabbix_server (Zabbix) 6.4.2
Revision dbfe71773cf 25 April 2023, compilation time: Apr 25 2023 12:19:39
Comment by zhanglonggang [ 2023 Jun 05 ]

zabbix_sender (Zabbix) 6.4.3rc1

 

My zabbix_sender hangs also!

 

 /usr/local/zabbix-6.0/bin/zabbix_sender -vv -c /apps/soft/zabbix/zabbix_agentd.conf -i /tmp/tmpHCKXKH
zabbix_sender [16567]: DEBUG: In zbx_connect_to_server() [zabbixserver1.tquickpayinc.com]:10051 [timeout:60, connection timeout:3]
zabbix_sender [16568]: DEBUG: In zbx_connect_to_server() [zabbixserver2.tquickpayinc.com]:10051 [timeout:60, connection timeout:3]
zabbix_sender [16567]: DEBUG: answer [\{"response":"success","info":"processed: 250; failed: 0; total: 250; seconds spent: 0.003864"}]
Response from "zabbixserver1.tquickpayinc.com:10051": "processed: 250; failed: 0; total: 250; seconds spent: 0.003864"

HANG HERE!

 

 

 

 

Comment by Robin Roevens [ 2023 Jun 19 ]

I'm seeing the same with sender 6.4.3... data is sent correctly to first server.

The second server does not receive the data and sender hangs until killed with SIGKILL

6.2.9 didn't have a problem with the exact same config.

 

strace snippet for /usr/bin/zabbix_sender -c /etc/zabbix/zabbix_agentd.conf -i /tmp/zabbix-sender-yum-updateinfo.data where the agent config contains "tstzabbixsrv" and "zabbixsrv"

read(3, "", 4096)                       = 0
pipe([4, 5])                            = 0
rt_sigprocmask(SIG_BLOCK, [HUP INT QUIT USR2 TERM CHLD], [], 8) = 0
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f0f0c86a410) = 10933
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
pipe([6, 7])                            = 0
rt_sigprocmask(SIG_BLOCK, [HUP INT QUIT USR2 TERM CHLD], [], 8) = 0
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f0f0c86a410) = 10934
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
wait4(10933, 0x7ffc4182495c, 0, NULL)   = ? ERESTARTSYS (To be restarted if SA_RESTART is set)
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_KILLED, si_pid=10934, si_uid=0, si_status=SIGSEGV, si_utime=0, si_stime=0} ---
wait4(10933, Response from "tstzabbixsrv:10051": "processed: 0; failed: 9; total: 9; seconds spent: 0.000075"
[{WIFEXITED(s) && WEXITSTATUS(s) == 2}], 0, NULL) = 10933
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=10933, si_uid=0, si_status=2, si_utime=0, si_stime=0} ---
read(4, "\0\0\0\0", 4)                  = 4
read(4, "", 0)                          = 0
close(4)                                = 0
close(5)                                = 0
wait4(10934, [{WIFSIGNALED(s) && WTERMSIG(s) == SIGSEGV}], 0, NULL) = 10934
read(6,

And at this line it waits indefinitely...

Comment by Artjoms Rimdjonoks [ 2023 Aug 07 ]

Issue should have already been resolved in:

Generated at Sun May 11 07:53:57 EEST 2025 using Jira 9.12.4#9120004-sha1:625303b708afdb767e17cb2838290c41888e9ff0.