Opened 7 months ago

Last modified 7 months ago

#22239 new defect (bug)

wp_ob_end_flush_all() tries to destroy non-destroyable output buffers

Reported by: dd32 Owned by:
Priority: normal Milestone: Awaiting Review
Component: Warnings/Notices Version:
Severity: normal Keywords:
Cc:

Description

wp_ob_end_flush_all() currently tries to flush & destroy every PHP Output buffer that is enabled on the current installation.
However, not every type of PHP Output buffer can be destroyed, which will cause a PHP Notice when attempts to do so are made.
An example of this is PHP extensions such as New Relic, or PHP output buffers created with the $erase flag set to false in ob_start()

An example is when New Relic is installed on a host, also see New Relics FAQ entry on the issue.

( ! ) Notice: ob_end_flush(): failed to send buffer of New Relic auto-RUM (1) in ../trunk/wp-includes/functions.php on line 2641
Call Stack
#	Time	Memory	Function	Location
1	0.8510	4328360	shutdown_action_hook( )	../load.php:0
2	0.8510	4328440	do_action( )	../load.php:556
3	0.8510	4329856	call_user_func_array ( )	../plugin.php:406
4	0.8510	4329888	wp_ob_end_flush_all( )	../plugin.php:406
5	0.8511	4330064	ob_end_flush ( )	../functions.php:2641

Somewhat similar to #18239
I'm not sure of what the ideal solution for this would be for WordPress, but wanted to record the issue being known.

Attachments (1)

22239.diff (645 bytes) - added by dd32 7 months ago.

Download all attachments as: .zip

Change History (3)

  • Summary changed from wp_ob_end_flush_all() tries to flush non-flushable buffers to wp_ob_end_flush_all() tries to destroy non-destroyable output buffers

dd327 months ago

One option is to just silence the PHP Notice to get the message out of developers faces.. (Ignore the extra ob in the diff..)

Note: See TracTickets for help on using tickets.