Make WordPress Core

Changeset 55403


Ignore:
Timestamp:
02/22/2023 02:19:26 PM (3 years ago)
Author:
SergeyBiryukov
Message:

Media: Revert [55348] from the 6.1 branch.

This will be committed to trunk instead.

See #52569.

Location:
branches/6.1/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/6.1/src/wp-admin/includes/class-wp-debug-data.php

    r55348 r55403  
    581581                                'memory' => ( defined( 'imagick::RESOURCETYPE_MEMORY' ) ? size_format( $imagick->getResourceLimit( imagick::RESOURCETYPE_MEMORY ) ) : $not_available ),
    582582                                'thread' => ( defined( 'imagick::RESOURCETYPE_THREAD' ) ? $imagick->getResourceLimit( imagick::RESOURCETYPE_THREAD ) : $not_available ),
    583                                 'time'   => ( defined( 'imagick::RESOURCETYPE_TIME' ) ? $imagick->getResourceLimit( imagick::RESOURCETYPE_TIME ) : $not_available ),
    584583                        );
    585584
     
    591590                                'imagick::RESOURCETYPE_MEMORY' => ( defined( 'imagick::RESOURCETYPE_MEMORY' ) ? size_format( $imagick->getResourceLimit( imagick::RESOURCETYPE_MEMORY ) ) : 'not available' ),
    592591                                'imagick::RESOURCETYPE_THREAD' => ( defined( 'imagick::RESOURCETYPE_THREAD' ) ? $imagick->getResourceLimit( imagick::RESOURCETYPE_THREAD ) : 'not available' ),
    593                                 'imagick::RESOURCETYPE_TIME'   => ( defined( 'imagick::RESOURCETYPE_TIME' ) ? $imagick->getResourceLimit( imagick::RESOURCETYPE_TIME ) : 'not available' ),
    594592                        );
    595593
  • branches/6.1/src/wp-includes/class-wp-image-editor-imagick.php

    r55348 r55403  
    255255
    256256        /**
    257          * Depending on configuration, Imagick processing may take time.
    258          *
    259          * Multiple problems exist if PHP timeouts before ImageMagick completed:
    260          * 1. Temporary files aren't cleaned by ImageMagick garbage collection.
    261          * 2. No clear error is provided.
    262          * 3. The cause of such timeout can be hard to pinpoint.
    263          *
    264          * This function, which is expected to be run before heavy image routines, resolves
    265          * point 1 above by aligning Imagick's timeout with PHP's timeout, assuming it's set.
    266          *
    267          * Note: Imagick resource exhaustion does not issue catchable exceptions (yet)
    268          *       See https://github.com/Imagick/imagick/issues/333
    269          * Note: The resource limit isn't saved/restored. It applies to
    270          *       subsequent image operations within the time of the HTTP request.
    271          *
    272          * @since 6.2.0
    273          *
    274          * @return int|null Whether the new limit or null if none was set
    275          */
    276         public static function setImagickTimeLimit() {
    277                 if ( ! defined( 'Imagick::RESOURCETYPE_TIME' ) ) {
    278                         return null;
    279                 }
    280 
    281                 // Returns PHP_FLOAT_MAX if unset.
    282                 $imagick_timeout = Imagick::getResourceLimit( Imagick::RESOURCETYPE_TIME );
    283 
    284                 // Convert to an integer, keeping in mind that: 0 === (int) PHP_FLOAT_MAX.
    285                 $imagick_timeout = $imagick_timeout > PHP_INT_MAX ? PHP_INT_MAX : (int) $imagick_timeout;
    286 
    287                 $php_timeout = intval( ini_get( 'max_execution_time' ) );
    288 
    289                 if ( $php_timeout > 1 && $php_timeout < $imagick_timeout ) {
    290                         // $limit = $php_timeout - 1;
    291                         $limit = floatval( 0.8 * $php_timeout );
    292                         Imagick::setResourceLimit( Imagick::RESOURCETYPE_TIME, $limit );
    293 
    294                         return $limit;
    295                 }
    296         }
    297 
    298         /**
    299257         * Resizes current image.
    300258         *
     
    321279
    322280                list( $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h ) = $dims;
    323 
    324                 self::setImagickTimeLimit();
    325281
    326282                if ( $crop ) {
     
    590546                }
    591547
    592                 self::setImagickTimeLimit();
    593 
    594548                try {
    595549                        $this->image->cropImage( $src_w, $src_h, $src_x, $src_y );
Note: See TracChangeset for help on using the changeset viewer.