On Sat, 11 May 2019, Kunal Ekawde via curl-library wrote:
I'm using libcurl - 7.64.0 with nghttp2 for http2 call flow. For http/1.1 this crash is not seen.
I recommend using 7.64.1!
I tried with following fix: /* the socket can be shared by many transfers, iterate */ for(e = list->head; e; e = e->next) { data = (struct Curl_easy *)e->ptr; // crash fix - temp if (!data) continue;
I think this should do a 'break' instead of a 'continue'. After all, this happens because the connection died so there is no more transfers on the same connection.
While this would just be defensive fix, the root cause fix could be elsewhere also, request to please check / comment.
This is a bit tricky to reproduce so I haven't managed to do this myself yet. I'm just reading your description and the code and thinking.
If you add the break like this in there, does this fix the problem for you? Does it have any other flaws? I'm thinking we might want to terminate those remaining transfers on the same socket in a more immediate way...
What do you do to reproduce this case? -- / daniel.haxx.se | Get the best commercial curl support there is - from me | Private help, bug fixes, support, ports, new features | https://www.wolfssl.com/contact/ ------------------------------------------------------------------- Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library Etiquette: https://curl.haxx.se/mail/etiquette.html