Nmap Development mailing list archives

RE: nmap stuck in infinite loop


From: "Ganga Bhavani" <GBhavani () everdreamcorp com>
Date: Tue, 14 Feb 2006 13:24:18 -0800

Thanks. --host_timeout mitigates the problem by timing out, when the nmap hits the race condition. It would be great if 
the author can fix this problem.

Thanks,
Ganga

-----Original Message-----
From: nmap-dev-bounces () insecure org
[mailto:nmap-dev-bounces () insecure org]On Behalf Of Michael Hornung
Sent: Monday, February 13, 2006 1:12 PM
To: nmap-dev () insecure org
Subject: Re: nmap stuck in infinite loop 


Ganga, I'm glad someone else has corroborated the same problem I reported 
on 26 January.  Unfortunately I have not fixed it but instead reverted to 
3.93 which still meets my needs and does not exhibit that problem.

-Mike

On Mon, 13 Feb 2006 at 10:24, Ganga Bhavani wrote:

|HI,
|
| I'm running nmap-3.95 in Windows xp system with the following command line parameter on Class B network. 
|
|nmap -O -F -debug -debug -debug -debug 10.10.191.0/16. 
|
|The nmap is executing in the infinite loop. It has been logging the following message for more than 30hrs. 
|
|**TIMING STATS**: IP, probes active/freshportsleft/retry_stack/outstanding/retra
|nwait/onbench, cwnd/ccthresh/delay, timeout/srtt/rttvar/
|   Groupstats (1/30 incomplete): 0/*/*/*/*/* 12.05/2/* 1890847/272571/404569
|   10.10.4.84: 0/0/4/0/0/0 1.00/2/0 1642338/346594/323936
|
|The code has been stuck in the following while loop in scan_engine.cc.
|  while(USI->numIncompleteHosts() != 0) {
|    doAnyPings(USI);
|    doAnyRetransmits(USI);
|    doAnyNewProbes(USI);
|    gettimeofday(&USI->now, NULL);
|    // printf("TRACE: Finished doAnyNewProbes() at %.4fs\n", o.TimeSinceStartMS(
|&USI->now) / 1000.0);
|    printAnyStats(USI);
|    waitForResponses(USI);
|    gettimeofday(&USI->now, NULL);
|    // printf("TRACE: Finished waitForResponses() at %.4fs\n", o.TimeSinceStartM
|S(&USI->now) / 1000.0);
|    processData(USI);
|  }
|
|I figured out that the probes active, freshports left,outstanding, retranwait,onbench are all 0 excpet the retry_stack 
is 4 and num of incomplete hosts is 1.When I further debugged, I found that it is not sending any probe or retransmit. 
|In this state, sendOK is returning false because the condition  if (TIMEVAL_MSEC_SUBTRACT(USI->now, last_wait) > 
to_ms) is true. And due to the failure of the sendOK, the functions in the "while" loop are not sending any 
probe/ping/retransmit.
|It does not remove the number of incomplete hosts as the retry stack size is more than 0. Due to this race condition, 
nmap goes into infinite loop and never recovers. 
|
|Can someone familiar with this part of the code help me fix this issue ?
|
|Thanks,
|Ganga
| 
|
|
|
|
|
|_______________________________________________
|Sent through the nmap-dev mailing list
|http://cgi.insecure.org/mailman/listinfo/nmap-dev
|
|


_______________________________________________
Sent through the nmap-dev mailing list
http://cgi.insecure.org/mailman/listinfo/nmap-dev


_______________________________________________
Sent through the nmap-dev mailing list
http://cgi.insecure.org/mailman/listinfo/nmap-dev


Current thread: