Mantis - Quercus
|
|||||
Viewing Issue Advanced Details | |||||
|
|||||
ID: | Category: | Severity: | Reproducibility: | Date Submitted: | Last Update: |
6083 | crash | always | 08-04-17 11:43 | 08-04-17 11:43 | |
|
|||||
Reporter: | michaelahlers | Platform: | |||
Assigned To: | OS: | ||||
Priority: | normal | OS Version: | |||
Status: | new | Product Version: | |||
Product Build: | Resolution: | open | |||
Projection: | none | ||||
ETA: | none | Fixed in Version: | |||
|
|||||
Summary: | 0006083: CurlMultiResource#execute Stuck in Infinite Loop | ||||
Description: |
When using curl_multi_exec, com.caucho.quercus.lib.curl.CurlMultiResource#execute is called in an infinite loop, apparently because _runningCount is never decremented as requests complete. This is easily reproducible with the following PHP script (using Guzzle) invoked using either QuercusEngine (or any other means): <?php $client = new \\Guzzle\\Http\\Client('https://caucho.com'); [^] $client->get('/')->send(); $client->get('/')->send(); ?> One request will succeed, but the script will always hang on subsequent requests. I found that adding this statement to com.caucho.quercus.lib.curl.CurlMultiResource#removeCurl (after _curlList.remove(curl)): if (isRemoved) { _runningCount--; } Reliably fixes the bug (however, I'm not sure what implications this might have besides). |
||||
Steps To Reproduce: | |||||
Additional Information: | |||||
Relationships | |||||
Attached Files: |
There are no notes attached to this issue. |