Dear archers,
I am running Arch Linux inside virtualbox, on a Ubuntu 12.04 host on
which I have very limited power (the only command I can run as root is
"apt-get install"). For this reason my virtualbox version is very
outdated (4.1.12, the last version being 4.3.28!). My main problem is
than when I ask to run "pacman -S ghc", the installation begins and then
the machine suddenly halts at approximately 25% (best case 50%), with
the following error log message:
00:02:06.072 !!Assertion Failed!!
00:02:06.072 Expression: pSgBuf->cbSegLeft <= 5 * _1M &&
(uintptr_t)pSgBuf->pvSegCur >=
(uintptr_t)pSgBuf->paSegs[pSgBuf->idxSeg].pvSeg &&
(uintptr_t)pSgBuf->pvSegCur + pSgBuf->cbSegLeft <=
(uintptr_t)pSgBuf->paSegs[pSgBuf->idxSeg].pvSeg +
pSgBuf->paSegs[pSgBuf->idxSeg].cbSeg
00:02:06.072 Location :
/build/buildd/virtualbox-4.1.12-dfsg/src/VBox/Runtime/common/misc/sg.cpp(54)
void* sgBufGet(PRTSGBUF, size_t*)
00:02:06.072 pSgBuf->idxSeg=0 pSgBuf->cSegs=1
pSgBuf->pvSegCur=00007fbd109e0000 pSgBuf->cbSegLeft=10321920
pSgBuf->paSegs[0].pvSeg=00007fbd109e0000 pSgBuf->paSegs[0].cbSeg=10321920
Following this ticket <https://www.virtualbox.org/ticket/10434> and ghc
being a huge package, I am assuming that the problem is the same: this
virtualbox bug is triggered because pacman performs too heavy IO when
installing ghc (speculative, but looks reasonable).
So, I tried to limit pacman's IO rate in the following way (after having
installed libcgroup from the AUR and cgmanager):
# cgcreate -g blkio:wlimit
# echo "8:0 1024"
>/sys/fs/cgroup/blkio/wlimit/blkio.throttle.write_bps_device
# cgexec -g blkio:wlimit pacman -S --force ghc
(8:0 is /dev/sda, which is the only disk, and 1024 the byte rate I want
to enforce)
However the machine still halts in the same way and doesn't seem to go
beyond 50% either. Even if I replace 1024 by, say, 1, pacman doesn't
seem to struggle more to write to the disk -- when I would expect it to
take forever to do 1% of the installation.
Is there something wrong in the commands I have written above? Is there
a way to check that the limitation is indeed enforced? (maybe the source
of the bug is elsewhere) Alternatively, can you think of another
solution to this problem?
Many thanks
-- Yannis