Make WordPress Core

Opened 6 years ago

Last modified 6 years ago

#44977 new defect (bug)

Transient fill fail delete to itself if it's timeout option is missing

Reported by: nlozovan's profile nlozovan Owned by:
Milestone: Awaiting Review Priority: normal
Severity: normal Version:
Component: Options, Meta APIs Keywords: needs-patch
Focuses: Cc:

Description (last modified by SergeyBiryukov)

Just faced this issue - for some reason, the transient was not deleting itself. While checking the DB, the option with the transient was there, while the timeout option was missing (probably a glitch while saving to DB).
Now, if you check get_transient() in option.php (quick link https://core.trac.wordpress.org/browser/tags/4.9.8/src/wp-includes/option.php#L0 ) you can see that these are deleted only if both exist and both pass the test:

[...]
 if ( false !== $timeout && $timeout < time() ) { DELETING TRANSIENT}
[...]

Otherwise transient will hang... forever. This should be tuned up so it also checks that these options exist, and delete transient if timeout is absolete.

Change History (2)

#1 @mukesh27
6 years ago

  • Component changed from General to Cache API

#2 @SergeyBiryukov
6 years ago

  • Component changed from Cache API to Options, Meta APIs
  • Description modified (diff)
  • Summary changed from Transient fill fail delete itself if it's timeout option is absolete to Transient fill fail delete to itself if it's timeout option is missing
Note: See TracTickets for help on using tickets.