Yesterday, I tried to upgrade gcc-gcj by building the latest version (4.7.2-4) with makepkg. In the middle of building the package, my laptop stopped. I doubt this is related to the package in any way. That's not the problem. (It is a problem, of course - just not this one.)
When I'd rebooted the machine, I returned to the build directory and issued makepkg again. I expected that it would figure out where it was and continue the build.
A while later, my laptop ground to a halt. Not in the sense that it stopped but in the sense that it slowed to a crawl and ceased responding to anything much. Eventually, I was forced to do a hard reboot. Examining the journal shows that the laptop had run out of memory. (It had actually started to kill applications though I couldn't tell this as it was so unresponsive I wouldn't have known.) Essentially, it seemed to have spawned processes (make all and sh) and kept spawning them on and on until the machine could not take any more.
I normally have no trouble building gcc-gcj. I have 8G of RAM and about 9G swap.
Is this sort of behaviour expected? I would have expected makepkg to manage better but even given that it did not, I would have expected the OS to limit the resources which it fed to makepkg to prevent this sort of thing from occurring.
makepkg was being run by a different user from the user of the desktop session I was in and, again, I would have expected the OS to somehow limit the resources allowed to any particular user, given the existence of other logged in users on the system.
But maybe GNU/Linux doesn't have this functionality? Or do I need to enable this somehow and somehow missed the configuration step?
Also, I'd like to know if it is safe to try building gcc-gcj again and, if so, should I just remove the src and pkg directories or is there anything else I need to do as a precaution?
Last edited by cfr (2013-03-21 23:22:32)