Skip to content

curl with hyper has some tests failing due to protocol assertion #7852

Closed
@jay

Description

@jay

I did this

I built hyper

cd $HOME; git clone --depth=1 https://github.com/hyperium/hyper.git; curl https://sh.rustup.rs -sSf | sh -s -- -y; source $HOME/.cargo/env; cd $HOME/hyper; RUSTFLAGS="--cfg hyper_unstable_ffi" cargo build --features client,http1,http2,ffi

I built curl master (3aead05 2021-10-12) with hyper master (ecd5dc1 2021-09-21)

COMMON="-pthread -fsanitize=address,undefined -fno-sanitize-recover -fno-omit-frame-pointer -Wformat -Werror=format-security -Werror=array-bounds -g"

CPPFLAGS="${CPPFLAGS:-}" \
CFLAGS="${CFLAGS:-} $COMMON" \
CXXFLAGS="${CXXFLAGS:-} $COMMON" \
LDFLAGS="${LDFLAGS:-} $COMMON -Wl,-rpath,$HOME/hyper/target/debug -Wl,-rpath,/usr/local/ssl/lib -Wl,-rpath,/usr/local/lib" \
./configure --enable-debug \
            --with-ssl=/usr/local/ssl \
            --with-hyper=$HOME/hyper \
            --with-nghttp2=/usr/local

Some tests failed due to memory leaks in rust allocation, not sure what that's about.. but more relevant is other tests such as 714, 715, 1319, 1320, 1321, 1631, 1632 fail due to this assertion:

lt-curl: http.c:2905: Curl_http_firstwrite: Assertion `conn->handler->protocol&(((1<<0)|(1<<1))|(1<<18))' failed.

curl/libcurl version

curl 7.80.0-DEV (x86_64-pc-linux-gnu) libcurl/7.80.0-DEV OpenSSL/1.1.1i zlib/1.2.8 nghttp2/1.43.0 librtmp/2.3 Hyper/0.14.13 OpenLDAP/2.4.42
Release-Date: [unreleased]
Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 pop3s rtmp smb smbs smtp smtps telnet tftp 
Features: alt-svc AsynchDNS Debug HSTS HTTP2 HTTPS-proxy IPv6 Largefile libz NTLM NTLM_WB SSL TLS-SRP TrackMemory UnixSockets

operating system

Ubuntu 16 LTS

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions