Issues

ZF-4554: Zend_Gdata_GdataOnlineTest::testPostRetrieveEntryAndDelete failing as of r11768

Description

Zend_Gdata_GdataOnlineTest::testPostRetrieveEntryAndDelete is failing on my machine:

testPostRetrieveEntryAndDelete(Zend_Gdata_GdataOnlineTest)
Zend_Gdata_App_HttpException: Unable to read response, or response is empty
library/Zend/Gdata/App.php:483
library/Zend/Gdata.php:201
library/Zend/Gdata/App.php:610
library/Zend/Gdata/App.php:541
library/Zend/Gdata/App.php:159
library/Zend/Gdata.php:169

I'm tracked the breakage to r11768. I'm currently attempting to isolate the cause.

Comments

Attaching packet capture.

This part is interesting:

No.     Time        Source                Destination           Protocol Info
     17 0.453789    172.19.246.207        209.85.133.191        TCP      [TCP segment of a reassembled PDU]
     18 0.535081    209.85.133.191        172.19.246.207        TCP      http > 49705 [ACK] Seq=1769 Ack=681 Win=7040 Len=0 TSV=3186164309 TSER=299462861
     19 0.548198    209.85.133.191        172.19.246.207        TCP      http > 49706 [ACK] Seq=1 Ack=443 Win=6784 Len=0 TSV=3185779522 TSER=299462861
     20 20.454967   172.19.246.207        209.85.133.191        TCP      49706 > http [FIN, ACK] Seq=443 Ack=1 Win=524280 Len=0 TSV=299463061 TSER=3185779522

It seems that my client begins a request, the server ACKs, and then nothing happens for 20 seconds until my client sends a FIN.

(172.19.246.207 = me, 209.85.133.191 = remote server)

Alright, it seems that there's a problem has to do with the Content-Length HTTP header.

If, in Zend_Http_Client, I change:

const CONTENT_LENGTH = 'Content-Length';

to:

const CONTENT_LENGTH = 'content-length';

then the test passes. (This would be a partial revert of r11768.)

Moving to component Zend_Http_Client.

The problem was that Zend_Http_Client's internal header's array is indexed by lowercase header names, regardless of the actual header. The changes in r11768 were looking up headers using a non-normalized name, which would always fail.

Fixed in r11857.

Fixed also for the 1.6.2 (r11880).

Changing issues in preparation for the 1.7.0 release.