[DRE-maint] Bug#1129906: ruby-excon: FTBFS: failing tests
Santiago Vila
sanvila at debian.org
Thu Mar 5 23:49:32 GMT 2026
Package: src:ruby-excon
Version: 1.4.0-1
Severity: serious
Tags: ftbfs forky sid
Dear maintainer:
During a rebuild of all packages in unstable, this package failed to build.
Below you will find the last part of the build log (probably the most
relevant part, but not necessarily). If required, the full build log
is available here:
https://people.debian.org/~sanvila/build-logs/202603/
About the archive rebuild: The build was made on virtual machines from AWS,
using sbuild and a reduced chroot with only build-essential packages.
If you cannot reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.
If this is really a bug in one of the build-depends, please use
reassign and add an affects on src:ruby-excon, so that this is still
visible in the BTS web page for this package.
Thanks.
--------------------------------------------------------------------------------
[...]
debian/rules clean
dh clean --buildsystem=ruby --with ruby
dh_auto_clean -O--buildsystem=ruby
dh_ruby --clean
dh_autoreconf_clean -O--buildsystem=ruby
dh_clean -O--buildsystem=ruby
debian/rules binary
dh binary --buildsystem=ruby --with ruby
dh_update_autotools_config -O--buildsystem=ruby
dh_autoreconf -O--buildsystem=ruby
dh_auto_configure -O--buildsystem=ruby
dh_ruby --configure
dh_auto_build -O--buildsystem=ruby
dh_ruby --build
dh_auto_test -O--buildsystem=ruby
[... snipped ...]
completes with expected data
when utilizing response_block usage
#request
yields a chunk, remaining length, and total_length
completes with expected data
when method is :post
when :path is /body-sink
when a body parameter is supplied
returns an Excon::Response
Excon::Response
#body
equals "5000000"
when the body parameter is an empty string
returns an Excon::Response
Excon::Response
#body
equals "0"
when :path is /echo
when a file handle is the body paramter
Excon::Response
#body equals "x" * 100 + "\n"
when a string is the body paramter
does not change the enconding of the body
without request_block
Excon::Response
#body equals 'x' * 100)
when a request_block paramter is supplied
Excon::Response
#body equals'x' * 100
when a multi-byte string is the body paramter
Excon::Response
#body properly concatenates request+headers and body
ractors
/<<PKGBUILDDIR>>/spec/requests/basic_spec.rb:48: warning: Ractor is experimental, and the behavior may change in future versions of Ruby! Also there are many implementation issues.
should work inside ractors
Excon::Socket
passes the dns_timeouts to Resolv::DNS::Config (PENDING: Temporarily skipped with xit)
when the DNS server is unreachable
returns a Excon::Error::Socket
Excon
when dispatching requests
to a server that does not supply response headers
when no block is given
should rescue from an EOFError and return response
when a block is given
should rescue from EOFError and return response
to a server that prematurely aborts the request with no response
should raise an EOFError
Excon::Socket
resolv_resolver config reaches Resolv::DNS::Config (PENDING: Temporarily skipped with xit)
does not use the custom resolver factory (FAILED - 1)
does not use the default resolver factory (FAILED - 2)
when the DNS server is unreachable
returns a Excon::Error::Socket
without resolv_resolver
uses the configured resolver factory (FAILED - 3)
does not use the default resolver factory (FAILED - 4)
SOCKS5 proxy support
Excon::SOCKS5
#parse_socks5_proxy
parses host:port
defaults port to 1080
parses user:pass at host:port
parses socks5://host:port
parses socks5://user:pass at host:port
handles passwords containing colons
connection parameter validation
accepts :socks5_proxy as a valid connection key
class hierarchy
SOCKS5Socket inherits from Excon::Socket
SOCKS5SSLSocket inherits from Excon::SSLSocket
integration
makes a successful GET request
tracks remote_ip from the proxy connection
forwards POST request bodies
works with nonblock: false
supports multiple requests on a persistent connection
makes a successful HTTPS request through the SOCKS5 proxy
forwards POST bodies over HTTPS
verifies the SSL peer when ssl_verify_peer is true
raises an error when proxy is unreachable
raises an error when hostname exceeds 255 bytes
gives SOCKS5 precedence when both :proxy and :socks5_proxy are set
clears :proxy from data after connect so requests use relative URIs
with username/password authentication
authenticates and makes a successful request
works with socks5:// URI scheme
raises an error with wrong credentials
when proxy rejects CONNECT
raises an error
Excon::Connection
blocking connection
when timeout is not set
does not error
when timeout is not triggered
does not error
when timeout is triggered
does not raise
non-blocking connection
when timeout is not set
does not error
when timeout is not triggered
does not error
when timeout is triggered
returns a request Excon::Error::Timeout
when read timeout is triggered
returns a read Excon::Error::Timeout
Excon::Connection
when speaking to a UNIX socket
via Excon.new
accepts the unix:/ URL
Host header handling
sends an empty Host= by default
doesn't overwrite an explicit Host header
Excon::Connection
validating parameters
with default middleware
Connection.new warns on invalid parameter keys
Connection#request warns on invalid parameter keys
with custom middleware at instantiation
Connection.new accepts parameters that are valid for the provided middleware
Connection.new warns on parameters that are not valid for the provided middleware
Connection#request accepts parameters that are valid for the provided middleware
Connection#request warns on parameters that are not valid for the provided middleware
with custom middleware at request time
Connection#request accepts parameters that are valid for the provided middleware
Connection#request warns on parameters that are not valid for the request middleware
Connection#request warns on parameters from instantiation that are not valid for the request middleware
Pending: (Failures listed here are expected and do not affect your suite's status)
1) Excon::Socket passes the dns_timeouts to Resolv::DNS::Config
# Temporarily skipped with xit
# ./spec/requests/dns_timeout_spec.rb:10
2) Excon::Socket resolv_resolver config reaches Resolv::DNS::Config
# Temporarily skipped with xit
# ./spec/requests/resolv_resolver_spec.rb:31
Failures:
1) Excon::Socket does not use the custom resolver factory
Failure/Error: fail exception unless @socket
Excon::Error::Socket:
no address for google.com (Resolv::ResolvError)
# ./lib/excon/socket.rb:191:in `connect'
# ./lib/excon/socket.rb:60:in `initialize'
# ./lib/excon/connection.rb:498:in `new'
# ./lib/excon/connection.rb:498:in `socket'
# ./lib/excon/connection.rb:122:in `request_call'
# ./lib/excon/middlewares/mock.rb:57:in `request_call'
# ./lib/excon/middlewares/instrumentor.rb:34:in `request_call'
# ./lib/excon/middlewares/idempotent.rb:19:in `request_call'
# ./lib/excon/middlewares/base.rb:22:in `request_call'
# ./lib/excon/middlewares/decompress.rb:14:in `request_call'
# ./lib/excon/middlewares/base.rb:22:in `request_call'
# ./lib/excon/connection.rb:295:in `request'
# ./lib/excon/connection.rb:381:in `connect'
# ./spec/requests/resolv_resolver_spec.rb:40:in `block (2 levels) in <top (required)>'
# ./spec/requests/resolv_resolver_spec.rb:26:in `block (2 levels) in <top (required)>'
# ------------------
# --- Caused by: ---
# Resolv::ResolvError:
# no address for google.com
# ./lib/excon/socket.rb:191:in `connect'
2) Excon::Socket does not use the default resolver factory
Failure/Error: fail exception unless @socket
Excon::Error::Socket:
no address for google.com (Resolv::ResolvError)
# ./lib/excon/socket.rb:191:in `connect'
# ./lib/excon/socket.rb:60:in `initialize'
# ./lib/excon/connection.rb:498:in `new'
# ./lib/excon/connection.rb:498:in `socket'
# ./lib/excon/connection.rb:122:in `request_call'
# ./lib/excon/middlewares/mock.rb:57:in `request_call'
# ./lib/excon/middlewares/instrumentor.rb:34:in `request_call'
# ./lib/excon/middlewares/idempotent.rb:19:in `request_call'
# ./lib/excon/middlewares/base.rb:22:in `request_call'
# ./lib/excon/middlewares/decompress.rb:14:in `request_call'
# ./lib/excon/middlewares/base.rb:22:in `request_call'
# ./lib/excon/connection.rb:295:in `request'
# ./lib/excon/connection.rb:381:in `connect'
# ./spec/requests/resolv_resolver_spec.rb:46:in `block (2 levels) in <top (required)>'
# ./spec/requests/resolv_resolver_spec.rb:26:in `block (2 levels) in <top (required)>'
# ------------------
# --- Caused by: ---
# Resolv::ResolvError:
# no address for google.com
# ./lib/excon/socket.rb:191:in `connect'
3) Excon::Socket without resolv_resolver uses the configured resolver factory
Failure/Error: fail exception unless @socket
Excon::Error::Socket:
no address for google.com (Resolv::ResolvError)
# ./lib/excon/socket.rb:191:in `connect'
# ./lib/excon/socket.rb:60:in `initialize'
# ./lib/excon/connection.rb:498:in `new'
# ./lib/excon/connection.rb:498:in `socket'
# ./lib/excon/connection.rb:122:in `request_call'
# ./lib/excon/middlewares/mock.rb:57:in `request_call'
# ./lib/excon/middlewares/instrumentor.rb:34:in `request_call'
# ./lib/excon/middlewares/idempotent.rb:19:in `request_call'
# ./lib/excon/middlewares/base.rb:22:in `request_call'
# ./lib/excon/middlewares/decompress.rb:14:in `request_call'
# ./lib/excon/middlewares/base.rb:22:in `request_call'
# ./lib/excon/connection.rb:295:in `request'
# ./lib/excon/connection.rb:381:in `connect'
# ./spec/requests/resolv_resolver_spec.rb:63:in `block (3 levels) in <top (required)>'
# ./spec/requests/resolv_resolver_spec.rb:26:in `block (2 levels) in <top (required)>'
# ------------------
# --- Caused by: ---
# Resolv::ResolvError:
# no address for google.com
# ./lib/excon/socket.rb:191:in `connect'
4) Excon::Socket without resolv_resolver does not use the default resolver factory
Failure/Error: fail exception unless @socket
Excon::Error::Socket:
no address for google.com (Resolv::ResolvError)
# ./lib/excon/socket.rb:191:in `connect'
# ./lib/excon/socket.rb:60:in `initialize'
# ./lib/excon/connection.rb:498:in `new'
# ./lib/excon/connection.rb:498:in `socket'
# ./lib/excon/connection.rb:122:in `request_call'
# ./lib/excon/middlewares/mock.rb:57:in `request_call'
# ./lib/excon/middlewares/instrumentor.rb:34:in `request_call'
# ./lib/excon/middlewares/idempotent.rb:19:in `request_call'
# ./lib/excon/middlewares/base.rb:22:in `request_call'
# ./lib/excon/middlewares/decompress.rb:14:in `request_call'
# ./lib/excon/middlewares/base.rb:22:in `request_call'
# ./lib/excon/connection.rb:295:in `request'
# ./lib/excon/connection.rb:381:in `connect'
# ./spec/requests/resolv_resolver_spec.rb:69:in `block (3 levels) in <top (required)>'
# ./spec/requests/resolv_resolver_spec.rb:26:in `block (2 levels) in <top (required)>'
# ------------------
# --- Caused by: ---
# Resolv::ResolvError:
# no address for google.com
# ./lib/excon/socket.rb:191:in `connect'
Finished in 3.77 seconds (files took 0.18106 seconds to load)
182 examples, 4 failures, 2 pending
Failed examples:
rspec ./spec/requests/resolv_resolver_spec.rb:37 # Excon::Socket does not use the custom resolver factory
rspec ./spec/requests/resolv_resolver_spec.rb:43 # Excon::Socket does not use the default resolver factory
rspec ./spec/requests/resolv_resolver_spec.rb:60 # Excon::Socket without resolv_resolver uses the configured resolver factory
rspec ./spec/requests/resolv_resolver_spec.rb:66 # Excon::Socket without resolv_resolver does not use the default resolver factory
/usr/bin/ruby3.3 -I/usr/share/rubygems-integration/all/gems/rspec-support-3.13.1/lib:/usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/exe/rspec --pattern spec/\*\*/\*_spec.rb -c -f doc -r ./spec/spec_helper.rb failed
/usr/lib/ruby/vendor_ruby/gem2deb.rb:52:in `run': /usr/bin/ruby3.3 /usr/bin/gem2deb-test-runner (Gem2Deb::CommandFailed)
from /usr/lib/ruby/vendor_ruby/gem2deb.rb:64:in `block in run_ruby'
from /usr/lib/ruby/vendor_ruby/gem2deb.rb:87:in `maybe_crossbuild'
from /usr/lib/ruby/vendor_ruby/gem2deb.rb:63:in `run_ruby'
from /usr/lib/ruby/vendor_ruby/gem2deb/dh_ruby.rb:189:in `run_tests_for_version'
from /usr/lib/ruby/vendor_ruby/gem2deb/dh_ruby.rb:176:in `block in run_tests'
from /usr/lib/ruby/vendor_ruby/gem2deb/dh_ruby.rb:175:in `each'
from /usr/lib/ruby/vendor_ruby/gem2deb/dh_ruby.rb:175:in `run_tests'
from /usr/lib/ruby/vendor_ruby/gem2deb/dh_ruby.rb:71:in `run_tests'
from /usr/lib/ruby/vendor_ruby/gem2deb/dh_ruby.rb:57:in `install'
from /usr/lib/ruby/vendor_ruby/gem2deb/dh_ruby.rb:163:in `install'
from /usr/bin/dh_ruby:89:in `<main>'
dh_auto_install: error: dh_ruby --install /<<PKGBUILDDIR>>/debian/ruby-excon returned exit code 1
make: *** [debian/rules:8: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess failed with exit status 2
--------------------------------------------------------------------------------
More information about the Pkg-ruby-extras-maintainers
mailing list