Bug#929048: tracker-extract: Allocates between 5 and 10 GiB of memory when examining certain DDS files

Bálint Kovács dratini0 at gmail.com
Thu May 16 01:42:44 BST 2019


Package: tracker-extract
Version: 2.1.6-1
Severity: critical
Justification: breaks the whole system

Dear Maintainer,

   * What led up to the situation?
I have been extracting resources from a game. When I extracted a handful of DDS
files, my memory usage shot up and in about 5 seconds the entire system locked
up, no moving to virtual consoles, no nothing. This kept happening, every time
I logged into my profile. To investigate I killed all tracker-related
processes.

   * What exactly did you do (or not do) that was effective (or
     ineffective)?
I have been able to identify that the misbehaving process is tracker-extract. I
started running tracker-extract with an rlimit on the DDS files.

   * What was the outcome of this action?
Some files worked fine, some failed under an RLIMIT_AS of 5 GiB but not under
an RLIMIT_AS of 10 GiB (but it still allocated a not insignificant amount of
memory)

Full output from an affected file:

$ /usr/lib/tracker/tracker-extract -v 2 -f bad.dds
00:57
** Message: 00:57:52.901: Starting tracker-extract 2.1.6
** Message: 00:57:52.901: General options:
** Message: 00:57:52.901:   Verbosity  ............................  2
** Message: 00:57:52.901:   Sched Idle  ...........................  1
** Message: 00:57:52.901:   Max bytes (per file)  .................  1048576
(tracker-extract:9171): dconf-DEBUG: 00:57:52.901: watch_established:
"/org/freedesktop/tracker/extract/" (establishing: 1)
Setting scheduler policy to SCHED_IDLE
Setting priority nice level to 19
Loading extractor rules... (/usr/share/tracker-miners/extract-rules)
Extractor rules loaded
MIME type guessed as 'image/x-dds' (from GIO)
../../../glib/gmem.c:105: failed to allocate 65687 bytes

   * What outcome did you expect instead?
Full output from an unaffected file:

$ /usr/lib/tracker/tracker-extract -v 2 -f good.dds
00:57
** Message: 00:57:46.382: Starting tracker-extract 2.1.6
** Message: 00:57:46.382: General options:
** Message: 00:57:46.382:   Verbosity  ............................  2
** Message: 00:57:46.382:   Sched Idle  ...........................  1
** Message: 00:57:46.382:   Max bytes (per file)  .................  1048576
(tracker-extract:9113): dconf-DEBUG: 00:57:46.382: watch_established:
"/org/freedesktop/tracker/extract/" (establishing: 1)
Setting scheduler policy to SCHED_IDLE
Setting priority nice level to 19
Loading extractor rules... (/usr/share/tracker-miners/extract-rules)
Extractor rules loaded
MIME type guessed as 'image/x-dds' (from GIO)
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix nmm: <http://www.tracker-project.org/temp/nmm#> .
@prefix nfo: <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#> .

<file:///home/.../good.dds> a nfo:Image ,
nmm:Photo .

   * Other information
All of the files work with imagemagick display perfectly well, they are even
the same resolution.

To remedy the situation, I have deleted all affected DDS files, but I have kept
a tarball of an affected and an unaffected sample (along with one that is not
recognized for some reason.) I have attached it to my report. Handle with care,
especially if you have a desktop with tracker on it.

-- System Information:
Debian Release: buster/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'testing-debug'), (500, 'unstable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.19.0-4-amd64 (SMP w/4 CPU cores)
Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8),
LANGUAGE=en_US:en (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages tracker-extract depends on:
ii  dconf-gsettings-backend [gsettings-backend]  0.30.1-2
ii  libc6                                        2.28-10
ii  libcue2                                      2.2.1-2
ii  libexempi8                                   2.5.0-2
ii  libexif12                                    0.6.21-5.1
ii  libflac8                                     1.3.2-3
ii  libgexiv2-2                                  0.10.9-1
ii  libgif7                                      5.1.4-3
ii  libglib2.0-0                                 2.58.3-1
ii  libgsf-1-114                                 1.14.45-1
ii  libgstreamer-plugins-base1.0-0               1.14.4-1
ii  libgstreamer1.0-0                            1.14.4-1
ii  libgxps2                                     0.3.1-1
ii  libicu63                                     63.1-6
ii  libiptcdata0                                 1.0.5-2.1
ii  libjpeg62-turbo                              1:1.5.2-2+b1
ii  libosinfo-1.0-0                              1.2.0-1
ii  libpng16-16                                  1.6.36-5
ii  libpoppler-glib8                             0.71.0-3
ii  libseccomp2                                  2.3.3-4
ii  libtagc0                                     1.11.1+dfsg.1-0.3
ii  libtiff5                                     4.0.10-4
ii  libtotem-plparser18                          3.26.2-1
ii  libtracker-miner-2.0-0                       2.1.8-2
ii  libtracker-sparql-2.0-0                      2.1.8-2
ii  libvorbisfile3                               1.3.6-2
ii  libxml2                                      2.9.4+dfsg1-7+b3
ii  tracker                                      2.1.8-2

tracker-extract recommends no packages.

tracker-extract suggests no packages.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dds_examples.tar.xz
Type: application/x-xz
Size: 1539900 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/pkg-gnome-maintainers/attachments/20190516/9961d018/attachment-0001.xz>


More information about the pkg-gnome-maintainers mailing list