[Pkg-javascript-devel] Bug#1082722: node-follow-redirects: FTBFS: failing tests

Santiago Vila sanvila at debian.org
Tue Sep 24 23:30:21 BST 2024


Package: src:node-follow-redirects
Version: 1.15.6+~1.14.4-2
Severity: serious
Tags: ftbfs

Dear maintainer:

During a rebuild of all packages in unstable, your package failed to build:

--------------------------------------------------------------------------------
[...]
  debian/rules binary
dh binary
    dh_update_autotools_config
    dh_autoreconf
    dh_auto_configure --buildsystem=nodejs
Link node_modules/@types/follow-redirects -> ../../types-follow-redirects
    dh_auto_build --buildsystem=nodejs
No build command found, searching known files
No build command found, searching known files
    dh_auto_test --buildsystem=nodejs
	ln -s ../. node_modules/follow-redirects
	/bin/sh -ex debian/tests/pkg-js/test
+ mocha --exit --invert --grep deduplicated


   follow-redirects
     undefined http.get with string and callback - redirect
     undefined http.get with URL object and callback - redirect
     undefined http.get with options object and callback - redirect
     undefined http.get with string and callback - no redirect
     undefined http.get with options object and callback - no redirect
     undefined http.get with host option and callback - redirect
     undefined http.get to IPv4 address
     undefined http.get to IPv6 address
     undefined http.get to bracketed IPv4 address
     undefined http.get to bracketed IPv4 address specified as host
     undefined http.get to bracketed IPv4 address specified as hostname
     undefined http.get to bracketed hostname
     undefined http.get redirecting to IPv4 address
     undefined http.get redirecting to IPv6 address
     undefined http.get redirecting to bracketed IPv4 address
     undefined http.get redirecting to bracketed hostname
     undefined http.get with response event
     undefined http.get with relative URL path
     undefined redirect to URL with fragment
     undefined should return with the original status code if the response does not contain a location header
     undefined should emit connection errors on the returned stream
     undefined should emit socket events on the returned stream
     undefined should emit connect events on the returned stream
     undefined emits an error on redirects with an invalid location
     undefined emits an error when the request fails for another reason
     undefined should destroy responses
     undefined should honor query params in redirects
     undefined should allow aborting
     undefined should provide connection
     undefined should provide flushHeaders
     undefined should provide getHeader
     undefined should provide removeHeader
     undefined should provide setHeader
     undefined should provide setNoDelay
     undefined should provide setSocketKeepAlive
     undefined should provide setTimeout
     undefined should provide socket
     undefined should wait for an explicit call to end
     undefined errors on write after end
     undefined should support writing into request stream without redirects
     undefined should support writing into request stream with redirects
     undefined should support piping into request stream without redirects
     undefined should support piping into request stream with redirects
     undefined should support piping into request stream with explicit Content-Length without redirects
     undefined should support piping into request stream with explicit Content-Length with redirects
     undefined keeps the header when redirected from HTTP to HTTPS
     undefined drops the header when redirected from HTTPS to HTTP
Tue, 24 Sep 2024 21:48:43 GMT express deprecated res.redirect(url, status): Use res.redirect(status, url) instead at test/util.js:9:18
     undefined passes the redirect status code to beforeRedirect
     undefined passes the request method to beforeRedirect
     undefined passes the request headers to beforeRedirect
     undefined passes the request URL to beforeRedirect
     undefined keeps the header when redirected from HTTP to HTTPS
     undefined drops the header when redirected from HTTPS to HTTP
     undefined passes the redirect status code to beforeRedirect
     undefined passes the request method to beforeRedirect
     undefined passes the request headers to beforeRedirect
     undefined passes the request URL to beforeRedirect
     undefined keeps the header when redirected from HTTP to HTTPS
     undefined drops the header when redirected from HTTPS to HTTP
     undefined passes the redirect status code to beforeRedirect
     undefined passes the request method to beforeRedirect
     undefined passes the request headers to beforeRedirect
     undefined passes the request URL to beforeRedirect
     setTimeout
       undefined clears timeouts after a successful response
       undefined clears timeouts after an error response
       undefined handles errors occuring before a socket is established
       undefined sets a timeout when the socket already exists
       undefined should timeout on the final request
       undefined should include redirect delays in the timeout
       undefined overrides existing timeouts
     should obey a `maxRedirects` property
       undefined which defaults to 21 (53ms)
       undefined which can be set globally
       undefined set as an option on an individual request
     the trackRedirects option
       when not set
         undefined should not track redirects
       when set to true
         undefined should track redirects
     should switch to safe methods when appropriate
       when redirecting with status code 300
         undefined should reuse GET
         undefined should reuse HEAD
         undefined should reuse POST
         undefined should reuse PUT
         undefined should reuse DELETE
       when redirecting with status code 301
         undefined should reuse GET
         undefined should reuse HEAD
         undefined should switch from POST to GET
         undefined should reuse PUT
         undefined should reuse DELETE
       when redirecting with status code 302
         undefined should reuse GET
         undefined should reuse HEAD
         undefined should switch from POST to GET
         undefined should reuse PUT
         undefined should reuse DELETE
       when redirecting with status code 303
         undefined should reuse GET
         undefined should reuse HEAD
         undefined should switch from POST to GET
         undefined should switch from PUT to GET
         undefined should switch from DELETE to GET
       when redirecting with status code 307
         undefined should reuse GET
         undefined should reuse HEAD
         undefined should reuse POST
         undefined should reuse PUT
         undefined should reuse DELETE
     should error on an unsupported protocol redirect
       undefined (http -> about)
     should obey a `maxBodyLength` property
       undefined which defaults to 10MB
       undefined set globally, on write
       undefined set per request, on write
       undefined set globally, on end
       undefined set per request, on end
     writing invalid data
       undefined throws an error
     when switching from POST to GET
       undefined should drop the entity and associated headers
     when redirecting to a different host while the host header is set
       undefined uses the new host header if redirect host is different
       undefined uses the location host if redirect host is the same
       undefined uses the existing host header if redirect host is relative
       undefined defaults to localhost for relative redirect if no host given
     when the client passes an header named Authorization
       undefined ignores it when null
       undefined keeps the header when redirected to the same host
       undefined keeps the header when redirected to the same host via header
       undefined keeps the header when redirected to the same host via header
       undefined keeps the header when redirected to a subdomain
       undefined drops the header when redirected to a different host (same hostname and different port)
       undefined drops the header when redirected to a different host
       undefined drops the header when redirected from a different host via header
     when the client passes an header named Proxy-Authorization
       undefined ignores it when null
       undefined keeps the header when redirected to the same host
       undefined keeps the header when redirected to the same host via header
       undefined keeps the header when redirected to the same host via header
       undefined keeps the header when redirected to a subdomain
       undefined drops the header when redirected to a different host (same hostname and different port)
       undefined drops the header when redirected to a different host
       undefined drops the header when redirected from a different host via header
     when the client passes an header named Cookie
       undefined ignores it when null
       undefined keeps the header when redirected to the same host
       undefined keeps the header when redirected to the same host via header
       undefined keeps the header when redirected to the same host via header
       undefined keeps the header when redirected to a subdomain
       undefined drops the header when redirected to a different host (same hostname and different port)
       undefined drops the header when redirected to a different host
       undefined drops the header when redirected from a different host via header
     when the followRedirects option is set to false
       undefined does not redirect
     should not hang on empty writes
       undefined when data is the empty string without encoding
       undefined when data is the empty string with encoding
       undefined when data is Buffer.from('')
     end accepts as arguments
       undefined (none)
       undefined the empty string
       undefined a non-empty string
       undefined a non-empty string and an encoding
       undefined a non-empty string, an encoding, and a callback
       undefined a non-empty string and a callback
       undefined a callback
     change request options before redirects
       undefined only call beforeRedirect on redirects, not the inital http call
       undefined ignore beforeRedirect if not a function
       undefined append new header with every redirect
       undefined abort request chain after throwing an error
       undefined access response header in beforeRedirect
     when request is going through an HTTP proxy (without a tunnel)
       1) redirects to proper URL when Location header is absolute
       2) redirects to proper URL when Location header is relative


   152 passing (722ms)
   2 failing

   1) follow-redirects
        when request is going through an HTTP proxy (without a tunnel)
          redirects to proper URL when Location header is absolute:
      Error: error parsing "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<title>Error</title>\n</head>\n<body>\n<pre>Cannot GET /a</pre>\n</body>\n</html>\n"
  caused by: Unexpected token '<', "<!DOCTYPE "... is not valid JSON
       at /<<PKGBUILDDIR>>/test/util.js:27:16
       at ConcatStream.<anonymous> (/usr/share/nodejs/concat-stream/index.js:37:43)
       at ConcatStream.emit (node:events:531:35)
       at finishMaybe (/usr/share/nodejs/readable-stream/lib/_stream_writable.js:624:14)
       at afterWrite (/usr/share/nodejs/readable-stream/lib/_stream_writable.js:470:3)
       at process.processTicksAndRejections (node:internal/process/task_queues:84:21)

   2) follow-redirects
        when request is going through an HTTP proxy (without a tunnel)
          redirects to proper URL when Location header is relative:
      Error: error parsing "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<title>Error</title>\n</head>\n<body>\n<pre>Cannot GET /a</pre>\n</body>\n</html>\n"
  caused by: Unexpected token '<', "<!DOCTYPE "... is not valid JSON
       at /<<PKGBUILDDIR>>/test/util.js:27:16
       at ConcatStream.<anonymous> (/usr/share/nodejs/concat-stream/index.js:37:43)
       at ConcatStream.emit (node:events:531:35)
       at finishMaybe (/usr/share/nodejs/readable-stream/lib/_stream_writable.js:624:14)
       at afterWrite (/usr/share/nodejs/readable-stream/lib/_stream_writable.js:470:3)
       at process.processTicksAndRejections (node:internal/process/task_queues:84:21)



dh_auto_test: error: /bin/sh -ex debian/tests/pkg-js/test returned exit code 2
make: *** [debian/rules:8: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------

The above is just how the build ends and not necessarily the most relevant part.
If required, the full build log is available here:

https://people.debian.org/~sanvila/build-logs/202409/

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 could not 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 affects, so that this is still visible in the BTS web
page for this package.

Thanks.



More information about the Pkg-javascript-devel mailing list