Upgrade errored out, but completed anyway. $ df /var/log/portage/elog/ ; df -i /var/log/portage/elog/ Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/vg-var_log 51558685 39761473 9591388 81% /var/log Filesystem Inodes IUsed IFree IUse% Mounted on /dev/mapper/vg-var_log 6553600 1121227 5432373 18% /var/log $ df /var/tmp/portage* ; df -i /var/tmp/portage* ; Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/vg-var 103043268 33927872 64654316 35% /var shm 25165824 87064 25078760 1% /var/tmp/portage-tmpfs Filesystem Inodes IUsed IFree IUse% Mounted on /dev/mapper/vg-var 6553600 964613 5588987 15% /var shm 16477573 7868 16469705 1% /var/tmp/portage-tmpfs >>> Emerging (2 of 2) sys-apps/portage-3.0.49-r1::gentoo >>> Installing (2 of 2) sys-apps/portage-3.0.49-r1::gentoo >>> Jobs: 1 of 2 complete Load avg: 1.89, 1.96, 2.06Exception in callback AsynchronousTask._exit_listener_cb(<bound method...7f92724f7ed0>>) handle: <Handle AsynchronousTask._exit_listener_cb(<bound method...7f92724f7ed0>>)> Traceback (most recent call last): File "/usr/lib/python3.10/asyncio/events.py", line 80, in _run self._context.run(self._callback, *self._args) File "/usr/lib/python3.10/site-packages/_emerge/AsynchronousTask.py", line 209, in _exit_listener_cb listener(self) File "/usr/lib/python3.10/site-packages/_emerge/EbuildMerge.py", line 87, in _merge_exit self._start_exit_hook(self.returncode) File "/usr/lib/python3.10/site-packages/_emerge/EbuildMerge.py", line 96, in _start_exit_hook AsyncTaskFuture(future=self.exit_hook(self)), File "/usr/lib/python3.10/site-packages/_emerge/EbuildBuild.py", line 640, in _install_exit self._async_unlock_builddir() File "/usr/lib/python3.10/site-packages/_emerge/EbuildBuild.py", line 428, in _async_unlock_builddir portage.elog.elog_process(self.pkg.cpv, self.settings) File "/usr/lib/python3.10/site-packages/portage/elog/__init__.py", line 188, in elog_process m.process(mysettings, str(key), mod_logentries, mod_fulllog) File "/usr/lib/python3.10/site-packages/portage/elog/mod_save.py", line 58, in process with open( OSError: [Errno 28] No space left on device: b'/var/log/portage/elog/sys-apps:portage-3.0.49-r1:20230720-162701.log' Terminated upgrade was: [ebuild U ] sys-apps/portage-3.0.49-r1::gentoo [3.0.47::gentoo] USE="(ipc) native-extensions rsync-verify xattr -apidoc -build -debug -doc -gentoo-dev (-selinux) -test" PYTHON_TARGETS="python3_10 python3_11 -pypy3 -python3_12%" 1,126 KiB
I don't see how this can be a Portage bug. The error comes from the kernel.
Was this a one-off error, or can you reproduce it?
Reproduced, but also traced. [3958671.041457] EXT4-fs warning (device dm-105): ext4_dx_add_entry:2544: Directory (ino: 475260) index full, reach max htree level :2 [3958671.041460] EXT4-fs warning (device dm-105): ext4_dx_add_entry:2548: Large directory feature is not enabled on this filesystem # ls /var/log/portage/elog/ |wc -l 114610 # touch /var/log/portage/elog/foo{1..5000} touch: cannot touch '/var/log/portage/elog/foo213': No space left on device touch: cannot touch '/var/log/portage/elog/foo394': No space left on device touch: cannot touch '/var/log/portage/elog/foo856': No space left on device touch: cannot touch '/var/log/portage/elog/foo1929': No space left on device touch: cannot touch '/var/log/portage/elog/foo2149': No space left on device touch: cannot touch '/var/log/portage/elog/foo2185': No space left on device touch: cannot touch '/var/log/portage/elog/foo2191': No space left on device touch: cannot touch '/var/log/portage/elog/foo2629': No space left on device touch: cannot touch '/var/log/portage/elog/foo2887': No space left on device touch: cannot touch '/var/log/portage/elog/foo3370': No space left on device touch: cannot touch '/var/log/portage/elog/foo3456': No space left on device touch: cannot touch '/var/log/portage/elog/foo3573': No space left on device touch: cannot touch '/var/log/portage/elog/foo4692': No space left on device touch: cannot touch '/var/log/portage/elog/foo4755': No space left on device touch: cannot touch '/var/log/portage/elog/foo4789': No space left on device # tune2fs -O large_dir /dev/vg/var_log # touch /var/log/portage/elog/foo{1..5000} (no errors)