Skip to content

fix issue 20120 - libcurl.dll hangs when running std.net.curl unittests #399

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

Merged

Conversation

rainers
Copy link
Member

@rainers rainers commented Aug 12, 2019

disable the workaround introduced in curl/curl@72d5e14
as it is causing the issue and the curl developers were not really convinced

disabled by defining DONT_USE_RECV_BEFORE_SEND_WORKAROUND when compiling curl

@dlang-bot
Copy link
Contributor

dlang-bot commented Aug 12, 2019

Thanks for your pull request, @rainers!

Bugzilla references

Auto-close Bugzilla Severity Description
20120 regression libcurl.dll hangs when running std.net.curl unittests

disable the workaround introduced in curl/curl@72d5e14
as it is causing the issue and the curl developers were not really convinced

disabled by defining DONT_USE_RECV_BEFORE_SEND_WORKAROUND when compiling curl
@rainers rainers force-pushed the DONT_USE_RECV_BEFORE_SEND_WORKAROUND branch from dde7e57 to 4c8aabf Compare August 12, 2019 06:32
@rainers rainers changed the title fix issue 20210 - libcurl.dll hangs when running std.net.curl unittests fix issue 20120 - libcurl.dll hangs when running std.net.curl unittests Aug 12, 2019
@rainers
Copy link
Member Author

rainers commented Aug 12, 2019

Just tried the artifacts: the phobos unittests pass with the new DLL.

@kinke
Copy link
Contributor

kinke commented Aug 12, 2019

Great that you found it. I always assumed it was LDC-specific (newer MSCRT etc.) as DMD happily shipped with newer versions...

kinke added a commit to kinke/ldc that referenced this pull request Aug 17, 2019
Now that Rainer figured out why anything newer than v7.48.0 wouldn't
work (time-outs during std.net.curl unittests) in dlang/installer#399.

I built the binaries on my box using VS 2019 v16.2.2.

zlib v1.2.11 was built using contrib/vstudio/vc14/zlibvc.sln (static
release lib incl. asm, which needs to be built separately, e.g.,
`cd contrib/masmx64 && bld_ml64.bat`). MSCRT was set to /MT.
zconf.h to be included by libcurl needs a `#define ZLIB_WINAPI`
(predefined in VC project).

libcurl was built with a command line like this in the winbuild dir:

nmake /f Makefile.vc mode=dll VC=15 WITH_DEVEL=C:\LDC\curl-7.65.3\deps
WITH_ZLIB=static GEN_PDB=no DEBUG=no MACHINE=x64 RTLIBCFG=static

The CFLAGS in winbuild/MakefileBuild.vc need to be extended by
`/DDONT_USE_RECV_BEFORE_SEND_WORKAROUND` to fix the time-outs.
kinke added a commit to kinke/ldc that referenced this pull request Aug 17, 2019
Now that Rainer figured out why anything newer than v7.48.0 wouldn't
work (hanging std.net.curl unittests) in dlang/installer#399.

I built the binaries on my box using VS 2019 v16.2.2.

zlib v1.2.11 was built using contrib/vstudio/vc14/zlibvc.sln (static
release lib incl. asm, which needs to be built separately, e.g.,
`cd contrib/masmx64 && bld_ml64.bat`). MSCRT was set to /MT.

libcurl was built with a command line like this in the winbuild dir:

nmake /f Makefile.vc mode=dll VC=15 WITH_DEVEL=C:\LDC\curl-7.65.3\deps
WITH_ZLIB=static GEN_PDB=no DEBUG=no MACHINE=x64 RTLIBCFG=static

The CFLAGS in winbuild/MakefileBuild.vc need to be extended by
`/DDONT_USE_RECV_BEFORE_SEND_WORKAROUND` to fix the hanging tests.
kinke added a commit to ldc-developers/ldc that referenced this pull request Aug 18, 2019
Now that Rainer figured out why anything newer than v7.48.0 wouldn't
work (hanging std.net.curl unittests) in dlang/installer#399.

I built the binaries on my box using VS 2019 v16.2.2.

zlib v1.2.11 was built using contrib/vstudio/vc14/zlibvc.sln (static
release lib incl. asm, which needs to be built separately, e.g.,
`cd contrib/masmx64 && bld_ml64.bat`). MSCRT was set to /MT.

libcurl was built with a command line like this in the winbuild dir:

nmake /f Makefile.vc mode=dll VC=15 WITH_DEVEL=C:\LDC\curl-7.65.3\deps
WITH_ZLIB=static GEN_PDB=no DEBUG=no MACHINE=x64 RTLIBCFG=static

The CFLAGS in winbuild/MakefileBuild.vc need to be extended by
`/DDONT_USE_RECV_BEFORE_SEND_WORKAROUND` to fix the hanging tests.
@wilzbach wilzbach merged commit fbc0313 into dlang:build-curl Aug 20, 2019
@wilzbach
Copy link
Member

@wilzbach wilzbach mentioned this pull request Aug 20, 2019
@wilzbach
Copy link
Member

Update PR for 2.088: #400

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants