PORTAGE_TMPDIR busy after IOError: [Errno 28] No space left on device Reproducible: Always Steps to Reproduce: 1. Size of PORTAGE_TMPDIR = 4GB 2. emerge \=mail-client/thunderbird-17.0.2 Actual Results: These are the packages that would be merged, in reverse order: Calculating dependencies... done! [ebuild U ] mail-client/thunderbird-17.0.2 [10.0.11] USE="alsa bindist* crypt custom-optimization* dbus ipc jit%* libnotify lightning minimal startup-notification -custom-cflags -debug -gconf -ldap% -mozdom (-selinux) -system-sqlite -wifi (-webm%*)" LINGUAS="ru -ar -ast -be -bg -bn_BD -br -ca -cs -da -de -el -en_GB -es_AR -es_ES -et -eu -fi -fr -fy_NL -ga_IE -gd -gl -he -hr% -hu -hy_AM% -id -is -it -ja -ko -lt -nb_NO -nl -nn_NO -pa_IN -pl -pt_BR -pt_PT -rm -ro -si -sk -sl -sq -sr -sv_SE -ta_LK -tr -uk -vi -zh_CN -zh_TW" 112,330 kB [ebuild U ] dev-libs/nss-3.14.1 [3.14] USE="-utils" 5,890 kB [ebuild U ] dev-libs/nspr-4.9.4 [4.9.2] USE="-debug" 1,134 kB Total: 3 packages (3 upgrades), Size of downloads: 119,353 kB Would you like to merge these packages? [Yes/No] >>> Verifying ebuild manifests >>> Starting parallel fetch >>> Emerging (1 of 3) dev-libs/nspr-4.9.4 >>> Installing (1 of 3) dev-libs/nspr-4.9.4 >>> Emerging (2 of 3) dev-libs/nss-3.14.1 >>> Installing (2 of 3) dev-libs/nss-3.14.1 >>> Emerging (3 of 3) mail-client/thunderbird-17.0.2 >>> Jobs: 2 of 3 complete, 1 running Load avg: 1.99, 3.13, 3.59 Traceback (most recent call last): File "/usr/bin/emerge", line 48, in <module> retval = emerge_main() File "/usr/lib64/portage/pym/_emerge/main.py", line 1021, in emerge_main gc_locals=locals().clear) File "/usr/lib64/portage/pym/_emerge/actions.py", line 3837, in run_action myopts, myaction, myfiles, spinner) File "/usr/lib64/portage/pym/_emerge/actions.py", line 463, in action_build retval = mergetask.merge() File "/usr/lib64/portage/pym/_emerge/Scheduler.py", line 1006, in merge rval = self._merge() File "/usr/lib64/portage/pym/_emerge/Scheduler.py", line 1390, in _merge self._main_loop() File "/usr/lib64/portage/pym/_emerge/Scheduler.py", line 1367, in _main_loop self._event_loop.iteration() File "/usr/lib64/portage/pym/portage/util/_eventloop/EventLoop.py", line 180, in iteration if not x.callback(f, event, *x.args): File "/usr/lib64/portage/pym/portage/util/_async/PipeLogger.py", line 117, in _output_handler log_file.flush() IOError: [Errno 28] No space left on device Filesystem Size Used Avail Use% Mounted on /dev/mapper/sdx2-var.tmp 4.0G 4.0G 2.2M 100% /var/tmp # umount /var/tmp/ umount: /var/tmp: device is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1)) # lsof /var/tmp/ COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME python3.2 3838 root cwd DIR 253,5 48 1060867 /var/tmp/portage/mail-client/thunderbird-17.0.2/work/comm-esr17/tbird (deleted) python3.2 3838 root 3u REG 253,5 0 1090508 /var/tmp/portage/mail-client/thunderbird-17.0.2/.ipc_lock (deleted) python3.2 3838 root 4r FIFO 253,5 0t0 21987 /var/tmp/portage/mail-client/thunderbird-17.0.2/.ipc_out (deleted) # ps ax | grep 3838 3838 pts/0 S 0:00 /usr/bin/python3.2 /usr/lib64/portage/bin/ebuild-ipc.py exit 1 Expected Results: # umount /var/tmp/ #
If we fix it to handle the IOError and kill the subprocess as discussed in bug #451158, then that should fix it.