|
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. |