Bug #53061 [Opn]: filesystem functions deal poorly with out of disk space conditions

2010-10-15 Thread cataphract
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

2010-10-14 Thread crrodriguez at opensuse dot org
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

2010-10-13 Thread cataphract
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