-
-
Notifications
You must be signed in to change notification settings - Fork 6.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Segfaults in FTP downloads since 8.6.0 #13731
Comments
This comment was marked as outdated.
This comment was marked as outdated.
Having a hard time getting a more minimal example, but here is the backtrace on Debian with libcurl 8.7.1. So strangely it crashes in
|
@jeroen this is supposed to be fixed via c6655f7, where we disconnected the pointers from the easy handle to the HTTP/2 internal stream state. The problem was that when the same easy handle was used for different protocols, the HTTP/2 implementation thought it needed to clean up state that did not belong to it. Could you try running curl 8.8.0 in your setup? |
I'll wait for @samueloph to update 8.8.0 on Debian. Sadly the reproducer for my setup is quite complex because it mixes R packages that link against libcurl with other R packages that link against other debian libs which transitively also link against libcurl. So i don't think I can test this with curl 8.8.0 without rebuilding all those stacks (I tried above and got even weirder errors). |
@jeroen that should happen later today once I finish work |
@icing so sadly MacOS has shipped 8.6.0 and might not update for a while. What would be a workaround in my bindings for this problem? Would it be a good idea to set |
That would be harsh. I believe it is cheaper to not reuse the easy handles or maybe to not reuse them after a transfer failed. I do not know how that can be mapped into your bindings, though. Update: after a glimpse at your documentation, it seems the easy handles are not exposed in your API. That should allow you to |
Ahh ok now I understand why I had a hard time to find a reproducer. This framework the package uses indeed recycles easy handles for multiple requests, something I recommend against. So that reduces the problem impact. Actually I do expose the easy handle, they are just called "handles": https://cran.r-project.org/web/packages/curl/vignettes/intro.html#Setting_handle_options I think it would be a breaking change to automatically call |
@jeroen 8.8.0 has been built and will be picked up by the repositories within the next 6 hours. |
I confirm that this crash no longer appears with curl 8.8.0 on Debian. |
Users of the R bindings are getting segfaults in ftp downloads after MacOS updated from libcurl 8.4.0 to libcurl 8.6.0.
We have observed the problem also in libcurl 7.8.1 but not yet been able to narrow it down to a smaller reproducer. It happens when the FTP download is performed in a multi-handle that already performed previous requests (possibly http/2) which seem to have corrupted the multi-handle, making it crash in the ftp download.
I will try to investigate more later, but wanted to open this now in case other people have observed similar issues.
curl/libcurl version
libcurl 8.7.1
operating system
MacOS
The text was updated successfully, but these errors were encountered: