MagRe
April 17, 2019, 7:21pm
1
Zdravím,
posledních pár releasů se potýkám s touto chybou:
Updater failed: Failed to fork command /tmp/updater-busybox-hjhMfo/busybox: Out of memory
Zřejmě se řešilo i zde , ale nijak nedořešilo.
Problémem je, že kvůli nedostatku paměti selže aktualizace. Po rebootu routeru, kdy se paměť na chvíli uvolní, update proběhne úspěšně. Takže tragédie to není, ale není to žádaný stav. Paměť je samozřejmě zaplněná:
total used free shared buffers cached
Mem: 1030732 993544 37188 256660 2036 543596
-/+ buffers/cache: 447912 582820
Swap: 0 0 0
Nicméně vzhledem k logice cache by se půlka dle potřeby uvolnit měla, což zřejmě neprobíhá. Ještě mě mate ten swap. Přes Luci jsem si alokoval 4G, které se vidno, ale také neuplatňují:
Disk /dev/sda1: 4 GiB, 4294967296 bytes, 8388608 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Filesystem Size Used Available Use% Mounted on
/dev/mmcblk0p1 7.3G 2.8G 4.6G 38% /
tmpfs 503.3M 180.8M 322.5M 36% /tmp
tmpfs 512.0K 0 512.0K 0% /dev
/dev/sdb1 365.8G 274.6G 72.5G 79% /mnt/nas
/dev/sda2 107.8G 5.6G 101.5G 5% /srv
/dev/sdb1 365.8G 274.6G 72.5G 79% /tmp/run/mountd/sdb1
/dev/sda1 3.9G 16.0M 3.6G 0% /tmp/run/mountd/sda1
Nějaký nápad jak z toho ven, případně , co jsem udělal špatně u SWAP jednotky?
Díky
vcunat
April 17, 2019, 8:14pm
2
To odkázané vlákno jsem pochopil tak, že pomohlo promazání obsahu nějakých tmpfs, ale to neznamená že zde jde nutně o něco podobného.
MagRe
April 17, 2019, 8:59pm
3
Pravda, když to teď znovu pročítám, tak by to tak mohlo být. Prve mě ještě zmátlo těch 17G, nicméně mě to taktéž ukazuje zbývající velikost /dev/sdb1, byť přímo lezu pod /tmp:
root@turris:~# cd /tmp
root@turris:/tmp# du -sh
274.7G .
Kovaný linuxák nejsem, takže mi vidno uniká nějaká pointa a nechci tak zatím použít příkaz
rm -r *
Takto to vypadá, že si odkládá data na připojený USB disk. Čemuž i odpovídá výpis z adresáře:
Summary
root@turris:/tmp# du
0 ./pymp-ffz9lyzs
0 ./pymp-gstfbf1p
0 ./pymp-91xdv7wt
0 ./pymp-y44oqo7k
28 ./fw-rules
568 ./updater-busybox-eaLJih
4 ./update-state
0 ./.uci-foris-controller
12 ./user_notify/1555532966-22618
12 ./user_notify
0 ./cache/netdata
0 ./cache
0 ./suricata
320 ./luci-modulecache
8 ./.foris_workdir/dynamic_assets/config/cs/javascript
8 ./.foris_workdir/dynamic_assets/config/cs
8 ./.foris_workdir/dynamic_assets/config
88 ./.foris_workdir/dynamic_assets
88 ./.foris_workdir
0 ./pymp-whol_emy
0 ./pymp-3gb7hh_0
0 ./mounts
0 ./nmbd
0 ./kresd/tty
384 ./kresd
0 ./empty
0 ./spool/cron/atspool
0 ./spool/cron/atjobs
0 ./spool/cron
0 ./spool
4 ./ucollect
0 ./dnsmasq.d
8 ./hosts
0 ./lib/sudo
4 ./lib/netdata/registry
8 ./lib/netdata
0 ./lib/misc
115260 ./lib
4 ./etc/ssh
28 ./etc
4 ./lvm/cache
4 ./lvm
0 ./.jail
0 ./.uci
0 ./log/netdata
4 ./log/suricata
4 ./log/lighttpd
0 ./log/cores/nmbd
0 ./log/cores/smbd
0 ./log/cores
804 ./log
0 ./extroot
8 ./sysinfo
8 ./state
0 ./lock/lvm
160 ./lock
0 ./run/suricata
336 ./run/minidlna
16 ./run/mountd/sda1/lost+found
20 ./run/mountd/sda1
1208 ./run/mountd/sdb1/transmission/torrents
44 ./run/mountd/sdb1/transmission/resume
13623904 ./run/mountd/sdb1/transmission/done/Get.Out.2017.Bluray.1080p.DTS-HD.x264-Grym
8 ./run/mountd/sdb1/transmission/done/VENOM 2018 BD/BDMV/PLAYLIST
8 ./run/mountd/sdb1/transmission/done/VENOM 2018 BD/BDMV/BACKUP/PLAYLIST
56 ./run/mountd/sdb1/transmission/done/VENOM 2018 BD/BDMV/BACKUP/CLIPINF
76 ./run/mountd/sdb1/transmission/done/VENOM 2018 BD/BDMV/BACKUP
56 ./run/mountd/sdb1/transmission/done/VENOM 2018 BD/BDMV/CLIPINF
32 ./run/mountd/sdb1/transmission/done/VENOM 2018 BD/BDMV/META/DL
36 ./run/mountd/sdb1/transmission/done/VENOM 2018 BD/BDMV/META
22300424 ./run/mountd/sdb1/transmission/done/VENOM 2018 BD/BDMV/STREAM
22300612 ./run/mountd/sdb1/transmission/done/VENOM 2018 BD/BDMV
22300616 ./run/mountd/sdb1/transmission/done/VENOM 2018 BD
14672416 ./run/mountd/sdb1/transmission/done/Elementary_SE01-SE06_1080p_CZ/SE04
24309752 ./run/mountd/sdb1/transmission/done/Elementary_SE01-SE06_1080p_CZ/SE01
16222884 ./run/mountd/sdb1/transmission/done/Elementary_SE01-SE06_1080p_CZ/SE02
15919820 ./run/mountd/sdb1/transmission/done/Elementary_SE01-SE06_1080p_CZ/SE03
13904252 ./run/mountd/sdb1/transmission/done/Elementary_SE01-SE06_1080p_CZ/SE05
13408352 ./run/mountd/sdb1/transmission/done/Elementary_SE01-SE06_1080p_CZ/SE06
98437480 ./run/mountd/sdb1/transmission/done/Elementary_SE01-SE06_1080p_CZ
8022868 ./run/mountd/sdb1/transmission/done/Get Out - Uteč (2017)
287890532 ./run/mountd/sdb1/transmission/done
4 ./run/mountd/sdb1/transmission/blocklists
287891800 ./run/mountd/sdb1/transmission
16 ./run/mountd/sdb1/lost+found
287891820 ./run/mountd/sdb1
287891840 ./run/mountd
4 ./run/dnsmasq
0 ./run/hostapd
0 ./run/rpcd
287892276 ./run
0 ./shm
288010136
Z logiky bych předpokládal, že /tmp adresář se nachází přímo v RAM, čímž se pak pochopitelně po rebootu smaže. A mnou vytvořený swap se nachází na alokované části SD disku. Ale podle vypsaného filesystemu to aspoň mně, vyznívá jinak.
Pokud chcete swapovat, musíte si nejdříve swap připravit.
Odmountujte všechny sda1
Odstraňtě všechny mountovací body
Vytvořte swap partition příkazem:
mkswap /dev/sda1
Pokud jste odstranil i SWAP přípojný bod, nově ho vytvořte.
Restartujte router. Již by se v LuCI v přehledu mělo objevit SWAP.
Jinak by bylo asi dobré, pokud tedy používáte fstab (Přípojné body), vypnout službu automount příkazem:
/etc/init.d/mountd disable
a restartovat router.
MagRe
April 18, 2019, 9:55am
5
Díky, SWAP jsem nyní zprovoznil, vypnul jsem i ten automount a odmoutoval:
/dev/sdb1
/dev/sda1
Takže nyní se mi i dobře zobrazuje /tmp
Teď je otázkou, zda to řeší problém. To poznám až při dalším updatu.
Také nevím, jestli Vám to problém vyřeší, ale příspěvek jsem psal jako motivace pro sprovoznění SWAP. Co si čtu toto fórum, tak ve většině případů můžou za plnění /tmp databáse programů, jako např. minidlna - vytváření databáse je na špatném místě a je zapotřebí ji navést na jiné uložiště.
MagRe
April 18, 2019, 11:13am
7
Toho jsem si také všiml, hlavně u pakonu si na to stěžují. Nicméně mě plnění /tmp nevadí, důležité je, aby se v případě potřeby uvolnilo. Případně bych se tady na foru inspiroval.