** Description changed:
There is a long history of autopkgtest failing on s390x with this package.
What appears weird (before investigation) is that **some** versions are able to
pass consistently [1], while some, even older, don't [2].
Here is the failure:
```
326s ___________________________ ThumbnailsTest.test_uri
____________________________
- 326s
+ 326s
326s self = <test.test_thumbnails.ThumbnailsTest testMethod=test_uri>
- 326s
+ 326s
326s def test_uri(self):
326s gio = GioURI()
326s if not gio.available:
326s self.skipTest("GIO library not found")
- 326s
+ 326s
326s > self.assertEqual(gio.uri("/foo"), "file:///") # silent fail
326s E AssertionError: '' != 'file:///'
326s E + file:///
- 326s
+ 326s
326s test/test_thumbnails.py:277: AssertionError
```
- The main issue is an internal call to the g_file_get_uri, from the GIO
library, returning an empty string where it's not expected. I don't exactly
understand the behavior of GIO when the API is used wrongly [3], especially the
differences between the various arches, but my debugging showed that it mostly
returned a bunch of zeroes on s390x, which quickly converts to an empty string,
and that didn't reproduce on the other arches. Maybe something to do with the
endianness?
+ The main issue is an internal call to the g_file_get_uri, from the GIO
library, returning an empty string where it's not expected. I don't exactly
understand the behavior of GIO when the API is used wrongly [3], especially the
differences between the various arches, but my debugging showed that it mostly
returned a bunch of zeroes on s390x, which quickly converts to an empty string,
and that didn't reproduce on the other arches. Maybe something to do with the
endianness? Anyway, that wrong API probably more or less runs into some UB,
that would explain why it sometimes works consistently, and in some other times
fails consistently.
In any case, fixing the API usage consistently fixes the issue on s390x
(and probably makes the other arches more sound?), as shown in those PPA
results: https://autopkgtest.ubuntu.com/user/hyask/ppa/beets
-
[1]: see oracular, for example:
https://autopkgtest.ubuntu.com/packages/beets/oracular/s390x
[2]: like jammy: https://autopkgtest.ubuntu.com/packages/beets/jammy/s390x
[3]: no definition of the arguments for g_file_new_for_path (probably a
copy-paste error):
https://git.launchpad.net/ubuntu/+source/beets/tree/beetsplug/thumbnails.py?id=77b2ca6bf63dcf7a452aad30cf40b71cab2e3c61#n250
** Description changed:
There is a long history of autopkgtest failing on s390x with this package.
What appears weird (before investigation) is that **some** versions are able to
pass consistently [1], while some, even older, don't [2].
Here is the failure:
```
326s ___________________________ ThumbnailsTest.test_uri
____________________________
326s
326s self = <test.test_thumbnails.ThumbnailsTest testMethod=test_uri>
326s
326s def test_uri(self):
326s gio = GioURI()
326s if not gio.available:
326s self.skipTest("GIO library not found")
326s
326s > self.assertEqual(gio.uri("/foo"), "file:///") # silent fail
326s E AssertionError: '' != 'file:///'
326s E + file:///
326s
326s test/test_thumbnails.py:277: AssertionError
```
The main issue is an internal call to the g_file_get_uri, from the GIO
library, returning an empty string where it's not expected. I don't exactly
understand the behavior of GIO when the API is used wrongly [3], especially the
differences between the various arches, but my debugging showed that it mostly
returned a bunch of zeroes on s390x, which quickly converts to an empty string,
and that didn't reproduce on the other arches. Maybe something to do with the
endianness? Anyway, that wrong API probably more or less runs into some UB,
that would explain why it sometimes works consistently, and in some other times
fails consistently.
- In any case, fixing the API usage consistently fixes the issue on s390x
- (and probably makes the other arches more sound?), as shown in those PPA
- results: https://autopkgtest.ubuntu.com/user/hyask/ppa/beets
+ In any case, using the API correctly consistently fixes the issue on
+ s390x (and probably makes the other arches more sound?), as shown in
+ those PPA results: https://autopkgtest.ubuntu.com/user/hyask/ppa/beets
[1]: see oracular, for example:
https://autopkgtest.ubuntu.com/packages/beets/oracular/s390x
[2]: like jammy: https://autopkgtest.ubuntu.com/packages/beets/jammy/s390x
[3]: no definition of the arguments for g_file_new_for_path (probably a
copy-paste error):
https://git.launchpad.net/ubuntu/+source/beets/tree/beetsplug/thumbnails.py?id=77b2ca6bf63dcf7a452aad30cf40b71cab2e3c61#n250
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2106276
Title:
autopkgtest "test_thumbnails" failure on s390x
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/beets/+bug/2106276/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs