Thread overview
[Issue 20380] std.net.curl: misbehaviour on arch 'arm32v7 gnueabihf' (Raspberry/Raspbian/Buster)
Dec 17, 2019
berni44
Dec 17, 2019
Carsten Schlote
Dec 17, 2019
berni44
Jan 03, 2020
Carsten Schlote
Apr 30, 2020
Carsten Schlote
May 01, 2020
Carsten Schlote
May 01, 2020
Iain Buclaw
Aug 03, 2020
Iain Buclaw
Aug 03, 2020
Iain Buclaw
Aug 03, 2020
Iain Buclaw
December 17, 2019
https://issues.dlang.org/show_bug.cgi?id=20380

berni44 <bugzilla@d-ecke.de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |bugzilla@d-ecke.de
           Hardware|Other                       |All

--- Comment #1 from berni44 <bugzilla@d-ecke.de> ---
Could reproduce this on intel too with dmd.

--
December 17, 2019
https://issues.dlang.org/show_bug.cgi?id=20380

Carsten Schlote <carsten.schlote@gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |carsten.schlote@gmx.net

--- Comment #2 from Carsten Schlote <carsten.schlote@gmx.net> ---
pi@raspi4:~/builds2 $ dpkg --status libcurl4 | grep Version Version: 7.64.0-4

Fails with both GDC and LDC2.

joe@ubuntu-desktop:~/build/dlang$ dpkg --status libcurl4 | grep Version Version: 7.58.0-2ubuntu3.8

Works for all compilers.

Maybe a problem with libcurl bindings? Or a bug with libcurl?

--
December 17, 2019
https://issues.dlang.org/show_bug.cgi?id=20380

--- Comment #3 from berni44 <bugzilla@d-ecke.de> ---
Maybe. I've got 7.64.0-4 too. (Debian stable)

--
January 03, 2020
https://issues.dlang.org/show_bug.cgi?id=20380

--- Comment #4 from Carsten Schlote <carsten.schlote@gmx.net> ---
I recompiled libcurl 7.64.0 from source with debug symbols enabled, and copied the result over the binary provided by raspbian.

The problem is now gone.

So either the Raspbian maintainers messed something up, or something else is broken.

--
April 30, 2020
https://issues.dlang.org/show_bug.cgi?id=20380

--- Comment #5 from Carsten Schlote <schlote@vahanus.net> ---
The problem still exists on 'focal fossa' ARM64 running on a raspberry4b.

$ uname -a
Linux raspi4 5.4.0-1008-raspi #8-Ubuntu SMP Wed Apr 8 11:13:06 UTC 2020 aarch64
aarch64 aarch64 GNU/Linux

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04 LTS
Release:        20.04
Codename:       focal

$ curl --version
curl 7.68.0 (aarch64-unknown-linux-gnu) libcurl/7.68.0 OpenSSL/1.1.1f
zlib/1.2.11 brotli/1.0.7 libidn2/2.2.0 libpsl/0.21.0 (+libidn2/2.2.0)
libssh/0.9.3/openssl/zlib nghttp2/1.40.0 librtmp/2.3
Release-Date: 2020-01-08
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3
pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: AsynchDNS brotli GSS-API HTTP2 HTTPS-proxy IDN IPv6 Kerberos
Largefile libz NTLM NTLM_WB PSL SPNEGO SSL TLS-SRP UnixSockets

$ dub upgrade -v
Using dub registry url 'https://code.dlang.org/'
Refreshing local packages (refresh existing: true)...
Looking for local package map at /var/lib/dub/packages/local-packages.json
Looking for local package map at
/home/cschlote/.dub/packages/local-packages.json
Looking for local package map at
/home/cschlote/build/dlang/lzd/.dub/packages/local-packages.json
Determined package version using GIT: lzd 0.3.4+commit.3.g1026347
Refreshing local packages (refresh existing: false)...
Looking for local package map at /var/lib/dub/packages/local-packages.json
Looking for local package map at
/home/cschlote/.dub/packages/local-packages.json
Looking for local package map at
/home/cschlote/build/dlang/lzd/.dub/packages/local-packages.json
  Version selection for dependency silly (silly) of lzd is missing.
  Missing dependency silly ~>1.0.2 of lzd
Upgrading project in /home/cschlote/build/dlang/lzd
Search for versions of silly (1 package suppliers)
Package supplier registry at https://code.dlang.org/ failed with 'HTTP request
returned status code 0 ()', trying fallbacks.
Fallback package supplier registry at https://code-mirror.dlang.io/ failed with
'Failed to download
https://code-mirror.dlang.io/api/packages/infos?packages=%5B%22silly%22%5D&include_dependencies=true&minimize=true'.
Fallback registry at https://dub-registry.herokuapp.com/ succeeded
Package supplier registry at https://code.dlang.org/ failed with 'HTTP request
returned status code 0 ()', trying fallbacks.
Fallback registry at https://dub-registry.herokuapp.com/ succeeded
Package supplier registry at https://code.dlang.org/ failed with 'HTTP request
returned status code 0 ()', trying fallbacks.
Fallback registry at https://dub-registry.herokuapp.com/ succeeded
Package supplier registry at https://code.dlang.org/ failed with 'HTTP request
returned status code 0 ()', trying fallbacks.
Fallback registry at https://dub-registry.herokuapp.com/ succeeded
Package supplier registry at https://code.dlang.org/ failed with 'HTTP request
returned status code 0 ()', trying fallbacks.
Fallback registry at https://dub-registry.herokuapp.com/ succeeded
Package supplier registry at https://code.dlang.org/ failed with 'HTTP request
returned status code 0 ()', trying fallbacks.
Fallback registry at https://dub-registry.herokuapp.com/ succeeded
Package supplier registry at https://code.dlang.org/ failed with 'HTTP request
returned status code 0 ()', trying fallbacks.
Fallback registry at https://dub-registry.herokuapp.com/ succeeded
Package supplier registry at https://code.dlang.org/ failed with 'HTTP request
returned status code 0 ()', trying fallbacks.
Fallback registry at https://dub-registry.herokuapp.com/ succeeded
Package supplier registry at https://code.dlang.org/ failed with 'HTTP request
returned status code 0 ()', trying fallbacks.
Fallback registry at https://dub-registry.herokuapp.com/ succeeded
Package supplier registry at https://code.dlang.org/ failed with 'HTTP request
returned status code 0 ()', trying fallbacks.
Fallback registry at https://dub-registry.herokuapp.com/ succeeded
Package supplier registry at https://code.dlang.org/ failed with 'HTTP request
returned status code 0 ()', trying fallbacks.
Fallback registry at https://dub-registry.herokuapp.com/ succeeded
Package supplier registry at https://code.dlang.org/ failed with 'HTTP request
returned status code 0 ()', trying fallbacks.
Fallback registry at https://dub-registry.herokuapp.com/ succeeded
Package supplier registry at https://code.dlang.org/ failed with 'HTTP request
returned status code 0 ()', trying fallbacks.
Fallback registry at https://dub-registry.herokuapp.com/ succeeded
Package supplier registry at https://code.dlang.org/ failed with 'HTTP request
returned status code 0 ()', trying fallbacks.
Fallback registry at https://dub-registry.herokuapp.com/ succeeded
Package supplier registry at https://code.dlang.org/ failed with 'HTTP request
returned status code 0 ()', trying fallbacks.
Fallback registry at https://dub-registry.herokuapp.com/ succeeded
Package supplier registry at https://code.dlang.org/ failed with 'HTTP request
returned status code 0 ()', trying fallbacks.
Fallback registry at https://dub-registry.herokuapp.com/ succeeded
Package supplier registry at https://code.dlang.org/ failed with 'HTTP request
returned status code 0 ()', trying fallbacks.
Fallback registry at https://dub-registry.herokuapp.com/ succeeded
Package supplier registry at https://code.dlang.org/ failed with 'HTTP request
returned status code 0 ()', trying fallbacks.
Fallback registry at https://dub-registry.herokuapp.com/ succeeded
Package supplier registry at https://code.dlang.org/ failed with 'HTTP request
returned status code 0 ()', trying fallbacks.
Fallback registry at https://dub-registry.herokuapp.com/ succeeded
Package supplier registry at https://code.dlang.org/ failed with 'HTTP request
returned status code 0 ()', trying fallbacks.
Fallback registry at https://dub-registry.herokuapp.com/ succeeded
Package supplier registry at https://code.dlang.org/ failed with 'HTTP request
returned status code 0 ()', trying fallbacks.
Fallback registry at https://dub-registry.herokuapp.com/ succeeded
Return for silly: [0.8.2, 0.8.1, 0.8.0, 0.7.1, 0.7.0, 0.6.0, 0.5.0, 0.4.3,
0.4.2, 0.4.1, 0.4.0, 0.3.0, 0.2.1, 0.2.0, 0.1.1, 0.1.0, 0.0.2, 0.0.1,
0.7.0-alpha, ~master]
Unresolvable dependencies to package silly:
  lzd 0.3.4+commit.3.g1026347 depends on silly ~>1.0.2

That is broken: Version 1.0.2 exists. Also a return value of 0 shouldn't happen here.

This works all fine on the 'focal fossa' and intel architecture.

--
May 01, 2020
https://issues.dlang.org/show_bug.cgi?id=20380

--- Comment #6 from Carsten Schlote <schlote@vahanus.net> ---
It(In reply to Carsten Schlote from comment #5)
> The problem still exists on 'focal fossa' ARM64 running on a raspberry4b.

The problem exists with gdc from the standard Ubuntu repository.

$ gdc --version
gdc (Ubuntu 10-20200411-0ubuntu1) 10.0.1 20200411 (experimental) [master
revision bb87d5cc77d:75961caccb7:f883c46b4877f637e0fa5025b4d6b5c9040ec566]
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

However, with LDC2 compiled from sources directly (using gdc a D compiler for
build), it is working.

$ ldc2 --version
LDC - the LLVM D compiler (1.20.1):
  based on DMD v2.090.1 and LLVM 10.0.0
  built with LDC - the LLVM D compiler (1.20.1)
  Default target: aarch64-unknown-linux-gnu
  Host CPU: cortex-a72
  http://dlang.org - http://wiki.dlang.org/LDC

--
May 01, 2020
https://issues.dlang.org/show_bug.cgi?id=20380

Iain Buclaw <ibuclaw@gdcproject.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ibuclaw@gdcproject.org

--- Comment #7 from Iain Buclaw <ibuclaw@gdcproject.org> ---
Duplicate of 19367

--
August 03, 2020
https://issues.dlang.org/show_bug.cgi?id=20380

Iain Buclaw <ibuclaw@gdcproject.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--- Comment #8 from Iain Buclaw <ibuclaw@gdcproject.org> ---
GCC 10.2 is out https://gcc.gnu.org/gcc-10/

--
August 03, 2020
https://issues.dlang.org/show_bug.cgi?id=20380

Iain Buclaw <ibuclaw@gdcproject.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Depends on|                            |19367


Referenced Issues:

https://issues.dlang.org/show_bug.cgi?id=19367
[Issue 19367] std.net.curl does not understand HTTP/2 status lines
--
August 03, 2020
https://issues.dlang.org/show_bug.cgi?id=20380

--- Comment #9 from Iain Buclaw <ibuclaw@gdcproject.org> ---
(In reply to Iain Buclaw from comment #8)
> GCC 10.2 is out https://gcc.gnu.org/gcc-10/

Changelog entry for std.net.curl change:

https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=libphobos/ChangeLog;h=bf6eefd3bd1a8b300d9993e253a90679575fc4be;hb=ee5c3db6c5b2c3332912fb4c9cfa2864569ebd9a#l1

Built and ran dub on aarch64 server, issue no longer occurs.

--