Bug#1007739: curl breaks stenographer autopkgtest: curl: (27) Out of memory

2022-03-18 Thread наб
I can confirm this is the same bug (the test log errors at the end of
stenocurl, which passes --cacert "$CERTPATH/ca_cert.pem"). This can be
trivially reproduced by running
-- >8 --
$ openssl req -x509 -newkey rsa:4096 -sha256 -days 1 -nodes -keyout 
"/tmp/snakeoil.key" -out "/tmp/snakeoil.crt" -subj "/CN=localhost"
Generating a RSA private key

...
writing new private key to '/tmp/snakeoil.key'
-
$ python3 -uc "
import http.server, ssl, sys, os, time, random

sys.stdin.close()

httpd, err, port = None, None, None
for i in range(1, 100):
port = random.randint(0xC000, 0x) # ephemeral range
try:
httpd = http.server.HTTPServer(('localhost', port), 
http.server.SimpleHTTPRequestHandler)
break
except:
err = sys.exc_info()[1]
time.sleep(i / 100)
if not httpd:
raise err

with open('/tmp/snakeoil.port', 'w') as portf:
print(port, file=portf)

httpd.socket = ssl.wrap_socket(httpd.socket, server_side=True, 
keyfile='/tmp/snakeoil.key', certfile='/tmp/snakeoil.crt', 
ssl_version=ssl.PROTOCOL_TLS)

print('{} start on {}'.format(os.getpid(), port))
httpd.serve_forever()
" &

$ read -r port < /tmp/snakeoil.port
$ curl --cacert /tmp/snakeoil.crt https://localhost:$port
curl: (27) Out of memory
$ curl --insecure https://localhost:$port 2>/dev/null | wc
127.0.0.1 - - [18/Mar/2022 15:16:46] "GET / HTTP/1.1" 200 -
 66 1332570
-- >8 --

As well as any program that uses libcurl's CURLOPT_CAINFO:
-- >8 --
# SSL_CA_CERT_FILE=/tmp/snakeoil.crt zfs create -o encryption=on -o 
keyformat=passphrase -o keylocation=https://localhost:$port/PASSPHRASE 
testpool/testfs2
cannot create 'testpool/testfs2': Failed to connect to 
https://localhost:55645/PASSPHRASE: Out of memory
-- >8 --

I've rebuilt curl 7.82.0-1+b1 with upstream commit
  https://github.com/curl/curl/commit/911714d617c106ed5d553bf003e34ec94ab6a136
which fixes this (and applies cleanly), and can also confirm that it
fixes the issue at hand:
-- >8 --
$ curl --cacert /tmp/snakeoil.crt https://localhost:$port 2>/dev/null | wc
127.0.0.1 - - [18/Mar/2022 16:14:26] "GET / HTTP/1.1" 200 -
 45  912530
# SSL_CA_CERT_FILE=/tmp/snakeoil.crt zfs create -o encryption=on -o 
keyformat=passphrase -o keylocation=https://localhost:56107/PASSPHRASE 
testpool/testfs2
$ zfs get keylocation testpool/testfs2
testpool/testfs2keylocation https://localhost:56107/PASSPHRASE local
-- >8 --

If a release with the fix isn't coming out in the near future I think
it'd be nice if a -2 package were published with that commit in as a
patch; this, clearly, breaks primarily autotests (indeed, this driver
is extracted verbatim from the ZFS test suite).

Best,
наб


signature.asc
Description: PGP signature


Bug#1007739: curl breaks stenographer autopkgtest: curl: (27) Out of memory

2022-03-15 Thread Daniel Stenberg

On Tue, 15 Mar 2022, Paul Gevers wrote:

This is likely this same issue:

 https://github.com/curl/curl/issues/8559

Fixed in curl (after the 7.82.0 release) via this PR:

 https://github.com/curl/curl/pull/8560

--

 / daniel.haxx.se



Bug#1007739: curl breaks stenographer autopkgtest: curl: (27) Out of memory

2022-03-15 Thread Paul Gevers

Source: curl, stenographer
Control: found -1 curl/7.82.0-1
Control: found -1 stenographer/1.0.1-2
Severity: serious
Tags: sid bookworm
User: debian...@lists.debian.org
Usertags: breaks needs-update

Dear maintainer(s),

With a recent upload of curl the autopkgtest of stenographer fails in 
testing when that autopkgtest is run with the binary packages of curl 
from unstable. It passes when run with only packages from testing. In 
tabular form:


   passfail
curl   from testing7.82.0-1
stenographer   from testing1.0.1-2
all others from testingfrom testing

I copied some of the output at the bottom of this report.

Currently this regression is blocking the migration of curl to testing 
[1]. Due to the nature of this issue, I filed this bug report against 
both packages. Can you please investigate the situation and reassign the 
bug to the right package?


More information about this bug and the reason for filing it can be found on
https://wiki.debian.org/ContinuousIntegration/RegressionEmailInformation

Paul

[1] https://qa.debian.org/excuses.php?package=curl

https://ci.debian.net/data/autopkgtest/testing/amd64/s/stenographer/19997617/log.gz

Using interface eth0
● stenographer.service - packet capture to disk
 Loaded: loaded (/lib/systemd/system/stenographer.service; 
disabled; vendor preset: enabled)

 Active: active (running) since Tue 2022-03-15 08:12:20 UTC; 15ms ago
   Docs: https://github.com/google/stenographer
 https://github.com/google/stenographer/blob/master/DESIGN.md
 https://github.com/google/stenographer/blob/master/INSTALL.md
   Main PID: 1917 (stenographer)
  Tasks: 6 (limit: 462652)
 Memory: 9.1M
CPU: 7ms
 CGroup: /system.slice/stenographer.service
 └─1917 /usr/sbin/stenographer

Mar 15 08:12:20 ci-074-d629a5ed systemd[1]: Started packet capture to disk.
active
  % Total% Received % Xferd  Average Speed   TimeTime Time 
 Current
 Dload  Upload   Total   SpentLeft 
 Speed


  0 00 00 0  0  0 --:--:-- --:--:-- 
--:--:-- 0
100   271  100   2710 0   1532  0 --:--:-- --:--:-- --:--:-- 
 1539

● stenographer.service - packet capture to disk
 Loaded: loaded (/lib/systemd/system/stenographer.service; 
disabled; vendor preset: enabled)
 Active: active (running) since Tue 2022-03-15 08:12:20 UTC; 3min 
0s ago

   Docs: https://github.com/google/stenographer
 https://github.com/google/stenographer/blob/master/DESIGN.md
 https://github.com/google/stenographer/blob/master/INSTALL.md
   Main PID: 1917 (stenographer)
  Tasks: 13 (limit: 462652)
 Memory: 22.6M
CPU: 157ms
 CGroup: /system.slice/stenographer.service
 ├─1917 /usr/sbin/stenographer
 └─1925 /usr/sbin/stenotype --blocks=256 --seccomp=none 
--threads=1 --dir=/tmp/stenographer2493450690 --iface=eth0


Mar 15 08:12:20 ci-074-d629a5ed systemd[1]: Started packet capture to disk.
tcp0  0 127.0.0.1:1234  0.0.0.0:* 
LISTEN  1917/stenographer   Running stenographer query 'after 5m 
ago', piping to 'tcpdump '

curl: (27) Out of memory
tcpdump: truncated dump file; tried to read 4 file header bytes, only got 0
autopkgtest [08:15:21]: test run-example



OpenPGP_signature
Description: OpenPGP digital signature