WordPress.org

Make WordPress Core

Opened 2 years ago

Closed 18 months ago

#19486 closed defect (bug) (fixed)

Remove unneeded set_time_limit() calls from network/sites.php

Reported by: dllh Owned by: westi
Milestone: 3.5 Priority: normal
Severity: normal Version: 3.0
Component: Network Admin Keywords: has-patch
Focuses: multisite Cc:

Description

A call to set_time_limit() was introduced in http://mu.trac.wordpress.org/changeset/860/trunk/wp-admin/wpmu-edit.php and has made its way into wp-admin/network/sites.php. Since the call is adjacent to spam actions that could make a network call to akismet that could take some time to return, its intention is presumably to allow the code enough time to execute without timing out even if the network call takes a while.

But set_time_limit() won't take network time into account, so it actually will not do what it seems designed to do. From php docs:

The set_time_limit() function and the configuration directive max_execution_time only affect the execution time of the script itself. Any time spent on activity that happens outside the execution of the script such as system calls using system(), stream operations, database queries, etc. is not included when determining the maximum time that the script has been running.

Further, calls to set_time_limit() can cause unexpected results in code that relies on any functions that call set_time_limit(). For example, if some code (in a cron job, say) sets the time limit to 0 (unlimited) because it knows it needs some time complete, then a subsequent call to a function that resets the time limit will halt the long-running execution once the new limit has been reached. Also from php docs:

When called, set_time_limit() restarts the timeout counter from zero. In other words, if the timeout is the default 30 seconds, and 25 seconds into script execution a call such as set_time_limit(20) is made, the script will run for a total of 45 seconds before timing out.

Since the call to set_time_limit() does not here do anything useful, it should be removed.

Attachments (1)

remove_set_time_limit.patch (556 bytes) - added by dllh 2 years ago.
Removes unneeded calls to set_time_limit()

Download all attachments as: .zip

Change History (5)

dllh2 years ago

Removes unneeded calls to set_time_limit()

comment:1 kurtpayne2 years ago

  • Cc kpayne@… added

Related #19847

Version 0, edited 2 years ago by kurtpayne (next)

comment:2 nacin2 years ago

  • Version changed from 3.3 to 3.0

comment:3 wonderboymusic20 months ago

  • Milestone changed from Awaiting Review to 3.5

comment:4 ryan18 months ago

  • Resolution set to fixed
  • Status changed from new to closed

In [22259]:

Remove set_time_limit() from sites.php. Props dllh. fixes #19486 see #21521

Note: See TracTickets for help on using tickets.