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


Zend_Gdata_GdataOnlineTest::testPostRetrieveEntryAndDelete is failing on my machine:

Zend_Gdata_App_HttpException: Unable to read response, or response is empty

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


Attaching packet capture.

This part is interesting:

No.     Time        Source                Destination           Protocol Info
     17 0.453789        TCP      [TCP segment of a reassembled PDU]
     18 0.535081        TCP      http > 49705 [ACK] Seq=1769 Ack=681 Win=7040 Len=0 TSV=3186164309 TSER=299462861
     19 0.548198        TCP      http > 49706 [ACK] Seq=1 Ack=443 Win=6784 Len=0 TSV=3185779522 TSER=299462861
     20 20.454967        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.

( = me, = 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';


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.