| Anonymous | Login | Signup for a new account | 11-02-2025 21:43 PST |
| Main | My View | View Issues | Change Log | Docs |
| Viewing Issue Simple Details [ Jump to Notes ] | [ View Advanced ] [ Issue History ] [ Print ] | |||||||||||
| ID | Category | Severity | Reproducibility | Date Submitted | Last Update | |||||||
| 0006083 | [Quercus] | crash | always | 08-04-17 11:43 | 08-04-17 11:43 | |||||||
| Reporter | michaelahlers | View Status | public | |||||||||
| Assigned To | ||||||||||||
| Priority | normal | Resolution | open | |||||||||
| Status | new | Product 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). |
|||||||||||
| Additional Information | ||||||||||||
| Attached Files | ||||||||||||
|
|
||||||||||||
| There are no notes attached to this issue. |
| Mantis 1.0.0rc3[^]
Copyright © 2000 - 2005 Mantis Group
26 total queries executed. 24 unique queries executed. |