Call wfThumbIncrAttemptFailures() in thumb.php on fatals
authorAaron Schulz <aschulz@wikimedia.org>
Mon, 21 Apr 2014 16:27:04 +0000 (09:27 -0700)
committerAaron Schulz <aschulz@wikimedia.org>
Mon, 21 Apr 2014 16:27:04 +0000 (09:27 -0700)
Change-Id: I3dbe07d12abdc265d377cd05bb87c837df156995

includes/filerepo/file/File.php
thumb.php

index fb20e96..84daa80 100644 (file)
@@ -1031,7 +1031,7 @@ abstract class File {
                        $tmpFile->bind( $thumb ); // keep alive with $thumb
 
                        if ( !$thumb ) { // bad params?
-                               $thumb = null;
+                               $thumb = false;
                        } elseif ( $thumb->isError() ) { // transform error
                                $this->lastError = $thumb->toText();
                                // Ignore errors if requested
index 3f8e0d3..cf7c2d6 100644 (file)
--- a/thumb.php
+++ b/thumb.php
@@ -315,7 +315,14 @@ function wfStreamThumb( array $params ) {
        }
 
        // Thumbnail isn't already there, so create the new thumbnail...
+       $thumb = null;
        try {
+               // Record failures on PHP fatals too
+               register_shutdown_function( function() use ( &$thumb, $img, $thumbName ) {
+                       if ( $thumb === null ) { // transform() gave a fatal
+                               wfThumbIncrAttemptFailures( $img, $thumbName );
+                       }
+               } );
                $thumb = $img->transform( $params, File::RENDER_NOW );
        } catch ( Exception $ex ) {
                // Tried to select a page on a non-paged file?