[ 
https://issues.apache.org/jira/browse/THRIFT-6167?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Volodymyr Panivko reassigned THRIFT-6167:
-----------------------------------------

    Assignee: Volodymyr Panivko

> 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
>            Assignee: Volodymyr Panivko
>            Priority: Major
>              Labels: cpp, cross-tests, http, php
>             Fix For: 0.25.0
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> 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