Bug #53061 [Opn]: filesystem functions deal poorly with out of disk space conditions
Edit report at http://bugs.php.net/bug.php?id=53061&edit=1 ID: 53061 Updated by: cataphr...@php.net Reported by:crrodriguez at opensuse dot org Summary:filesystem functions deal poorly with out of disk space conditions Status: Open Type: Bug Package:Filesystem function related Operating System: *nix PHP Version:5.3SVN-2010-10-14 (SVN) Block user comment: N New Comment: Well, there's the hint that the return value is smaller than strlen(str_repeat("fail", 1024000)) = 4096000. I'm not sure if adding a warning here is appropriate, we try to avoid warnings in correct scripts so that programmers don't have to use "@" to have notice/warning free code. Even if we consider a disk full an exceptional circumstance that merited breaking this guideline, a warning would be of little use; unless the logs are in a separate filesystems, the warning message would not be able to be logged. So: * We can't return false, because a part of the data may have been written and we need to return how much. * A warning would be of no use in most circumstances. Maybe we could return a false+warning if no data has been written, but it seems dangerous because sometimes programmers would be warned of an out-of-disk-space conditional and other times they wouldn't. Previous Comments: [2010-10-15 02:47:11] crrodriguez at opensuse dot org A liltte bit better test case: # dd if=/dev/zero of=/tmp/vfs bs=1024 count=1024 # losetup /dev/loop0 /tmp/vfs # mkfs -t ext2 -m 1 -v /dev/loop0 # mkdir /mnt/vfs # mount -t ext2 /dev/loop0 /mnt/vfs int(1003520) bool(true) bool(true) ls -l /mnt/vfs/foo.txt -rw-r--r-- 1 root root 1003520 oct 14 21:43 /mnt/vfs/foo.txt Partial data on disk, no warning or return values hinting the problem. [2010-10-14 07:00:13] cataphr...@php.net Why would fflush return false? Nothing was written by fwrite, so the flush is a no-op. [2010-10-14 06:35:11] crrodriguez at opensuse dot org Description: Filesystem functions have IMHO the wrong behaviuor on disk-full conditions Test script: --- http://bugs.php.net/bug.php?id=53061&edit=1
Bug #53061 [Opn]: filesystem functions deal poorly with out of disk space conditions
Edit report at http://bugs.php.net/bug.php?id=53061&edit=1 ID: 53061 User updated by:crrodriguez at opensuse dot org Reported by:crrodriguez at opensuse dot org Summary:filesystem functions deal poorly with out of disk space conditions Status: Open Type: Bug Package:Filesystem function related Operating System: *nix PHP Version:5.3SVN-2010-10-14 (SVN) Block user comment: N New Comment: A liltte bit better test case: # dd if=/dev/zero of=/tmp/vfs bs=1024 count=1024 # losetup /dev/loop0 /tmp/vfs # mkfs -t ext2 -m 1 -v /dev/loop0 # mkdir /mnt/vfs # mount -t ext2 /dev/loop0 /mnt/vfs int(1003520) bool(true) bool(true) ls -l /mnt/vfs/foo.txt -rw-r--r-- 1 root root 1003520 oct 14 21:43 /mnt/vfs/foo.txt Partial data on disk, no warning or return values hinting the problem. Previous Comments: [2010-10-14 07:00:13] cataphr...@php.net Why would fflush return false? Nothing was written by fwrite, so the flush is a no-op. [2010-10-14 06:35:11] crrodriguez at opensuse dot org Description: Filesystem functions have IMHO the wrong behaviuor on disk-full conditions Test script: --- http://bugs.php.net/bug.php?id=53061&edit=1
Bug #53061 [Opn]: filesystem functions deal poorly with out of disk space conditions
Edit report at http://bugs.php.net/bug.php?id=53061&edit=1 ID: 53061 Updated by: cataphr...@php.net Reported by:crrodriguez at opensuse dot org Summary:filesystem functions deal poorly with out of disk space conditions Status: Open Type: Bug Package:Filesystem function related Operating System: *nix PHP Version:5.3SVN-2010-10-14 (SVN) Block user comment: N New Comment: Why would fflush return false? Nothing was written by fwrite, so the flush is a no-op. Previous Comments: [2010-10-14 06:35:11] crrodriguez at opensuse dot org Description: Filesystem functions have IMHO the wrong behaviuor on disk-full conditions Test script: --- http://bugs.php.net/bug.php?id=53061&edit=1