Re: [PHP] Very Large File Splatter

2013-03-04 Thread Richard Quadling
On 22 February 2013 21:04, Brian Smither bhsmit...@gmail.com wrote:
 PHP 5.4.4-TS-VC9 on Windows XP SP3 NTFS non-system drive with 18GB free.

 I dare not try to replicate this. As such, I cannot firmly place the blame on 
 PHP.

 I have peppered a PHP application with a call to a function which 
 appends-only to a logfile the parameters passed to it. Each pass of the 
 application creates many MB of content.

 It is conceivable that I ran out of hard drive space.

 When that which what I was working on seemed to be acting very weird, I 
 rebooted the computer only to see thousands of lines scroll by from Windows 
 repairing the file system.

 I discovered logfile contents in many dozens of files. The timestamp and 
 filesize of the damaged files were not changed. Only the contents replaced 
 with slices of the logfile.

 Again, I'm not going to try to 'intentionally' replicate this, so I ask:

 Has PHP's interface with the NTFS file sub-system ever been reported to 
 splatter a file across the contents of a drive?

At this stage, the safest option is a restore from your backups.

Cross linked files often mean the tail end of one of the cross linked
files is now orphaned.

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP] Very Large File Splatter

2013-02-22 Thread Brian Smither
PHP 5.4.4-TS-VC9 on Windows XP SP3 NTFS non-system drive with 18GB free.

I dare not try to replicate this. As such, I cannot firmly place the blame on 
PHP.

I have peppered a PHP application with a call to a function which appends-only 
to a logfile the parameters passed to it. Each pass of the application creates 
many MB of content.

It is conceivable that I ran out of hard drive space.

When that which what I was working on seemed to be acting very weird, I 
rebooted the computer only to see thousands of lines scroll by from Windows 
repairing the file system.

I discovered logfile contents in many dozens of files. The timestamp and 
filesize of the damaged files were not changed. Only the contents replaced with 
slices of the logfile.

Again, I'm not going to try to 'intentionally' replicate this, so I ask:

Has PHP's interface with the NTFS file sub-system ever been reported to 
splatter a file across the contents of a drive?



--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Very Large File Splatter

2013-02-22 Thread Sebastian Krebs
2013/2/22 Brian Smither bhsmit...@gmail.com

 PHP 5.4.4-TS-VC9 on Windows XP SP3 NTFS non-system drive with 18GB free.

 I dare not try to replicate this. As such, I cannot firmly place the blame
 on PHP.

 I have peppered a PHP application with a call to a function which
 appends-only to a logfile the parameters passed to it. Each pass of the
 application creates many MB of content.

 It is conceivable that I ran out of hard drive space.

 When that which what I was working on seemed to be acting very weird, I
 rebooted the computer only to see thousands of lines scroll by from Windows
 repairing the file system.

 I discovered logfile contents in many dozens of files. The timestamp and
 filesize of the damaged files were not changed. Only the contents replaced
 with slices of the logfile.

 Again, I'm not going to try to 'intentionally' replicate this, so I ask:

 Has PHP's interface with the NTFS file sub-system ever been reported to
 splatter a file across the contents of a drive?


Is the PHP-interpreter even possible to create something like this? As far
as I know PHP utilizes the common OS-syscalls to interact with the
filesystem, so it doesn't interact with the harddrive directly, but online
with the FS-driver. Did you shutdown the system cleanly, when you
recognized this behaviour? If not, it would explain, that the windows
assumes the filesystem must be repaired. I can imagine, that this repair
process associated the broken data with the wrong file-entries in the
fs-table, which could be an explanation for the behaviour you described.

Regards,
Sebastian




 --
 PHP General Mailing List (http://www.php.net/)
 To unsubscribe, visit: http://www.php.net/unsub.php




-- 
github.com/KingCrunch


Re: [PHP] Very Large File Splatter

2013-02-22 Thread Daniel Brown
On Fri, Feb 22, 2013 at 4:04 PM, Brian Smither bhsmit...@gmail.com wrote:
 PHP 5.4.4-TS-VC9 on Windows XP SP3 NTFS non-system drive with 18GB free.

 I dare not try to replicate this. As such, I cannot firmly place the blame on 
 PHP.

 I have peppered a PHP application with a call to a function which 
 appends-only to a logfile the parameters passed to it. Each pass of the 
 application creates many MB of content.

 It is conceivable that I ran out of hard drive space.

 When that which what I was working on seemed to be acting very weird, I 
 rebooted the computer only to see thousands of lines scroll by from Windows 
 repairing the file system.

 I discovered logfile contents in many dozens of files. The timestamp and 
 filesize of the damaged files were not changed. Only the contents replaced 
 with slices of the logfile.

 Again, I'm not going to try to 'intentionally' replicate this, so I ask:

 Has PHP's interface with the NTFS file sub-system ever been reported to 
 splatter a file across the contents of a drive?

Not to my knowledge.  It actually sounds to me like a code issue.
Are you using file_put_contents() with the parameters in reverse
order, by chance?

If you can show the write portion of the code in your iteration,
as well as a sample of the naming convention, it may offer more clues.
 In any case, either disk space or inode exhaustion is likely the
reason things borked-up for you.

-- 
/Daniel P. Brown
Network Infrastructure Manager
http://www.php.net/

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Very Large File Splatter

2013-02-22 Thread Brian Smither
If you can show the write portion of the code in your iteration,
as well as a sample of the naming convention, it may offer more clues.

$dbgMsg = a diagnostic string maybe 5K in length;
$dbg_fp = fopen(ROOT_DIR.DS.dbg_log.txt, a); // Derives a full path
fwrite($dbg_fp, $dbgMsg);
fclose($dbg_fp);

Did you shutdown the system cleanly, when you
recognized this behaviour?

Yes, a clean reboot. Not a reset-switch restart, nor a power-cycle restart.

Sample lines from bootex.log:

Checking file system on L:
The type of the file system is NTFS.

One of your disks needs to be checked for consistency. You
may cancel the disk check, but it is strongly recommended
that you continue.
Windows will now check the disk.
Attribute record of type 0x80 and instance tag 0x3 is cross linked
starting at 0x20b3b for possibly 0x100 clusters.
Attribute record of type 0x80 and instance tag 0x3 is cross linked
starting at 0x20b3b for possibly 0x100 clusters.
Some clusters occupied by attribute of type 0x80 and instance tag 0x3
in file 0x3680 is already in use.
Deleting corrupt attribute record (128, $J)
from file record segment 13952.

Sorting index $O in file 25.
The object id in file 0x4d14 does not appear in the object
id index in file 0x19.
Inserting an index entry into index $O of file 25.
The object id in file 0x4d17 does not appear in the object
id index in file 0x19.
Inserting an index entry into index $O of file 25.
The object id in file 0x4d19 does not appear in the object
id index in file 0x19.

Recovering orphaned file .svn (19642) into directory file 13948.
Recovering orphaned file CATEGO~1.TPL (19720) into directory file 28688.
Recovering orphaned file categories.tpl (19720) into directory file 28688.
Recovering orphaned file CATEGO~1.BAK (19721) into directory file 28688.
Recovering orphaned file categories.tpl.bak (19721) into directory file 28688.

And many, many more of each section.



--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php