[ZBX-3437] net.tcp.port spends more than 15 seconds to return a value when a port is blocked Created: 2011 Jan 19  Updated: 2017 May 30  Resolved: 2014 Nov 21

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Agent (G)
Affects Version/s: 1.8.3
Fix Version/s: 2.5.0

Type: Incident report Priority: Major
Reporter: Bashman Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: timeout, windows
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Windows



 Description   

net.tcp.port spends more than 15 seconds to return a "0" value when a port is blocked, if the port is open it spends less than 5 seconds.

Forum discussion: http://www.zabbix.com/forum/showthread.php?t=15699

May be related to https://support.zabbix.com/browse/ZBX-3280



 Comments   
Comment by Aleksandrs Saveljevs [ 2011 Jan 19 ]

Already fixed in Zabbix 1.8.4 as part of ZBX-3206. Value of "Timeout" configuration parameter should now be respected for "net.tcp.port[]" check.

Comment by Bashman [ 2011 Jan 20 ]

I made the same test with Zabbix agentd (win) v1.8.4 with the same results:

1) Zabbix Server:

time zabbix_get -s"x.x.x.x" -p10050 -k"net.tcp.port[y.y.y.y,1433]"
0

real 0m23.106s
user 0m0.000s
sys 0m0.000s

2) Zabbix Client:

c:\zabbix>zabbix_agentd.exe -V
Zabbix Agent Win32 (service) v1.8.4 (revision 16601) (4 January 2011)
Compilation time: Jan 4 2011 14:34:36

c:\zabbix>zabbix_agentd.exe -t net.tcp.port[y.y.y.y,1433]
net.tcp.port [u|0]

This last execution takes about 15 seconds.

Comment by Aleksandrs Saveljevs [ 2011 Jan 21 ]

Confirming that Timeout does not work on Windows. Works fine on Linux.

Comment by Bashman [ 2011 Apr 06 ]

Anything new about this issue?

Comment by Volker Fröhlich [ 2013 Apr 07 ]

Take a tcpdump on both sides! In my opinion this is an ephemeral port re-use issue.

Comment by Andris Zeila [ 2014 Sep 29 ]

Fixed in development branch svn://svn.zabbix.com/branches/dev/ZBX-3437

Shortly - On Windows now we will do non-blocking connects to wait for the specified timeout with select(). After connection has been estabilished the socket will be switched back to blocking mode.

Comment by dimir [ 2014 Nov 11 ]

Successfully tested. Please review my small changes in r50562.

Comment by Andris Zeila [ 2014 Nov 12 ]

Released in:

  • pre-2.5.0 r50564
Comment by Andris Zeila [ 2014 Nov 12 ]

(1) [D] https://www.zabbix.com/documentation/3.0/manual/introduction/whatsnew300

<dimir> At least the following item keys were also affected:

web.page.*
net.tcp.service
net.tcp.service.perf

So I guess either we add those to the list or just mention that any checks on windows that involve tcp connect will now support timeout at an attempt to connect to remote host.

wiper RESOLVED

<dimir> Looks great! CLOSED

Comment by richlv [ 2014 Nov 19 ]

(2) there seems to be a typo in an error message in src/libs/zbxcomms/comms.c ("occured"):

*error = zbx_strdup(*error, "A connection timeout occured.");

<dimir> Yeah, was also looking at this but didn't notice the typo. I thought more about "Connection timed out." though.

wiper RESOLVED in pre-2.5.0 r50686

sasha CLOSED

Generated at Fri Mar 29 07:36:27 EET 2024 using Jira 9.12.4#9120004-sha1:625303b708afdb767e17cb2838290c41888e9ff0.