WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
204396
[WinCairo][curl] Sometime becomes unable to get any network resources while browsing with WinCairoRequirements v2019.11.15
https://bugs.webkit.org/show_bug.cgi?id=204396
Summary
[WinCairo][curl] Sometime becomes unable to get any network resources while b...
Fujii Hironori
Reported
2019-11-19 21:52:42 PST
WinCairo with WinCairoRequirements v2019.11.15. While browsing some web sites, MiniBrowser sometime becomes unable to get any network resources. I need to restart MiniBrowser to recover. Callstack of curl thread of WebKitNetworkProcess.exe
> libcurl.dll!Curl_splay(curltime i, Curl_tree * t) Line 91 C > libcurl.dll!Curl_splaygetbest(curltime i, Curl_tree * t, Curl_tree * * removed) Line 166 C > libcurl.dll!curl_multi_perform(Curl_multi * multi, int * running_handles) Line 2253 C > WebKit2.dll!WebCore::CurlMultiHandle::perform(int & runningHandles) Line 260 C++ > WebKit2.dll!WebCore::CurlRequestScheduler::workerThread() Line 184 C++ > WebKit2.dll!WebCore::CurlRequestScheduler::startThreadIfNeeded::__l2::<lambda>() Line 98 C++ > WebKit2.dll!WTF::Detail::CallableWrapper<void <lambda>(void),void>::call() Line 52 C++ > WTF.dll!WTF::Function<void __cdecl(void)>::operator()() Line 80 C++ > WTF.dll!WTF::Thread::entryPoint(WTF::Thread::NewThreadContext * newThreadContext) Line 149 C++ > WTF.dll!WTF::wtfThreadEntryPoint(void * data) Line 153 C++ > ucrtbase.dll!thread_start<unsigned int (__cdecl*)(void *),1>() Unknown > kernel32.dll!BaseThreadInitThunk() Unknown > ntdll.dll!RtlUserThreadStart() Unknown
The main thread of WebKitWebProcess.exe is just doing nothing.
> [External Code] > WebKit2.dll!WebCore::TimerWindowWndProc(HWND__ * hWnd, unsigned int message, unsigned __int64 wParam, __int64 lParam) Line 82 C++ > [External Code] > WTF.dll!WTF::RunLoop::run() Line 74 C++ > WebKit2.dll!WebKit::AuxiliaryProcessMain<WebKit::WebProcess,WebKit::WebProcessMain>(int argc, char * * argv) Line 67 C++ > WebKit2.dll!WebProcessMainWin(int argc, char * * argv) Line 50 C++ > WebKitWebProcess.exe!main(int argc, char * * argv) Line 34 C++ > [External Code]
Attachments
Add attachment
proposed patch, testcase, etc.
Fujii Hironori
Comment 1
2019-11-19 21:54:38 PST
This issue seems to be solved by replacing with libcurl.dll of WinCairoRequirements v2019.06.17. I see this issue various web site, but
https://mainichi.jp/
is most likely happen. FWIW, I'm using IPv6. libcurl.dll of WinCairoRequirements v2019.11.15 is the first version of IPv6 enabled.
Fujii Hironori
Comment 2
2019-11-19 22:10:16 PST
I disabled IPv6 stack of my Windows PC, but the issue still happened.
Fujii Hironori
Comment 3
2019-11-20 02:57:24 PST
Curl sporadic splay deadlock in Windows · Issue #1360 · curl/curl
https://github.com/curl/curl/issues/1360
Inifinite loop inside libcurl curl_multi_perform · Issue #2130 · curl/curl
https://github.com/curl/curl/issues/2130
Sounds like the same with these issues. If so, this is a threading issue in WebKit side.
Fujii Hironori
Comment 4
2019-11-26 22:37:24 PST
I checked out curl repository, and built out today's ToT and curl-7_67_0 tag without applying any patches. curl-7_67_0 reproduced, but ToT didn't. It seems that this issue was solved in the master branch. However, because I don't know the exact steps to reproduce, I'm not confident. today's ToT: commit 793e37767581aec7102d2ecafa34fc1316b1b31f (HEAD -> master, origin/master, origin/HEAD) Author: Marcel Raad <
Marcel.Raad@teamviewer.com
> Date: Tue Nov 26 11:31:57 2019 +0100 Command to build:
> set VCPKG_DEFAULT_TRIPLET=x64-windows-webkit > cmake.exe .. "-DBUILD_CURL_EXE=OFF" "-DBUILD_TESTING=OFF" "-DCMAKE_USE_GSSAPI=OFF" "-DCMAKE_USE_LIBSSH2=OFF" "-DCMAKE_USE_OPENLDAP=OFF" "-DCURL_BROTLI=ON" "-DCURL_ZLIB=ON" "-DCURL_DISABLE_COOKIES=ON" "-DCURL_DISABLE_CRYPTO_AUTH=OFF" "-DCURL_DISABLE_DICT=ON" "-DCURL_DISABLE_FILE=OFF" "-DCURL_DISABLE_FTP=ON" "-DCURL_DISABLE_GOPHER=ON" "-DCURL_DISABLE_HTTP=OFF" "-DCURL_DISABLE_IMAP=ON" "-DCURL_DISABLE_LDAP=ON" "-DCURL_DISABLE_LDAPS=ON" "-DCURL_DISABLE_POP3=ON" "-DCURL_DISABLE_PROXY=OFF" "-DCURL_DISABLE_RTSP=ON" "-DCURL_DISABLE_SMTP=ON" "-DCURL_DISABLE_TELNET=ON" "-DCURL_DISABLE_TFTP=ON" "-DENABLE_ARES=OFF" "-DENABLE_MANUAL=OFF" "-DENABLE_THREADED_RESOLVER=ON" "-DUSE_NGHTTP2=ON" "-DUSE_WIN32_LDAP=OFF" "-DENABLE_IPV6=ON" "-DCURL_STATIC_CRT=0" "-DCURL_STATICLIB=0" "-DCMAKE_USE_OPENSSL=ON" "-DCMAKE_USE_WINSSL=" "-DCMAKE_MAKE_PROGRAM=C:/webkit/wcreq/g/downloads/tools/ninja/ninja-1.8.2/ninja.exe" "-DBUILD_SHARED_LIBS=ON" "-DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=C:/webkit/wcreq/g/scripts/toolchains/windows.cmake" "-DVCPKG_TARGET_TRIPLET=x64-windows-webkit" "-DVCPKG_SET_CHARSET_FLAG=ON" "-DVCPKG_PLATFORM_TOOLSET=v142" "-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON" "-DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON" "-DCMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY=ON" "-DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=TRUE" "-DCMAKE_VERBOSE_MAKEFILE=ON" "-DVCPKG_APPLOCAL_DEPS=OFF" "-DCMAKE_TOOLCHAIN_FILE=C:/webkit/wcreq/g/scripts/buildsystems/vcpkg.cmake" "-DCMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION=ON" "-DVCPKG_CXX_FLAGS=" "-DVCPKG_CXX_FLAGS_RELEASE=" "-DVCPKG_CXX_FLAGS_DEBUG=" "-DVCPKG_C_FLAGS=" "-DVCPKG_C_FLAGS_RELEASE=" "-DVCPKG_C_FLAGS_DEBUG=" "-DVCPKG_CRT_LINKAGE=dynamic" "-DVCPKG_LINKER_FLAGS=" "-DVCPKG_TARGET_ARCHITECTURE=x64" "-DCMAKE_INSTALL_LIBDIR:STRING=lib" "-DCMAKE_INSTALL_BINDIR:STRING=bin" "-G" "Ninja" "-DCMAKE_BUILD_TYPE=Release" "-DCMAKE_INSTALL_PREFIX=C:/webkit/wcreq/g/packages/curl_x64-windows-webkit" > cmake.exe --build .
Fujii Hironori
Comment 5
2019-11-26 23:14:55 PST
I'm observing this issue both in WK1 and WK2 WinCairo MiniBrowser.
Fujii Hironori
Comment 6
2019-11-26 23:42:31 PST
This seems the upstream bug. remove_handle: clear expire timers after multi_done() by bagder · Pull Request #4583 · curl/curl
https://github.com/curl/curl/pull/4583
I tested by applying the patch to curl-7_67_0 tag.
Don Olmstead
Comment 7
2019-11-27 16:53:37 PST
(In reply to Fujii Hironori from
comment #6
)
> This seems the upstream bug. > > remove_handle: clear expire timers after multi_done() by bagder · Pull > Request #4583 · curl/curl >
https://github.com/curl/curl/pull/4583
> > I tested by applying the patch to curl-7_67_0 tag.
The requirements were updated with the patch today. Close if this fixes the issue.
Fujii Hironori
Comment 8
2019-11-27 19:02:11 PST
Thanks. It works fine.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug