Bad coding practices in Fedora packages
Denys Vlasenko
dvlasenk at redhat.com
Tue Jan 3 13:32:28 UTC 2012
I installed F16 on a new machine, trying to keep the installation
more or less lean. Meaning - not installing tons of packages w/o
thinking and ending up with tons of installed stuff I don't even know
what it is.
Today, I'm looking at my process list, sorted by amount of dirtied pages
(which very closely matches amount of malloced and used space - that is,
malloced, but not-written to memory areas are not included).
This is the most expensive type of pages, they can't be discarded.
If we would be in memory squeeze, kernel will have to swap them out,
if swap exists, otherwise kernel can't do anything at all.
And this is what I see (DIRTY column):
PID VSZ VSZRW RSS (SHR) DIRTY^(SHR) STACK COMMAND
1974 593m 392m 233m 14900 200m 64 208 /usr/lib/thunderbird/thunderbird-bin
2030 589m 393m 188m 16568 156m 684 344 /usr/lib/firefox/firefox
1375 27976 14100 14288 5752 9912 3896 132 /usr/bin/Xorg
1888 71748 55152 14056 4268 9536 0 132 /usr/libexec/tracker-store
1953 145m 44672 17588 6812 8880 88 132 /usr/libexec/xfce4/panel-plugins/xfce4-mixer-plugin
2057 167m 9036 18944 10124 8236 280 204 xchat
4292 15728 8344 10236 1440 7848 0 132 /usr/bin/mc -u -d -C
1892 36464 7608 16396 7116 7296 0 136 {applet.py} /usr/bin/python /usr/share/system-config-printer/applet.py
1874 48464 27060 12408 5568 6180 0 132 /usr/libexec/tracker-miner-fs
1941 107m 13872 14784 8968 5620 768 132 Terminal
1901 44748 26400 10872 5012 5560 0 132 /usr/libexec/tracker-miner-flickr
...
thunderbird, firefox, xorg are the largest ones, but this
is not a surprise.
Whoops. What is tracker-store? I don't even know what's that
and why is it running, and it's eating ~10 mbytes in DIRTY.
Hmm. There are more of those things - tracker-miner-fs,
tracker-miner-flickr. There go another 12 megs...
And - flickr??
I did not ask anything flickr-related to be *run* on my machine!
Let's see...
$ rpm -qf /usr/libexec/tracker-miner-flickr
tracker-0.12.8-2.fc16.i686
$ rpm -q --info tracker
...
Description :
Tracker is a powerful desktop-neutral first class object database,
tag/metadata database, search tool and indexer.
It consists of a common object database that allows entities to have an
almost infinte number of properties, metadata (both embedded/harvested as
well as user definable), a comprehensive database of keywords/tags and
links to other entities.
It provides additional features for file based objects including context
linking and audit trails for a file object.
It has the ability to index, store, harvest metadata. retrieve and search
all types of files and other first class objects
Ok. I did not ask for this crap to be installed, much less to *run*!
What pulled it in?
# yum erase tracker
...
========================================================================
Package Arch Version Repository Size
========================================================================
Removing:
tracker i686 0.12.8-2.fc16 @updates 4.6 M
Removing for dependencies:
grilo-plugins i686 0.1.18-1.fc16 @updates 405 k
totem i686 1:3.2.1-2.fc16 @anaconda-0 8.1 M
totem-nautilus i686 1:3.2.1-2.fc16 @anaconda-0 212 k
Transaction Summary
========================================================================
Remove 4 Packages
...
Oh. I see. Looks like it's totem.
In my opinion, a "search tool and indexer", even if it brands itself
"a powerful desktop-neutral first class object database", has no valid
technical reasons to run on the machine all the time, even at times when
nothing is using it, as was the case at the moment I took the above snapshot.
I am pretty sure I did not start totem today (or ever) on this box.
Ok, I get it, not every piece of software is written by geniuses.
It might be f***ed up by design and does require to be run all the time.
But, at the very least, it must not consume tens of megabytes of RAM
while it is idle.
So. My questions for fedora-devel:
Can we do something to either beat this sort of crappy software into
some sort of better shape; or it's upstream would not listen, drop it
from Fedora?
Or are we going to contribute to the continued bloat?
--
vda
More information about the devel
mailing list