#34038 [NEW]: ZLIB and output from __destruct() invalidates entire output

From: Date: Mon, 08 Aug 2005 14:38:15 +0000
Subject: #34038 [NEW]: ZLIB and output from __destruct() invalidates entire output
Groups: php.bugs 
Request: Send a blank email to php-bugs+get-83185@lists.php.net to get a copy of this message
From: richard dot quadling at bandvulc dot co dot uk Operating system: Windows XP SP2 PHP version: 5.0.4 PHP Bug Type: Zlib Related Bug description: ZLIB and output from __destruct() invalidates entire output Description: ------------ I have classes which do a var_dump as part of the __destruct() method if the code is running from a the development domain (all the sites are on the same server, live and development). I recently turned on the zlib.output_compression in my php-isapi.ini file. This has been great for the live domains, but the development domains generate no output. If I toggle this setting and restart the webserver service (I am using Sambar Server), then I get all the output I ask for. The "Reproduce code" below proves my point. It seems that the output stream is closed BEFORE the destruct() methods are called, OR the destruct() methods generate output that bypassing the zlib compression in some way. I have also included the network trace logs relevant to the requests from Sambar Server. Sambar is not set to compress its output. Reproduce code: --------------- <?php class MakeCommentWhenBeingDestroyed { private $bShowDestructionNotice = False; public function __construct($bShowDestructionNotice = False) { $this->bShowDestructionNotice = $bShowDestructionNotice; } public function __destruct() { if ($this->bShowDestructionNotice === True) { echo "We are being destroyed!"; } } } $objMCWBD = new MakeCommentWhenBeingDestroyed(True); echo 'Object created as <pre>' . var_export($objMCWBD, True) . '</pre>' . date('r'); ?> Expected result: ---------------- Object created as class MakeCommentWhenBeingDestroyed { private $bShowDestructionNotice = true; } Mon, 08 Aug 2005 14:50:29 +0100We are being destroyed! Valid tracelog from Sambar Server. [2005-08-08 14:50:29] TCP ACCEPT [80] -> 127.0.0.1:6588 [2005-08-08 14:50:29] TCP READWAIT [80] -> 127.0.0.1:6588 [2005-08-08 14:50:29] TCP READ [80] -> 127.0.0.1:6588 [330 bytes] 000000: 47 45 54 20 2F 54 65 73 : 74 25 32 30 7A 6C 69 62 GET /Test%20zlib 000010: 25 32 30 64 65 73 74 72 : 6F 79 2E 70 68 70 20 48 %20destroy.php H 000020: 54 54 50 2F 31 2E 31 0D : 0A 41 63 63 65 70 74 3A TTP/1.1..Accept: 000030: 20 2A 2F 2A 0D 0A 52 65 : 66 65 72 65 72 3A 20 68 */*..Referer: h 000040: 74 74 70 3A 2F 2F 6C 6F : 63 61 6C 2E 71 75 69 63 ttp://local.quic 000050: 6B 73 63 72 69 70 74 73 : 2F 0D 0A 41 63 63 65 70 kscripts/..Accep 000060: 74 2D 4C 61 6E 67 75 61 : 67 65 3A 20 65 6E 2D 67 t-Language: en-g 000070: 62 0D 0A 41 63 63 65 70 : 74 2D 45 6E 63 6F 64 69 b..Accept-Encodi 000080: 6E 67 3A 20 67 7A 69 70 : 2C 20 64 65 66 6C 61 74 ng: gzip, deflat 000090: 65 0D 0A 55 73 65 72 2D : 41 67 65 6E 74 3A 20 4D e..User-Agent: M 0000A0: 6F 7A 69 6C 6C 61 2F 34 : 2E 30 20 28 63 6F 6D 70 ozilla/4.0 (comp 0000B0: 61 74 69 62 6C 65 3B 20 : 4D 53 49 45 20 36 2E 30 atible; MSIE 6.0 0000C0: 3B 20 57 69 6E 64 6F 77 : 73 20 4E 54 20 35 2E 31 ; Windows NT 5.1 0000D0: 3B 20 53 56 31 3B 20 2E : 4E 45 54 20 43 4C 52 20 ; SV1; .NET CLR 0000E0: 31 2E 31 2E 34 33 32 32 : 29 0D 0A 48 6F 73 74 3A 1.1.4322)..Host: 0000F0: 20 6C 6F 63 61 6C 2E 71 : 75 69 63 6B 73 63 72 69 local.quickscri 000100: 70 74 73 0D 0A 43 6F 6E : 6E 65 63 74 69 6F 6E 3A pts..Connection: 000110: 20 4B 65 65 70 2D 41 6C : 69 76 65 0D 0A 43 61 63 Keep-Alive..Cac 000120: 68 65 2D 43 6F 6E 74 72 : 6F 6C 3A 20 6E 6F 2D 63 he-Control: no-c 000130: 61 63 68 65 0D 0A 43 6F : 6F 6B 69 65 3A 20 52 43 ache..Cookie: RC 000140: 73 6C 62 3D 31 39 0D 0A : 0D 0A slb=19.......... [2005-08-08 14:50:29] TCP WRITE [80] -> 127.0.0.1:6588 [122 bytes] 000000: 48 54 54 50 2F 31 2E 31 : 20 32 30 30 20 4F 4B 0D HTTP/1.1 200 OK. 000010: 0A 44 61 74 65 3A 20 4D : 6F 6E 2C 20 30 38 20 41 .Date: Mon, 08 A 000020: 75 67 20 32 30 30 35 20 : 31 33 3A 35 30 3A 32 39 ug 2005 13:50:29 000030: 20 47 4D 54 0D 0A 53 65 : 72 76 65 72 3A 20 53 41 GMT..Server: SA 000040: 4D 42 41 52 0D 0A 43 6F : 6E 74 65 6E 74 2D 74 79 MBAR..Content-ty 000050: 70 65 3A 20 74 65 78 74 : 2F 68 74 6D 6C 0D 0A 58 pe: text/html..X 000060: 2D 50 6F 77 65 72 65 64 : 2D 42 79 3A 20 50 48 50 -Powered-By: PHP 000070: 2F 35 2E 30 2E 34 0D 0A : 0D 0A /5.0.4.......... [2005-08-08 14:50:29] TCP WRITE [80] -> 127.0.0.1:6588 [141 bytes] 000000: 4F 62 6A 65 63 74 20 63 : 72 65 61 74 65 64 20 61 Object created a 000010: 73 20 3C 70 72 65 3E 63 : 6C 61 73 73 20 4D 61 6B s <pre>class Mak 000020: 65 43 6F 6D 6D 65 6E 74 : 57 68 65 6E 42 65 69 6E eCommentWhenBein 000030: 67 44 65 73 74 72 6F 79 : 65 64 20 7B 0A 20 20 70 gDestroyed {. p 000040: 72 69 76 61 74 65 20 24 : 62 53 68 6F 77 44 65 73 rivate $bShowDes 000050: 74 72 75 63 74 69 6F 6E : 4E 6F 74 69 63 65 20 3D tructionNotice = 000060: 20 74 72 75 65 3B 0A 7D : 3C 2F 70 72 65 3E 4D 6F true;.}</pre>Mo 000070: 6E 2C 20 30 38 20 41 75 : 67 20 32 30 30 35 20 31 n, 08 Aug 2005 1 000080: 34 3A 35 30 3A 32 39 20 : 2B 30 31 30 30 4:50:29 +0100... [2005-08-08 14:50:29] TCP WRITE [80] -> 127.0.0.1:6588 [23 bytes] 000000: 57 65 20 61 72 65 20 62 : 65 69 6E 67 20 64 65 73 We are being des 000010: 74 72 6F 79 65 64 21 : troyed!......... [2005-08-08 14:50:29] CLOSE [80] -> 127.0.0.1:6588 Actual result: -------------- (Via a ViewSource) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD> <META http-equiv=Content-Type content="text/html; charset=windows-1252"></HEAD> <BODY></BODY></HTML> (Invalid trace log from Sambar Server) [2005-08-08 14:48:57] TCP ACCEPT [80] -> 127.0.0.1:6555 [2005-08-08 14:48:57] TCP READWAIT [80] -> 127.0.0.1:6555 [2005-08-08 14:48:57] TCP READ [80] -> 127.0.0.1:6555 [330 bytes] 000000: 47 45 54 20 2F 54 65 73 : 74 25 32 30 7A 6C 69 62 GET /Test%20zlib 000010: 25 32 30 64 65 73 74 72 : 6F 79 2E 70 68 70 20 48 %20destroy.php H 000020: 54 54 50 2F 31 2E 31 0D : 0A 41 63 63 65 70 74 3A TTP/1.1..Accept: 000030: 20 2A 2F 2A 0D 0A 52 65 : 66 65 72 65 72 3A 20 68 */*..Referer: h 000040: 74 74 70 3A 2F 2F 6C 6F : 63 61 6C 2E 71 75 69 63 ttp://local.quic 000050: 6B 73 63 72 69 70 74 73 : 2F 0D 0A 41 63 63 65 70 kscripts/..Accep 000060: 74 2D 4C 61 6E 67 75 61 : 67 65 3A 20 65 6E 2D 67 t-Language: en-g 000070: 62 0D 0A 41 63 63 65 70 : 74 2D 45 6E 63 6F 64 69 b..Accept-Encodi 000080: 6E 67 3A 20 67 7A 69 70 : 2C 20 64 65 66 6C 61 74 ng: gzip, deflat 000090: 65 0D 0A 55 73 65 72 2D : 41 67 65 6E 74 3A 20 4D e..User-Agent: M 0000A0: 6F 7A 69 6C 6C 61 2F 34 : 2E 30 20 28 63 6F 6D 70 ozilla/4.0 (comp 0000B0: 61 74 69 62 6C 65 3B 20 : 4D 53 49 45 20 36 2E 30 atible; MSIE 6.0 0000C0: 3B 20 57 69 6E 64 6F 77 : 73 20 4E 54 20 35 2E 31 ; Windows NT 5.1 0000D0: 3B 20 53 56 31 3B 20 2E : 4E 45 54 20 43 4C 52 20 ; SV1; .NET CLR 0000E0: 31 2E 31 2E 34 33 32 32 : 29 0D 0A 48 6F 73 74 3A 1.1.4322)..Host: 0000F0: 20 6C 6F 63 61 6C 2E 71 : 75 69 63 6B 73 63 72 69 local.quickscri 000100: 70 74 73 0D 0A 43 6F 6E : 6E 65 63 74 69 6F 6E 3A pts..Connection: 000110: 20 4B 65 65 70 2D 41 6C : 69 76 65 0D 0A 43 61 63 Keep-Alive..Cac 000120: 68 65 2D 43 6F 6E 74 72 : 6F 6C 3A 20 6E 6F 2D 63 he-Control: no-c 000130: 61 63 68 65 0D 0A 43 6F : 6F 6B 69 65 3A 20 52 43 ache..Cookie: RC 000140: 73 6C 62 3D 31 39 0D 0A : 0D 0A slb=19.......... [2005-08-08 14:48:57] TCP WRITE [80] -> 127.0.0.1:6555 [169 bytes] 000000: 48 54 54 50 2F 31 2E 31 : 20 32 30 30 20 4F 4B 0D HTTP/1.1 200 OK. 000010: 0A 44 61 74 65 3A 20 4D : 6F 6E 2C 20 30 38 20 41 .Date: Mon, 08 A 000020: 75 67 20 32 30 30 35 20 : 31 33 3A 34 38 3A 35 37 ug 2005 13:48:57 000030: 20 47 4D 54 0D 0A 53 65 : 72 76 65 72 3A 20 53 41 GMT..Server: SA 000040: 4D 42 41 52 0D 0A 43 6F : 6E 74 65 6E 74 2D 74 79 MBAR..Content-ty 000050: 70 65 3A 20 74 65 78 74 : 2F 68 74 6D 6C 0D 0A 58 pe: text/html..X 000060: 2D 50 6F 77 65 72 65 64 : 2D 42 79 3A 20 50 48 50 -Powered-By: PHP 000070: 2F 35 2E 30 2E 34 0D 0A : 43 6F 6E 74 65 6E 74 2D /5.0.4..Content- 000080: 45 6E 63 6F 64 69 6E 67 : 3A 20 67 7A 69 70 0D 0A Encoding: gzip.. 000090: 56 61 72 79 3A 20 41 63 : 63 65 70 74 2D 45 6E 63 Vary: Accept-Enc 0000A0: 6F 64 69 6E 67 0D 0A 0D : 0A oding........... [2005-08-08 14:48:57] TCP WRITE [80] -> 127.0.0.1:6555 [155 bytes] 000000: 1F 8B 08 00 00 00 00 00 : 00 03 1C 8C 3D 0F 82 30 .‹.........Œ=.‚0 000010: 14 45 77 7E C5 1D DC 34 : F1 61 20 12 04 13 3F 56 .Ew~Å.Ü4ña ...?V 000020: 74 70 70 2E F5 05 AA D2 : 47 DA A2 31 C6 FF 2E BA tpp.õ.ªÒGÚ¢1Æÿ.º 000030: DE 73 CE 3D D6 57 D6 01 : DA B1 0A 7C 81 F2 28 7A ÞsÎ=ÖWÖ.Ú±.|.ò(z 000040: C7 6B 7D 57 DE A3 52 37 : DE 49 D7 B1 0D E7 96 ED Çk}WÞ£R7ÞI×±.ç–í 000050: 96 8D 6D F6 EC 83 93 D7 : E8 BE 23 A0 77 E6 31 86 –.mö샓×è¾# wæ1† 000060: 98 D4 A7 56 9E 7F 36 E8 : 60 C4 1E 24 18 CD 28 31 .Ô§Vž.6è`Ä.$.Í(1 000070: 0E BC 8A 3E C5 FC 77 5B : 89 9D 81 32 6C 86 06 0B .¼Š>Åüw[‰..2l†.. 000080: A2 14 71 92 27 59 9E 2E : 31 A5 98 E8 0B 00 00 FF ¢.q’'Yž.1¥.è...ÿ 000090: FF 03 00 42 F5 1E 08 8D : 00 00 00 ÿ..Bõ........... [2005-08-08 14:48:57] TCP WRITE [80] -> 127.0.0.1:6555 [23 bytes] 000000: 57 65 20 61 72 65 20 62 : 65 69 6E 67 20 64 65 73 We are being des 000010: 74 72 6F 79 65 64 21 : troyed!......... [2005-08-08 14:48:57] CLOSE [80] -> 127.0.0.1:6555 -- Edit bug report at http://bugs.php.net/?id=34038&edit=1 -- Try a CVS snapshot (php4): http://bugs.php.net/fix.php?id=34038&r=trysnapshot4 Try a CVS snapshot (php5.0): http://bugs.php.net/fix.php?id=34038&r=trysnapshot50 Try a CVS snapshot (php5.1): http://bugs.php.net/fix.php?id=34038&r=trysnapshot51 Fixed in CVS: http://bugs.php.net/fix.php?id=34038&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=34038&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=34038&r=needtrace Need Reproduce Script: http://bugs.php.net/fix.php?id=34038&r=needscript Try newer version: http://bugs.php.net/fix.php?id=34038&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=34038&r=support Expected behavior: http://bugs.php.net/fix.php?id=34038&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=34038&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=34038&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=34038&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=34038&r=php3 Daylight Savings: http://bugs.php.net/fix.php?id=34038&r=dst IIS Stability: http://bugs.php.net/fix.php?id=34038&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=34038&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=34038&r=float No Zend Extensions: http://bugs.php.net/fix.php?id=34038&r=nozend MySQL Configuration Error: http://bugs.php.net/fix.php?id=34038&r=mysqlcfg

« previous php.bugs (#83185) next »