Public bug reported:
The brotli/basic test case periodically fails. It appears that a few
retriggers can result in a pass:
https://autopkgtest.ubuntu.com/packages/libs/libsoup2.4/focal/amd64
The failures look like this in autopkgtest logs:
ERROR:../tests/brotli-decompressor-test.c:59:test_brotli: assertion
failed ((char*)out_bytes->data == contents): ("***\nU" == "***\n")
I've replaced most of the text with '***' to highlight the difference is
a 'U' character appended.
The test case is essentially doing a decompression of 'brotli-
data/compressed.br' and comparing that it matches 'brotli-
data/uncompressed.txt'. I've done this manually using the brotli cli,
and the files do indeed have the same content. I've also built the
package and run the test case locally in a focal lxc container on amd64:
$ cd
libsoup2.4-gu/debian/libsoup2.4-tests/usr/libexec/installed-tests/libsoup-2.4
$ while : ; do ./brotli-decompressor-test | grep 'brotli/basic'; sleep
0.1; done
I left that to run several hundred cycles but no failures reported at
all.
There are a bunch of instances of this failure, here's a few for
reference:
https://autopkgtest.ubuntu.com/results/autopkgtest-focal/focal/amd64/libs/libsoup2.4/20210602_152107_d1d56@/log.gz
https://autopkgtest.ubuntu.com/results/autopkgtest-focal/focal/amd64/libs/libsoup2.4/20210531_201241_8b1be@/log.gz
https://autopkgtest.ubuntu.com/results/autopkgtest-focal/focal/amd64/libs/libsoup2.4/20200508_211619_2aec8@/log.gz
That last link is the earliest instance I've been able to find.
You'll notice in the second two links they also have a failure "not ok 2
/ssl/tls-interaction", but the first link shows only the brotli failure.
Interestingly, I've not found instances of this failure against other
architectures than amd64, nor have I seen it on releases other than
focal. No dice from googling for bug reports or other reports of test
failures with libsoup2.4 + brotli.
The test's code is doing this, basically:
SoupBrotliDecompressor *dec = soup_brotli_decompressor_new ();
do {
result = g_converter_convert (G_CONVERTER (dec), in_buf,
length, out_buf, sizeof out_buf, 0,
&bytes_read, &bytes_written,
&error);
g_byte_array_append (out_bytes, out_buf, bytes_written);
in_buf += bytes_read;
length -= bytes_read;
} while (result == G_CONVERTER_CONVERTED);
soup_brotli_decompressor's code is here:
https://gitlab.gnome.org/GNOME/libsoup/-/blob/master/libsoup/content-
decoder/soup-brotli-decompressor.c
But I'm not spotting anything that would obviously cause a 'U' to be
randomly appended sometimes. And why 'U'? UINT? Unknown? User error?
There are some interesting bug reports in GNOME about brotli in
libsoup's bug tracker (e.g. #106, #146, #119, and #193), but none that
match this.
** Affects: libsoup2.4 (Ubuntu)
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to libsoup2.4 in Ubuntu.
https://bugs.launchpad.net/bugs/1945713
Title:
Flaky test brotli/basic on focal amd64?
Status in libsoup2.4 package in Ubuntu:
New
Bug description:
The brotli/basic test case periodically fails. It appears that a few
retriggers can result in a pass:
https://autopkgtest.ubuntu.com/packages/libs/libsoup2.4/focal/amd64
The failures look like this in autopkgtest logs:
ERROR:../tests/brotli-decompressor-test.c:59:test_brotli:
assertion failed ((char*)out_bytes->data == contents): ("***\nU" ==
"***\n")
I've replaced most of the text with '***' to highlight the difference
is a 'U' character appended.
The test case is essentially doing a decompression of 'brotli-
data/compressed.br' and comparing that it matches 'brotli-
data/uncompressed.txt'. I've done this manually using the brotli cli,
and the files do indeed have the same content. I've also built the
package and run the test case locally in a focal lxc container on
amd64:
$ cd
libsoup2.4-gu/debian/libsoup2.4-tests/usr/libexec/installed-tests/libsoup-2.4
$ while : ; do ./brotli-decompressor-test | grep 'brotli/basic'; sleep
0.1; done
I left that to run several hundred cycles but no failures reported at
all.
There are a bunch of instances of this failure, here's a few for
reference:
https://autopkgtest.ubuntu.com/results/autopkgtest-focal/focal/amd64/libs/libsoup2.4/20210602_152107_d1d56@/log.gz
https://autopkgtest.ubuntu.com/results/autopkgtest-focal/focal/amd64/libs/libsoup2.4/20210531_201241_8b1be@/log.gz
https://autopkgtest.ubuntu.com/results/autopkgtest-focal/focal/amd64/libs/libsoup2.4/20200508_211619_2aec8@/log.gz
That last link is the earliest instance I've been able to find.
You'll notice in the second two links they also have a failure "not ok
2 /ssl/tls-interaction", but the first link shows only the brotli
failure.
Interestingly, I've not found instances of this failure against other
architectures than amd64, nor have I seen it on releases other than
focal. No dice from googling for bug reports or other reports of test
failures with libsoup2.4 + brotli.
The test's code is doing this, basically:
SoupBrotliDecompressor *dec = soup_brotli_decompressor_new ();
do {
result = g_converter_convert (G_CONVERTER (dec), in_buf,
length, out_buf, sizeof out_buf, 0,
&bytes_read, &bytes_written,
&error);
g_byte_array_append (out_bytes, out_buf, bytes_written);
in_buf += bytes_read;
length -= bytes_read;
} while (result == G_CONVERTER_CONVERTED);
soup_brotli_decompressor's code is here:
https://gitlab.gnome.org/GNOME/libsoup/-/blob/master/libsoup/content-
decoder/soup-brotli-decompressor.c
But I'm not spotting anything that would obviously cause a 'U' to be
randomly appended sometimes. And why 'U'? UINT? Unknown? User error?
There are some interesting bug reports in GNOME about brotli in
libsoup's bug tracker (e.g. #106, #146, #119, and #193), but none that
match this.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/libsoup2.4/+bug/1945713/+subscriptions
--
Mailing list: https://launchpad.net/~desktop-packages
Post to : [email protected]
Unsubscribe : https://launchpad.net/~desktop-packages
More help : https://help.launchpad.net/ListHelp