Tracker build tests failing on 32-bit architectures with 'chmod' syscall
Good afternoon,
While looking at backporting the fixes from !490 (merged), !487 (merged), and !488 (merged) to tracker-miners-3.6.1 to fix our crashing problems on i686 at Linux From Scratch, I encountered another syscall that is problematic.
Here's some package versions:
- Tracker-3.6.0
- glibc-2.38
- Linux 6.5.7
- libseccomp-2.5.4
- glib-2.78.0
- gstreamer and plugins 1.22.6
Here's an example of a test result:
17/73 tracker-miners:extractor+audio / mp3-id3v2.3-empty-artist-album FAIL 2.51s exit status 1
>>> TRACKER_FUNCTIONAL_TEST_CONFIG=/sources/tracker-miners/build/tests/functional-tests/config/configuration.json MALLOC_PERTURB_=72 PYTHONPATH=/usr/lib/tracker-3.0/ /usr/bin/python3 /sources/tracker-miners/tests/functional-tests/test_extractor_generic.py /sources/tracker-miners/tests/functional-tests/data/extractor-content/audio/mp3-id3v2.3-empty-artist-album.expected.json
――――――――――――――――――――――――――――――――――――― ✀ ―――――――――――――――――――――――――――――――――――――
stderr:
E
======================================================================
ERROR: /extractor-content/audio/mp3-id3v2.3-empty-artist-album.expe (__main__.GenericExtractionTestCase./extractor-content/audio/mp3-id3v2.3-empty-artist-album.expe)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/sources/tracker-miners/tests/functional-tests/test_extractor_generic.py", line 101, in generic_test_extraction
jsonld = fixtures.get_tracker_extract_output(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/sources/tracker-miners/tests/functional-tests/fixtures.py", line 453, in get_tracker_extract_output
raise RuntimeError(
RuntimeError: tracker-extract returned non-zero exit code: -31
Error output:
Disallowed syscall "chmod" caught in sandbox
----------------------------------------------------------------------
Ran 1 test in 2.378s
FAILED (errors=1)
The final results were:
Summary of Failures:
17/73 tracker-miners:extractor+audio / mp3-id3v2.3-empty-artist-album FAIL 2.51s exit status 1
18/73 tracker-miners:extractor+audio / mp3-id3v2.4-1 FAIL 2.64s exit status 1
20/73 tracker-miners:extractor+audio / mp3-id3v2.4-2 FAIL 3.23s exit status 1
21/73 tracker-miners:extractor+desktop / application FAIL 3.35s exit status 1
22/73 tracker-miners:extractor+desktop / link-wikipedia-tracker FAIL 3.19s exit status 1
23/73 tracker-miners:extractor+images / bmp-basic-1 FAIL 3.06s exit status 1
27/73 tracker-miners:extractor+images / ico-basic-1 FAIL 3.23s exit status 1
29/73 tracker-miners:extractor+office / abw-1 FAIL 3.25s exit status 1
30/73 tracker-miners:extractor+audio / vorbis-musicbrainz FAIL 3.12s exit status 1
31/73 tracker-miners:extractor+audio / flac-musicbrainz FAIL 3.25s exit status 1
32/73 tracker-miners:extractor+images / jpeg-basic FAIL 3.02s exit status 1
33/73 tracker-miners:extractor+images / jpeg-gps-location FAIL 2.96s exit status 1
34/73 tracker-miners:extractor+images / jpeg-region-of-interest FAIL 3.18s exit status 1
35/73 tracker-miners:extractor+images / gif-comment-extension-block FAIL 3.35s exit status 1
36/73 tracker-miners:extractor+images / gif-xmp FAIL 3.10s exit status 1
38/73 tracker-miners:extractor+images / png-basic FAIL 2.95s exit status 1
39/73 tracker-miners:extractor+images / png-region-of-interest FAIL 3.17s exit status 1
40/73 tracker-miners:extractor+images / raw-cr2 FAIL 3.24s exit status 1
41/73 tracker-miners:extractor+images / tiff-basic FAIL 3.68s exit status 1
42/73 tracker-miners:extractor+office / epub-doc-1 FAIL 3.38s exit status 1
43/73 tracker-miners:extractor+playlists / playlist-test-1 FAIL 3.59s exit status 1
44/73 tracker-miners:extractor+office / oasis-doc FAIL 2.84s exit status 1
45/73 tracker-miners:extractor+office / office-xml-doc-1 FAIL 2.96s exit status 1
46/73 tracker-miners:extractor+office / office-doc FAIL 3.10s exit status 1
48/73 tracker-miners:extractor+office / powerpoint FAIL 4.44s exit status 1
49/73 tracker-miners:extractor+office / ps-doc FAIL 3.63s exit status 1
50/73 tracker-miners:extractor+office / pdf-doc FAIL 4.49s exit status 1
51/73 tracker-miners:extractor+office / pdf-encrypted FAIL 4.50s exit status 1
52/73 tracker-miners:extractor+office / ps-doc-atend FAIL 5.18s exit status 1
53/73 tracker-miners:extractor+office / xlsx-spreadsheet-1 FAIL 4.93s exit status 1
54/73 tracker-miners:extractor+office / psgz-doc FAIL 4.92s exit status 1
55/73 tracker-miners:extractor+office / pptx-presentation-1 FAIL 5.25s exit status 1
56/73 tracker-miners:extractor+office / html-1 FAIL 3.76s exit status 1
57/73 tracker-miners:extractor+video / mov-basic FAIL 3.51s exit status 1
58/73 tracker-miners:extractor+office / xps-doc-1 FAIL 3.79s exit status 1
59/73 tracker-miners:extractor+video / mkv-basic FAIL 3.79s exit status 1
60/73 tracker-miners:extractor+video / mp4-video-without-audio FAIL 4.62s exit status 1
61/73 tracker-miners:extractor+video / mp4-basic FAIL 4.88s exit status 1
62/73 tracker-miners:functional / test_extractor_decorator FAIL 123.53s exit status 1
63/73 tracker-miners:functional / test_cli FAIL 123.64s exit status 1
64/73 tracker-miners:functional / test_fts_file_operations FAIL 121.90s exit status 1
65/73 tracker-miners:functional / test_fts_basic FAIL 123.11s exit status 1
66/73 tracker-miners:functional / test_miner_basic FAIL 120.98s exit status 1
67/73 tracker-miners:functional / test_fts_stopwords FAIL 122.02s exit status 1
68/73 tracker-miners:functional / test_miner_removable_media FAIL 125.01s exit status 1
69/73 tracker-miners:functional / test_miner_resource_removal FAIL 124.99s exit status 1
70/73 tracker-miners:functional / test_writeback_images FAIL 8.03s exit status 1
Ok: 26
Expected Fail: 0
Fail: 47
Unexpected Pass: 0
Skipped: 0
Timeout: 0
Tests 62-69 were due to test timeouts since the VM I'm running this on is on an HDD and not an SSD.
To fix this I edited src/libtracker-miners-common/tracker-seccomp.c to add "ALLOW_RULE (chmod);" after the ALLOW_RULE for chdir. Once doing this and adding TRACKER_TESTS_AWAIT_TIMEOUT=160 to my environment, all tests passed:
Ok: 73
Expected Fail: 0
Fail: 0
Unexpected Pass: 0
Skipped: 0
Timeout: 0