-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi,
I have a problem with my one remaining reiserfs partition on rotating
rust.
The problem I initially detected was that telling the machine to hibernate
sometimes appeared to stall, and I had to force a power off (via physical
power switch) to recover. In fact, I found out later, the kernel was
simply syncing one partition, and this operation would take half an hour,
which it is absurd.
Later I found out that it was only one partition affected, and this
partition was (is) reiserfs. Then I guessed that the slow operation was
syncing the metadata (the time stamps) of the news (nntp) spool.
Traditionally a news server touches (and use) the access timestamp each
time a post is read, affecting one file per read. With the default mount
options used nowdays this modification stays in RAM for long, many hours.
So, the cronjob that scans the news spool now also calls sync on that
filesystem, and when hibernating I call sync in advance. This improved
things, but not completely.
Thus I finally resorted to moving the news spool only to another reiserfs
partition created on an SSD disk, which usually syncs in seconds, instead
of half an hour.
So I thought, problem solved.
But later on I noticed that the sync operation prior to hibernating on the
old reiserfs partition still takes long, but only on some days - even if
nothing writes there now. This is astonishing. Look, last Monday:
Telcontar:~ # hibernate
2021-12-13 04:26:18+01:00
Checking news to send
2021-12-13 04:26:22+01:00
Syncing
rm: cannot remove '/var/lib/news/bin/cronscriptparafetchnews.enabled': No such file or directory
2021-12-13 06:06:09+01:00
synced. Now screensaver
xscreensaver-command: no screensaver is running on display :0.0
touch /var/lib/news/bin/cronscriptparafetchnews.enabled
Telcontar:~ #
An hour and a half to sync a not used partition!
(I know it is only one partition because I monitor it with gkrellm)
Hibernation script:
date --rfc-3339=seconds
echo Checking news to send
/var/lib/news/bin/cronscriptparaenviarnewspendientes
date --rfc-3339=seconds
echo Syncing
rm /var/lib/news/bin/cronscriptparafetchnews.enabled
strace -o /tmp/hibernate.strace sync
date --rfc-3339=seconds
echo "synced. Now screensaver"
xscreensaver-command -lock
sleep 3
#sudo chvt 10
#sleep 1
sudo /usr/local/sbin/beep
sleep 1
#systemctl hibernate
sudo /usr/bin/systemctl hibernate
The structure of the mount is this:
Telcontar:~ # mount | grep sdc9
/dev/sdc9 on /data/Lareiserfs type reiserfs (rw,relatime,lazytime,user_xattr,acl)
/dev/sdc9 on /usr/src type reiserfs (rw,relatime,lazytime,user_xattr,acl)
/dev/sdc9 on /home/cer/terrasync type reiserfs (rw,relatime,lazytime,user_xattr,acl)
/dev/sdc9 on /data/homedvl type reiserfs (rw,relatime,lazytime,user_xattr,acl)
/dev/sdc9 on /usr/share/flightgear type reiserfs (rw,relatime,lazytime,user_xattr,acl)
Telcontar:~ #
The first one is the actual mount, the rest are bind mounts - fstab:
LABEL=c_data_reiser /data/Lareiserfs reiserfs acl,user_xattr,barrier=flush,lazytime 1 3
/data/Lareiserfs/gamedata/flightgear /usr/share/flightgear none bind 0 0
/data/Lareiserfs/gamedata/terrasync /home/cer/terrasync none bind 0 0
/data/Lareiserfs/data_homedvl /data/homedvl none bind 0 0
/data/Lareiserfs/usr_src /usr/src none bind 0 0
Now I have added entries to my hibernate script to sync each reiserfs
bind mount separately, find out which one it is, if any.
- --
Cheers
Carlos E. R.
(from 15.2 x86_64 at Telcontar)
-----BEGIN PGP SIGNATURE-----
iHoEARECADoWIQQZEb51mJKK1KpcU/W1MxgcbY1H1QUCYbiC3Bwccm9iaW4ubGlz
dGFzQHRlbGVmb25pY2EubmV0AAoJELUzGBxtjUfVNQ0An0UB/PrQobQOFtt1bA5b
ll35Ej7FAJ9E6b3Mh88V1OcIbudlN0SwdavIhw==
=hvzD
-----END PGP SIGNATURE-----