From 27bdde86c75ebba99854c64aad81437993e310e8 Mon Sep 17 00:00:00 2001 From: saper Date: Tue, 11 Nov 2014 00:25:54 +0100 Subject: [PATCH] More debug diagnostics for upload by URL Increase debug log verbosity to troubleshoot file upload by URL issues. Bug: 73200 Change-Id: I530bd38b85911e0c153280b7d9a9da023f799b02 --- includes/upload/UploadFromUrl.php | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/includes/upload/UploadFromUrl.php b/includes/upload/UploadFromUrl.php index b60564017e..5e418ea6a8 100644 --- a/includes/upload/UploadFromUrl.php +++ b/includes/upload/UploadFromUrl.php @@ -231,12 +231,18 @@ class UploadFromUrl extends UploadBase { * @return int Number of bytes handled */ public function saveTempFileChunk( $req, $buffer ) { + wfDebugLog( 'fileupload', 'Received chunk of ' . strlen( $buffer ) . ' bytes' ); $nbytes = fwrite( $this->mTmpHandle, $buffer ); if ( $nbytes == strlen( $buffer ) ) { $this->mFileSize += $nbytes; } else { // Well... that's not good! + wfDebugLog( + 'fileupload', + 'Short write ' . $this->nbytes . '/' . strlen( $buffer ) . + ' bytes, aborting with ' . $this->mFileSize . ' uploaded so far' + ); fclose( $this->mTmpHandle ); $this->mTmpHandle = false; } @@ -262,6 +268,7 @@ class UploadFromUrl extends UploadBase { if ( !$this->mTmpHandle ) { return Status::newFatal( 'tmp-create-error' ); } + wfDebugLog( 'fileupload', 'Temporary file created "' . $this->mTempPath . '"' ); $this->mRemoveTempFile = true; $this->mFileSize = 0; @@ -275,6 +282,11 @@ class UploadFromUrl extends UploadBase { if ( $wgCopyUploadTimeout && !isset( $options['timeout'] ) ) { $options['timeout'] = $wgCopyUploadTimeout; } + wfDebugLog( + 'fileupload', + 'Starting download from "' . $this->mUrl . '" ' . + '<' . implode( ',', array_keys( array_filter( $options ) ) ) . '>' + ); $req = MWHttpRequest::factory( $this->mUrl, $options ); $req->setCallback( array( $this, 'saveTempFileChunk' ) ); $status = $req->execute(); @@ -288,8 +300,14 @@ class UploadFromUrl extends UploadBase { return Status::newFatal( 'tmp-write-error' ); } - if ( !$status->isOk() ) { - return $status; + wfDebugLog( 'fileupload', $status ); + if ( $status->isOk() ) { + wfDebugLog( 'fileupload', 'Download by URL completed successfuly.' ); + } else { + wfDebugLog( + 'fileupload', + 'Download by URL completed with HTTP status ' . $req->getStatus() + ); } return $status; -- 2.20.1