[wp-trac] [WordPress Trac] #8808: If publish_future_post is called before its time, It creates a duplicate entry

WordPress Trac wp-trac at lists.automattic.com
Tue Jan 6 06:49:36 GMT 2009


#8808: If publish_future_post is called before its time, It creates a duplicate
entry
--------------------------+-------------------------------------------------
 Reporter:  DD32          |       Owner:  anonymous
     Type:  defect (bug)  |      Status:  new      
 Priority:  normal        |   Milestone:  2.8      
Component:  General       |     Version:  2.8      
 Severity:  trivial       |    Keywords:           
--------------------------+-------------------------------------------------
 when the publish_future_post hook is called, ahead of its time, it'll
 attempt to cancel the current scheduled event, and schedule another,
 However, at present, this fails to work 100%

 The issue is, That the $args need to match ''exactly'', the event is
 originally scheduled with {{{array( (string)$ID )}}}, however, the
 clear/reschedule gets called with {{{array( (int)$ID)}}} which causes the
 cron ID key to differ slightly, which results in the first schedule not
 being canceled, and a duplicate schedule being created (with an int as the
 ID instead of the ID as a string)

 (In addition to that, It seems the clear schedule call isnt passed a array
 too, which results in the key being different again..)

 The $ID gets set to a int, thanks to get_post() accepting the ID by
 reference, and then typecasting it to an int.

 The attached patch typecasts it to a string as well as wrapping it in the
 missing array()

 In normal working environments, this shouldn't occur at all, and if it
 does, the schedule will be duplicated only once due to the 2nd and future
 sharing the same key.

-- 
Ticket URL: <http://trac.wordpress.org/ticket/8808>
WordPress Trac <http://trac.wordpress.org/>
WordPress blogging software


More information about the wp-trac mailing list