Volodymyr Panivko created THRIFT-6167:
-----------------------------------------

             Summary: PHP HTTP cross-test server omits Content-Length and 
breaks php-cpp HTTP cases
                 Key: THRIFT-6167
                 URL: https://issues.apache.org/jira/browse/THRIFT-6167
             Project: Thrift
          Issue Type: Bug
          Components: C++ - Library, PHP - Library, Test Suite
            Reporter: Volodymyr Panivko
             Fix For: 0.25.0


On synced master (tested on August 30, 2026 at 
588053de15907d2b769aeb4662e1e3c142000fe9), the php->cpp HTTP cross-tests still 
fail for binary, compact, and json despite THRIFT-6023 and THRIFT-6060 being 
merged.

Reproduction:
1. Sync to current apache/master.
2. Build the PHP and C++ cross-test prerequisites.
3. Run the php-cpp HTTP cases:
   - php-cpp_binary_http-ip
   - php-cpp_compact_http-ip
   - php-cpp_json_http-ip

Actual result:
- The C++ client aborts on testVoid() with TTransportException: No more data to 
read.
- These cases remain listed in test/known_failures_Linux.json.

Root cause found during local validation:
- test/php/HttpServer.php dispatchSync() writes the thrift response body with 
echo but does not set Content-Length.
- The C++ HTTP transport expects a framed response body (Content-Length or 
chunked framing) and fails reading the PHP built-in server response.
- test/php/HttpRouter.php also does not preserve the same launcher flags as 
tests.json when it execs into php -S, which causes noisy startup warnings under 
some local PHP setups.

Validated fix:
- Add Content-Length for the sync response in test/php/HttpServer.php.
- Preserve the launcher flags in test/php/HttpRouter.php when entering php -S.
- Remove php-cpp_binary_http-ip, php-cpp_compact_http-ip, and 
php-cpp_json_http-ip from test/known_failures_Linux.json.

Validation after the fix:
- php->cpp HTTP: binary, compact, json all pass
- cpp->php HTTP: binary, compact, json, multi-binary, multic-compact, 
multij-json all pass

Affected clients: php, cpp



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to