Bug #64342 [Fbk->Opn]: ZipArchive::Close returns false on large file trees
| From: | kolan_n at mail dot ru | Date: | Thu, 21 Mar 2013 18:34:36 +0000 |
| Subject: | Bug #64342 [Fbk->Opn]: ZipArchive::Close returns false on large file trees | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-177971@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=64342&edit=1
ID: 64342
User updated by: kolan_n at mail dot ru
Reported by: kolan_n at mail dot ru
Summary: ZipArchive::Close returns false on large file trees
-Status: Feedback
+Status: Open
Type: Bug
Package: Zip Related
Operating System: Windows
PHP Version: 5.4.12
Block user comment: N
Private report: N
New Comment:
I replaced this with PHAR and had found a bug in my script - it tryed to archivate a file which is
not present beacuse of some errors in hash calculation (used instead of inode in windows).
But the error message should be understandable. It should not be "Unknown error 55703736"
it should be "File not found". Also it will be good to add file existence check to
ZipArchive::addFile implementation.
Now I am using phar but found some bug in its implementation : if there is .gz in the filename (in
the middle of it), the archive type is set to tar.gz regardless of the flags.
Previous Comments:
------------------------------------------------------------------------
[2013-03-21 18:17:57] ab@php.net
It's usually not very handy to debug big scripts. It would rock if you could extract a small
snippet representing the wrong behavior.
------------------------------------------------------------------------
[2013-03-12 13:25:54] kolan_n at mail dot ru
Unknown error 55703736
------------------------------------------------------------------------
[2013-03-03 18:42:54] kolan_n at mail dot ru
Description:
------------
If you try to archive large file trees using ZipArchive you get false at ZipArchive::close().
ZipArchive::getStatusString says about "unknown error"
Test script:
---------------
install https://github.com/KOLANICH/PHP-Backuper
and dBug (or comment all "new dBug" in files, for example, with Notepad++)
download any archive, containing "large" tree, for example Drupal, and unpack it
write
<?
require_once("Backuper.php");
$b=new Backuper(
array(
'backup'=>array(
"FileTree"=>array(
"unpackedArchivePath"
)
)
)
);
$b->makeBackup();
?>
and launch
you will see that it doesn't work
the problem is on the https://github.com/KOLANICH/PHP-Backuper/blob/master/Backuper.php#L136
, $this->zip->close() returns false and the files would not be archivated.
Expected result:
----------------
$this->zip->close() returns true and the files are archivated
Actual result:
--------------
$this->zip->close() returns false and the files are not archivated
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=64342&edit=1