2019-11-23 00:07 UTC

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0002663NetSurf[All Projects] Generalpublic2019-07-19 08:27
ReporterMichael Forney 
Assigned ToDaniel Silverstone 
SeverityminorReproducibilityalways 
StatusclosedResolutionfixed 
Product Version 
Target Version3.9Fixed in Version3.9 
Summary0002663: curl 7.65.0 breaks HTTP redirects
DescriptionI noticed after upgrading to 7.65.0 that HTTP redirects don't work anymore. I bisected this down to https://github.com/curl/curl/pull/3837, which prevents calls into the curl API from callbacks, since that is unsupported usage.

It looks like the root of the issue is that fetch_curl_data (a curl callback) can trigger a new fetch request, which calls curl_multi_add_handle, which is now failing with CURLM_RECURSIVE_API_CALL.

I think to resolve this, netsurf needs to wait until fetch_curl_done to start new requests for redirects.
Steps To Reproduce1. Build netsurf against curl 7.65.0
2. Load a URL resulting in a redirect, such as https://httpstat.us/302
3. Request appears to hang
TagsNo tags attached.
Fixed in CI build #
Reported in CI build #
URL of problem page
Attached Files

-Relationships
+Relationships

-Notes
Daniel Silverstone

~0001933

Daniel Silverstone (administrator)

Hi,

I'm unable to reproduce this myself as I don't have a new enough cURL but I've added a patch which ought to mitigate this. Could you please try running CI#4655 (or building a new version from master if that's how you're diagnosing) so that we can see if this helps.

Thanks,

Daniel.
Michael Forney

~0001940

Michael Forney (reporter)

Thanks! Your patch fixes the issue for me.
Daniel Silverstone

~0001948

Daniel Silverstone (administrator)

Thank you Michael.
Vincent Sanders

~0002004

Vincent Sanders (administrator)

we believe this issue has been resolved in NetSurf 3.9
+Notes

-Issue History
Date Modified Username Field Change
2019-06-04 04:17 Michael Forney New Issue
2019-06-05 18:55 Daniel Silverstone Assigned To => Daniel Silverstone
2019-06-05 18:55 Daniel Silverstone Status new => assigned
2019-06-05 18:55 Daniel Silverstone Note Added: 0001933
2019-06-07 04:49 Michael Forney Note Added: 0001940
2019-06-09 13:06 Daniel Silverstone Status assigned => resolved
2019-06-09 13:06 Daniel Silverstone Resolution open => fixed
2019-06-09 13:06 Daniel Silverstone Fixed in Version => 3.9
2019-06-09 13:06 Daniel Silverstone Target Version => 3.9
2019-06-09 13:06 Daniel Silverstone Note Added: 0001948
2019-07-19 08:27 Vincent Sanders Status resolved => closed
2019-07-19 08:27 Vincent Sanders Note Added: 0002004
+Issue History