Mantis Bugtracker
  

Viewing Issue Advanced Details Jump to Notes ] View Simple ] 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 Platform
Status new   OS
Projection none   OS Version
ETA none Fixed in Version Product Version
  Product Build
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
Attached Files

- Relationships

There are no notes attached to this issue.

- Issue History
Date Modified Username Field Change
08-04-17 11:43 michaelahlers New Issue


Mantis 1.0.0rc3[^]
Copyright © 2000 - 2005 Mantis Group
26 total queries executed.
24 unique queries executed.
Powered by Mantis Bugtracker