Bug #77957 [NEW]: some FTP function show inappropriate error message "Operation now in progress"

From: Date: Wed, 01 May 2019 15:28:05 +0000
Subject: Bug #77957 [NEW]: some FTP function show inappropriate error message "Operation now in progress"
Groups: php.bugs 
Request: Send a blank email to php-bugs+get-220668@lists.php.net to get a copy of this message
From: sadaakikawata at sencorp dot co dot jp Operating system: Fedora PHP version: 7.3.4 Package: FTP related Bug Type: Bug Bug description:some FTP function show inappropriate error message "Operation now in progress" Description: ------------ Some FTP function (ftp_nlist, ftp_put, ..etc) show error message "failed: Operation now in progress (115)" when failed to establish FTP data connection. This error message comes from EINPROGRESS, and EINPROGRESS comes from connect because sockfd is non-blocking. https://github.com/php/php-src/blob/PHP-7.3.4/main/network.c#L308 Therefore, this error message not show the root cause of connection failure. I think result from SO_ERROR should be used for displaying error message. https://github.com/php/php-src/blob/PHP-7.3.4/main/network.c#L352 Test script: --------------- <?php // Assume that there is a FTP server on localhost whose port for control connection(21) is reachable, but ports for data connection is unreachable. // eg. // sudo docker run -d -e FTP_USER_PASS=pass -e FTP_USER_NAME=test -e FTP_USER_HOME=/home/test --name ftpd_server -p 21:21 -e "PUBLICHOST=localhost" --rm stilliard/pure-ftpd:hardened $c = ftp_connect('localhost', 21); ftp_login($c, 'test', 'pass'); ftp_pasv($c, true); ftp_nlist($c, './'); Expected result: ---------------- more appropriate error message is displayed. Actual result: -------------- Warning: ftp_nlist(): php_connect_nonb() failed: Operation now in progress (115) in /***/test.php on line 8 -- Edit bug report at https://bugs.php.net/bug.php?id=77957&edit=1 -- Try a snapshot (PHP 5.4): https://bugs.php.net/fix.php?id=77957&r=trysnapshot54 Try a snapshot (PHP 5.5): https://bugs.php.net/fix.php?id=77957&r=trysnapshot55 Try a snapshot (trunk): https://bugs.php.net/fix.php?id=77957&r=trysnapshottrunk Fixed in SVN: https://bugs.php.net/fix.php?id=77957&r=fixed Fixed in release: https://bugs.php.net/fix.php?id=77957&r=alreadyfixed Need backtrace: https://bugs.php.net/fix.php?id=77957&r=needtrace Need Reproduce Script: https://bugs.php.net/fix.php?id=77957&r=needscript Try newer version: https://bugs.php.net/fix.php?id=77957&r=oldversion Not developer issue: https://bugs.php.net/fix.php?id=77957&r=support Expected behavior: https://bugs.php.net/fix.php?id=77957&r=notwrong Not enough info: https://bugs.php.net/fix.php?id=77957&r=notenoughinfo Submitted twice: https://bugs.php.net/fix.php?id=77957&r=submittedtwice register_globals: https://bugs.php.net/fix.php?id=77957&r=globals PHP 4 support discontinued: https://bugs.php.net/fix.php?id=77957&r=php4 Daylight Savings: https://bugs.php.net/fix.php?id=77957&r=dst IIS Stability: https://bugs.php.net/fix.php?id=77957&r=isapi Install GNU Sed: https://bugs.php.net/fix.php?id=77957&r=gnused Floating point limitations: https://bugs.php.net/fix.php?id=77957&r=float No Zend Extensions: https://bugs.php.net/fix.php?id=77957&r=nozend MySQL Configuration Error: https://bugs.php.net/fix.php?id=77957&r=mysqlcfg

« previous php.bugs (#220668) next »