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

Reply via email to