misc/176439: Possible Fping incompatibility with FreeBSD

Alexandre RAYNAUD alexandre.raynaud at sallanches.fr
Tue Feb 26 13:20:01 UTC 2013


>Number:         176439
>Category:       misc
>Synopsis:       Possible Fping incompatibility with FreeBSD
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Feb 26 13:20:00 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator:     Alexandre RAYNAUD
>Release:        9.1-RELEASE
>Organization:
MAIRIE DE SALLANCHES
>Environment:
FreeBSD zabbix 9.1-RELEASE FreeBSD 9.1-RELEASE #0 r243825: Tue Dec  4 09:23:10 UTC 2012     root at farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  amd64
>Description:
In precise circumstances, Fping 3.4 command gives inconsistent results on FreeBSD OS using either Fping 3.4 FreeBSD port or Fping 3.4 compilled from source.

>From a FreeBSD box, using fping command to check an unreachable host_ip's availability located in the same subnet as the FreeBSD Host, fping get stuck at the second try returning many errors ("host_ip  error while sending ping: Host is down"). The first try will be ok.

If we wait few seconds (maybe 1 minute) between each test, the error doesn't occur.

The returned fping error message part "error while sending ping" is comming from fping source (fping.c) at line 1581
the second part of fping error message "Host is down" seems to come from /usr/src/sys/sys/errno.h line  133 (#define EHOSTDOWN       64              /* Host is down */).

As consequence of this issue, applications relying on Fping to check host availability cannot be fully trusted.

(ps : Using fping with ip located on external/routed network, fping always
works normally, without any error)
>How-To-Repeat:
To repeat the problem :  
-The  FreeBSD box from where we run fping command must have an interface configured with an ip address in the same subnet as the host_ip we want to check the availability.
The host_ip we want to check availability MUST BE DOWN. 
All the tests must be done with THE SAME HOST_IP.

Running {fping host_ip} for the first time return : {host_ip is unreachable} which is the expected output.
As soon as the firt command finish (important to not wait), running another {fping host_ip} return : 
{
host_ip error while sending ping: Host is down
host_ip error while sending ping: Host is down
host_ip error while sending ping: Host is down
host_ip error while sending ping: Host is down
host_ip error while sending ping: Host is down
host_ip error while sending ping: Host is down
host_ip error while sending ping: Host is down
..
}

Then pfing will get stuck and if you ctrl-c, it will stops and you will
get the normal fping output : {^Chost_ip is unreachable}

Remark : if you wait about 1 minute between 2 testS, no error occur.
>Fix:
Don't know how to fix the problem but it seems to be related with a caching issue.

>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list