2014-03-06 53 views
0

我有一個後臺腳本,它可以生成html文件(大小爲100-500KB)作爲副產品,當它累積了500個文件時,它將它們打包成一個.tar.gz文件並存檔。迄今爲止,它不停運轉了幾個星期,併產生131個名爲.tar.gz文件,直到今天早上,當發生以下異常:檢查PharData :: buildFromDirectory是否無法將文件的內容寫入tar?

Uncaught exception 'PharException' with message 'tar-based phar 
"E:/xampp/.../archive/1394109645.tar" cannot be created, contents of file 
"58836.html" could not be written' in E:/xampp/.../background.php:68 

的代碼負責歸檔

$name = $path_archive . $set . '.tar'; 
$archive = new PharData($name); 
$archive->buildFromDirectory($path_input); // <--- line 68 
$archive->compress(Phar::GZ); 
unset($archive); 
unlink($name);    
array_map('unlink', glob($path_input . '*')); 

我都檢查和至今

  • 我找不到任何東西在HTML文件本身不規則確信,
  • 沒有別的是過程中uching這個文件,
  • 腳本超時和內存是無限
  • 和足夠的備用內存和磁盤空間

什麼引起的異常和/或是否有一種方式來獲得更詳細的來自PharData::buildFromDirectory的消息?

ENV:虛擬XP(在VirtualBox中)在Win7的主機共享文件夾運行的便攜式XAMPP(1.8.2,PHP 25年4月5日)

回答

0

我今天的bug狩獵小時後解決類似的問題。這是由磁盤的一個分區上的空間太少造成的。在創建了tar.gz存檔的分區中,我有足夠的空間,但從另一個分區中刪除某些日誌文件後,所有操作都會再次運行。

我認爲對象PharData可能在某處存儲了一些臨時數據,這就是爲什麼會發生這種情況,即使在創建tar.gz存檔的磁盤上有足夠的空間。

+0

看着它,但發現我目前正在單個分區磁盤上運行。我有一種感覺,這個問題可能是由我運行的env引起的 - 如果VirtualBox共享文件夾插件出現故障,它肯定會影響寫作過程 –