Subject: | Net::FTP rmdir recursive ends in infinite loop |
Date: | Mon, 22 Dec 2008 19:51:55 +0100 |
To: | bug-libnet [...] rt.cpan.org |
From: | "Henrik Teichmann" <henrik.teichmann [...] googlemail.com> |
I use rmdir('some_dir', 1) to delete a directory including its content
recursively. One file is not removeable for the FTP-User, so I would
expect an error from rmdir not being able to delete some_dir, but
instead it ends in an infinite loop.
Tested and reproducable with libnet-1.22.
Heres the debug output:
Net::FTP=GLOB(0x830c990)>>> DELE some_dir/some_unaccessible_file
Net::FTP=GLOB(0x830c990)<<< 550 some_dir/some_unaccessible_file:
Permission denied
Net::FTP=GLOB(0x830c990)>>> RMD some_dir/some_unaccessible_file
Net::FTP=GLOB(0x830c990)<<< 550 some_dir/some_unaccessible_file:
Permission denied
Net::FTP=GLOB(0x830c990)>>> PASV
Net::FTP=GLOB(0x830c990)<<< 227 Entering Passive Mode (89,238,65,166,214,241).
Net::FTP=GLOB(0x830c990)>>> NLST some_dir/some_unaccessible_file
Net::FTP=GLOB(0x830c990)<<< 150 Opening ASCII mode data connection for file list
Net::FTP=GLOB(0x830c990)<<< 226 Transfer complete
Net::FTP=GLOB(0x830c990)>>> DELE some_dir/some_unaccessible_file
Net::FTP=GLOB(0x830c990)<<< 550 some_dir/some_unaccessible_file:
Permission denied
Net::FTP=GLOB(0x830c990)>>> RMD some_dir/some_unaccessible_file
Net::FTP=GLOB(0x830c990)<<< 550 some_dir/some_unaccessible_file:
Permission denied
Net::FTP=GLOB(0x830c990)>>> PASV
Net::FTP=GLOB(0x830c990)<<< 227 Entering Passive Mode (89,238,65,166,190,82).
Net::FTP=GLOB(0x830c990)>>> NLST some_dir/some_unaccessible_file
Net::FTP=GLOB(0x830c990)<<< 150 Opening ASCII mode data connection for file list
Net::FTP=GLOB(0x830c990)<<< 226 Transfer complete
Net::FTP=GLOB(0x830c990)>>> DELE some_dir/some_unaccessible_file
Net::FTP=GLOB(0x830c990)<<< 550 some_dir/some_unaccessible_file:
Permission denied
Net::FTP=GLOB(0x830c990)>>> RMD some_dir/some_unaccessible_file
Net::FTP=GLOB(0x830c990)<<< 550 some_dir/some_unaccessible_file:
Permission denied
Net::FTP=GLOB(0x830c990)>>> PASV
Net::FTP=GLOB(0x830c990)<<< 227 Entering Passive Mode (89,238,65,166,210,107).
Net::FTP=GLOB(0x830c990)>>> NLST some_dir/some_unaccessible_file
Net::FTP=GLOB(0x830c990)<<< 150 Opening ASCII mode data connection for file list
Net::FTP=GLOB(0x830c990)<<< 226 Transfer complete
Net::FTP=GLOB(0x830c990)>>> DELE some_dir/some_unaccessible_file
Net::FTP=GLOB(0x830c990)<<< 550 some_dir/some_unaccessible_file:
Permission denied
Net::FTP=GLOB(0x830c990)>>> RMD some_dir/some_unaccessible_file
Net::FTP=GLOB(0x830c990)<<< 550 some_dir/some_unaccessible_file:
Permission denied
Net::FTP=GLOB(0x830c990)>>> PASV
Net::FTP=GLOB(0x830c990)<<< 227 Entering Passive Mode (89,238,65,166,144,163).
Net::FTP=GLOB(0x830c990)>>> NLST some_dir/some_unaccessible_file
Net::FTP=GLOB(0x830c990)<<< 150 Opening ASCII mode data connection for file list
Net::FTP=GLOB(0x830c990)<<< 226 Transfer complete
Net::FTP=GLOB(0x830c990)>>> DELE some_dir/some_unaccessible_file
Net::FTP=GLOB(0x830c990)<<< 550 some_dir/some_unaccessible_file:
Permission denied
Net::FTP=GLOB(0x830c990)>>> RMD some_dir/some_unaccessible_file
Net::FTP=GLOB(0x830c990)<<< 550 some_dir/some_unaccessible_file:
Permission denied
Merry christmas, Henrik