ioctl seccomp assertion with sqlite when compiled with SQLITE_ENABLE_BATCH_ATOMIC_WRITE
tracker gets stuck when trying to index any audio/video files when sqlite is compiled with SQLITE_ENABLE_BATCH_ATOMIC_WRITE
, as it currently is on Void Linux.
Trying to run /usr/libexec/tracker-extract-3 -f zh6O2TrKEGE.webm
results in:
Disallowed syscall "ioctl" caught in sandbox
Bad system call
This is due to sqlite making an ioctl call here: https://github.com/sqlite/sqlite/blob/8340f54bddefd8fa630c8aa7513469ea9b0283d9/src/os_unix.c#L4099-L4120
Backtrace:
GNU gdb (GDB) 12.1
Copyright (C) 2022 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-unknown-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/libexec/tracker-extract-3...
Reading symbols from /usr/lib/debug//usr/libexec/tracker-extract-3...
(gdb) run -f zh6O2TrKEGE.webm
Starting program: /usr/libexec/tracker-extract-3 -f zh6O2TrKEGE.webm
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib64/libthread_db.so.1".
[New Thread 0x7ffff59ff6c0 (LWP 19514)]
[New Thread 0x7ffff51fe6c0 (LWP 19515)]
[New Thread 0x7ffff49fd6c0 (LWP 19516)]
[New Thread 0x7fffe7b936c0 (LWP 19517)]
[New Thread 0x7fffe73396c0 (LWP 19518)]
[New Thread 0x7fffe6b386c0 (LWP 19519)]
[New Thread 0x7fffe627a6c0 (LWP 19520)]
[New Thread 0x7fffe56436c0 (LWP 19521)]
[New Thread 0x7fffe4e426c0 (LWP 19522)]
[New Thread 0x7fffcffff6c0 (LWP 19523)]
[Thread 0x7fffe56436c0 (LWP 19521) exited]
[New Thread 0x7fffe56436c0 (LWP 19524)]
Thread 1 "tracker-extract" received signal SIGSYS, Bad system call.
__GI___ioctl (fd=12, request=2147808524) at ../sysdeps/unix/sysv/linux/ioctl.c:36
36 ../sysdeps/unix/sysv/linux/ioctl.c: No such file or directory.
(gdb) bt
#0 __GI___ioctl (fd=12, request=2147808524)
at ../sysdeps/unix/sysv/linux/ioctl.c:36
#1 0x00007ffff689efe3 in setDeviceCharacteristics (
pFd=pFd@entry=0x5555556e2988) at sqlite3.c:40772
#2 0x00007ffff689f060 in setDeviceCharacteristics (pFd=0x5555556e2988)
at sqlite3.c:40766
#3 unixDeviceCharacteristics (id=0x5555556e2988) at sqlite3.c:40892
#4 0x00007ffff690849b in sqlite3OsDeviceCharacteristics (id=<optimized out>)
at sqlite3.c:24925
#5 sqlite3PagerOpen (nExtra=136, xReinit=0x7ffff68c11b0 <pageReinit>,
vfsFlags=<optimized out>, flags=0, zFilename=<optimized out>,
ppPager=0x5555558381f8, pVfs=<optimized out>) at sqlite3.c:60096
#6 sqlite3BtreeOpen (pVfs=<optimized out>,
zFilename=zFilename@entry=0x555555870fbc "/home/oreo639/.cache/tracker3/files/meta.db", db=db@entry=0x555555810808, ppBtree=<optimized out>,
flags=<optimized out>, flags@entry=0, vfsFlags=<optimized out>)
at sqlite3.c:5182
#7 0x00007ffff69935ec in openDatabase (
zFilename=zFilename@entry=0x555555878380 "/home/oreo639/.cache/tracker3/files/meta.db", ppDb=ppDb@entry=0x5555555c6398, flags=<optimized out>,
zVfs=zVfs@entry=0x0) at sqlite3.c:175896
#8 0x00007ffff6993955 in sqlite3_open_v2 (
filename=filename@entry=0x555555878380 "/home/oreo639/.cache/tracker3/files/--Type <RET> for more, q to quit, c to continue without paging--c
meta.db", ppDb=ppDb@entry=0x5555555c6398, flags=<optimized out>, zVfs=zVfs@entry=0x0) at sqlite3.c:176019
#9 0x00007ffff7b3b6be in open_database (error=0x7fffffffdbb0, db_interface=0x5555555c6370) at ../src/libtracker-sparql/core/tracker-db-interface-sqlite.c:2092
#10 tracker_db_interface_initable_init (initable=<optimized out>, cancellable=<optimized out>, error=0x7fffffffdd30) at ../src/libtracker-sparql/core/tracker-db-interface-sqlite.c:2141
#11 0x00007ffff7cacb84 in g_initable_new_valist () from /usr/lib/libgio-2.0.so.0
#12 0x00007ffff7cacc79 in g_initable_new () from /usr/lib/libgio-2.0.so.0
#13 0x00007ffff7b3c451 in tracker_db_interface_sqlite_new (filename=0x55555587b740 "/home/oreo639/.cache/tracker3/files/meta.db", shared_cache_key=0x0, flags=(TRACKER_DB_INTERFACE_READONLY | TRACKER_DB_INTERFACE_USE_MUTEX), error=0x7fffffffdda0) at ../src/libtracker-sparql/core/tracker-db-interface-sqlite.c:2929
#14 0x00007ffff7b463df in tracker_db_manager_create_db_interface (db_manager=db_manager@entry=0x5555555b7e70, readonly=1, error=error@entry=0x7fffffffddf0) at ../src/libtracker-sparql/core/tracker-db-manager.c:764
#15 0x00007ffff7b466bb in init_writable_db_interface (db_manager=0x5555555b7e70) at ../src/libtracker-sparql/core/tracker-db-manager.c:923
#16 tracker_db_manager_get_writable_db_interface (db_manager=0x5555555b7e70) at ../src/libtracker-sparql/core/tracker-db-manager.c:936
#17 0x00007ffff7b34d28 in db_get_version (db_manager=0x5555555b7e70) at ../src/libtracker-sparql/core/tracker-db-manager.c:262
#18 tracker_db_manager_new (shared_cache=0, busy_callback=<optimized out>, error=0x7fffffffdee0, vtab_data=0x7fffd8014d30, iface_data=<optimized out>, busy_user_data=0x7fffd8014d30, update_cache_size=<optimized out>, select_cache_size=<optimized out>, cache_location=<optimized out>, flags=(TRACKER_DB_MANAGER_READONLY | TRACKER_DB_MANAGER_ENABLE_MUTEXES)) at ../src/libtracker-sparql/core/tracker-db-manager.c:572
#19 tracker_data_manager_initable_init (initable=<optimized out>, cancellable=<optimized out>, error=0x7fffffffe048) at ../src/libtracker-sparql/core/tracker-data-manager.c:4259
#20 0x00007ffff7b798ff in tracker_direct_connection_initable_init (initable=<optimized out>, cancellable=0x0, error=0x0) at ../src/libtracker-sparql/direct/tracker-direct.c:491
#21 0x00007ffff7cacb84 in g_initable_new_valist () from /usr/lib/libgio-2.0.so.0
#22 0x00007ffff7cacc79 in g_initable_new () from /usr/lib/libgio-2.0.so.0
#23 0x00007ffff7b184f9 in tracker_direct_connection_new (error=0x0, ontology=0x0, store=0x555555862ba0, flags=TRACKER_SPARQL_CONNECTION_FLAGS_READONLY) at ../src/libtracker-sparql/direct/tracker-direct.c:1560
#24 tracker_sparql_connection_new (flags=flags@entry=TRACKER_SPARQL_CONNECTION_FLAGS_READONLY, store=store@entry=0x555555862ba0, ontology=ontology@entry=0x0, cancellable=cancellable@entry=0x0, error=error@entry=0x0) at ../src/libtracker-sparql/tracker-connection.c:1025
#25 0x00005555555672f4 in tracker_main_get_readonly_connection (error=0x0) at ../src/tracker-extract/tracker-main.c:310
#26 0x00007ffff652be45 in ?? () from /usr/lib64/tracker-miners-3.0/extract-modules/libextract-gstreamer.so
#27 0x00007ffff652c2a0 in tracker_extract_get_metadata () from /usr/lib64/tracker-miners-3.0/extract-modules/libextract-gstreamer.so
#28 0x0000555555560e90 in get_file_metadata (task=task@entry=0x55555559bd90, info_out=info_out@entry=0x7fffffffe3f8, error=error@entry=0x0) at ../src/tracker-extract/tracker-extract.c:305
#29 0x000055555556977f in tracker_extract_get_metadata_by_cmdline (object=object@entry=0x7fffec004d60, uri=uri@entry=0x5555555d1290 "file:///home/oreo639/Documents/zh6O2TrKEGE.webm", mime=<optimized out>, output_format=output_format@entry=TRACKER_SERIALIZATION_FORMAT_TURTLE) at ../src/tracker-extract/tracker-extract.c:710
#30 0x000055555555fcdd in run_standalone (config=<optimized out>) at ../src/tracker-extract/tracker-main.c:230
#31 main (argc=<optimized out>, argv=<optimized out>) at ../src/tracker-extract/tracker-main.c:407
(gdb)
Edited by A G