I'm trying to use propellor (and to learn haskell!) to manage my laptop and a small server, both running debian stable.
The server is a lime2 soc [1], with only 1GiB of RAM, and no swap (I think this is the default setup from the freedombox image).
propellor --spin failed when targeting the server: on the server, ghc got killed by the OOM killer.
I then simplified my config.hs and successfully ran "cabal build -j1" from the server. At some point during the successful build, ghc was using 400MiB of memory. This is 40% of the whole memory, I fear the OOM killer will strike again if I don't change something. I'll probably try to enable swap.
Propellor seems designed with embedded devices in mind (eg. with the image builder), I'm surprised it demands that much RAM. Am I missing something? Do people cross-compile propellor to avoid the issue?
Cheers!
[1] https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXino-LIME2
500 mb seems a bit higher than typical; my own config.hs (500 lines) needs 416 mb to build, and the example config.hs included in propellor needs 245 mb.
I typically install swapspace on systems with 1 gb or less and it works fine. I think the smallest system I've used propellor with was 500 mb.
Hi Joey,
thank you for the feedback. I'm glad to know it is supposed to work in those cases. It seems freedombox uses btrfs and swapfiles do not work on btrfs partitions. I thus tried with zram (apt get install zram-tools, which set up a 256 MiB swap).
I could then run propellor --spin to the server, it passed. Then I rm -rf /usr/local/propellor on server and ran propellor --spin again. The build passed again (it took ~75 minute and at some point ghc took 570MiB but it succeedded).
I'm back on track, thank you again!