curl-library
RE: Multi Interface loop hanging with FTP-Transfer on Win32, curl-7.18.2
Date: Thu, 21 Aug 2008 09:10:18 +0100
Hi all,
thank you, Daniel, for the quick response.
> > It seems like libcurl is waiting on a response from the server, but
> > the final "226 Transfer complete" from the server is missed by
libcurl.
>
> So it is sent by the server and received by your computer but libcurl
> doesn't "see" it?
Yes, so it seems. These are the last few lines my program dumps, right
before it hangs:
-------> Read 16384 bytes from
"d:\Work\NetIO-Test\EasyMultiTest\data\Debug\EasyMultiTest.pch"
-------> Read 16384 bytes from
"d:\Work\NetIO-Test\EasyMultiTest\data\Debug\EasyMultiTest.pch"
-------> Read 16384 bytes from
"d:\Work\NetIO-Test\EasyMultiTest\data\Debug\EasyMultiTest.pch"
-------> Closing
"d:\Work\NetIO-Test\EasyMultiTest\data\Debug\EasyMultiTest.pch"
* STATE: PERFORM => DONE handle 0x4d5c00; (connection #3)
* Expire cleared
* Remembering we are in dir
"testfiles/awurf/EasyMultiTest/data/Debug/"
< 226 Transfer complete.
* Connection #3 to host dreamhh01.eur.adobe.com left intact
* STATE: DONE => COMPLETED handle 0x4d5c00; (connection #-5000)
-------> Remove handle 004E7870, code 0: No error -> Cleanup
============================ HANG ============================
Lines starting with "------->" are generated by the program, see listing
at <http://curl.haxx.se/mail/lib-2008-08/0276.html>. So, the "226
Transfer complete." Is received by libcurl and even dumped out. I don't
know, if the hanger has to do with a missed "226" code. All I see is
that the code is obviously sent by the server and received by libcurl.
> > After a reasonable timeout (10 minutes or so), the server sends a
> > timeout response (a "421" code, if I remember correctly) which is
> > recognized by the libcurl client.
>
> ... but this response is found and recognized?
I can't say exactly. After the program hangs for a few minutes, it
awakes and the next lines I see are like follows:
============================ HANG ============================
* FTP response reading failed
* Closing connection #2
* STATE: DOING => COMPLETED handle 0x4f9238; (connection #-5000)
> QUIT
* FTP 0x50b178 state change from STOP to QUIT
< 421 No Transfer Timeout (600 seconds): closing control connection.
* FTP 0x50b178 state change from QUIT to STOP
* Closing connection #0
> QUIT
* FTP 0x50b9c0 state change from STOP to QUIT
< 421 No Transfer Timeout (600 seconds): closing control connection.
* FTP 0x50b9c0 state change from QUIT to STOP
* Closing connection #1
> QUIT
* FTP 0x50ce70 state change from STOP to QUIT
< 421 No Transfer Timeout (600 seconds): closing control connection.
* FTP 0x50ce70 state change from QUIT to STOP
* Closing connection #3
This gives the mentioned "421" response code. But it gets even weird.
Today in the morning, on one test run I got the following result after
the hanger:
============================ HANG ============================
* FTP response reading failed
* Closing connection #0
* STATE: DOING => COMPLETED handle 0x4f9238; (connection #-5000)
> QUIT
* FTP 0x50b9c0 state change from STOP to QUIT
< 221 Goodbye.
* FTP 0x50b9c0 state change from QUIT to STOP
* Closing connection #1
> QUIT
* FTP 0x50c418 state change from STOP to QUIT
< 221 Goodbye.
* FTP 0x50c418 state change from QUIT to STOP
* Closing connection #2
> QUIT
* FTP 0x50ce70 state change from STOP to QUIT
< 221 Goodbye.
* FTP 0x50ce70 state change from QUIT to STOP
* Closing connection #3
Seems quite similar, but the server response is a "221". So I suppose
that it is libcurl that waits for something. The line "FTP response
reading failed" tells the same story.
Besides: Tests with the easy interface have never shown this hanger on
the same server and transfer data.
Regards,
Andreas
Received on 2008-08-21