Beware the Archive Manager in Linux

Updated: March 6, 2013

This is a very ugly title, and almost misleading. So let's clear it upfront. The archive manager, the GUI frontend for various tar, zip and other archive formats, is a good and robust and safe tool, and there's nothing wrong with it, per se. However, you can easily misuse it and cause a short-term if significant disruption of productivity in your setup.

This short guide will elaborate on a rather common, easily reproducible scenario than any decent Linux user might attempt one day. In fact, it happened to me while testing the Flightgear simulator. What happened was, I download the entire Aircraft data set, totaling some 2.3GB of files inside 376 separate zip files. Naturally, I wanted to extract all these files to the game directory, so I could enjoy the multitude of different aircraft. Imagine what happened next.

Archive manager mode of work

Before we reach the catharsis of this story, let's briefly hold back and discuss the archive manager modus operandi. As it is, the archive manager, when used in its GUI form, will launch a separate instance for each and every selected archive in your work directory.

Open with

Now, let's see what happens when you select three files and then hit Open With ... You get three separate instances of the Archive Manager launching.

Three instances open

Now, when you try to open 376 instances, eventually, you will choke your system. What I did was heavily load the CPU, and on top of that, caused my machine with 4GB of RAM and twice that swap to fully run out of available memory, the so called OOM situation. Lovely, isn't it. Rather than wait a few minutes for the box to try to recover, I rebooted at this stage. Imagine this happens when you have other, important applications and files open and used on some box.

Lesson learned

What I did next was copy everything to the destination directory, and then used the Extract Here option. This serialized the running of all instances of the archive manager rather than firing them up in parallel. Even so, this was a costly procedure. And it took quite a while. Well, 4.7GB extracted, spread over 376 top-level directories and more than 45,000 files, so it does sound like a busy activity.

Extracting files

Looking at the usage figures, I managed to run out of physical memory again and nibble into the swap space. True, almost 3.3GB of that information remained cached, but those nasty little file-rollers and unzips did their work stressing the machine.

Swap usage

Command line, noob?

Yes, true, all this could have been done using the command line. However, the point of this exercise is not to flaunt the terminal skills, it is to show that seemingly equivalent actions in GUI to those in the command line may trigger unexpected results. In fact, no matter how advanced, re: savant you are, extracting files via the file manager is a perfectly acceptable action. And now, you know what can happen.

Conclusion

This article will probably not help you earn more money at the end of the year, but you could end up impressing girls. And if you remember the old trick from Windows days, before you got that warning where opening everything at once could slow the system, you would select all icon on someone's desktop and then hit Enter. Same here. If you want to play silly with your friend's Linux box, grab a few hundred archives and try to open them all at once. Fun ensues.

The archive manager is really an innocent tool, and it does what you need. However, it's single-archive mode of work means you could, in theory, render your box unusable if you try too many operations at the same time. Memory usage is also somewhat of a concern, so take this into account. And then, you will need not lose valuable data over a tiny mistake by having to reboot a stalled box. That would be all.

Cheers.