Re: Configuration files are not resilient to power failure

Robert Story <[email protected]>
Newsgroups gmane.network.net-snmp.devel
Message-ID <[email protected]>
I've added a call to fsync in 5-7-patches and master.

On Mon, 15 Jan 2018 04:18:57 -0500 (EST) Josef wrote:
JR> net-snmp's configuration files are not resilient to power
JR> failure.
JR> 
JR> following a power failure event users created with
JR> net-snmp-create-v3-user are missing from /etc/snmp/snmpd.conf
JR> and that /var/lib/net-snmp/snmpd.conf is empty.
JR> 
JR> Steps to Reproduce:
JR> 
JR>   [root@rhel73 ~]# cat /etc/fstab
JR>   UUID=8c3e7419-f4b9-425a-b535-b6849a6e68bf / xfs defaults 0 0
JR>   [root@rhel73 ~]# grep
JR> testuser /etc/snmp/snmpd.conf /var/lib/net-snmp/snmpd.conf
JR> [root@rhel73 ~]# ls
JR> -l /etc/snmp/snmpd.conf /var/lib/net-snmp/snmpd.conf
JR> -rw-------. 1 root root 18891 Dec  4 22:32 /etc/snmp/snmpd.conf
JR> -rw-------. 1 root root  1073 Dec  5
JR> 00:04 /var/lib/net-snmp/snmpd.conf
JR> 
JR>   [root@rhel73 ~]# systemctl stop snmpd
JR>   [root@rhel73 ~]# /usr/bin/net-snmp-create-v3-user -A testpass
JR> testuser
JR> 
JR>   [root@rhel73 ~]# ls
JR> -l /etc/snmp/snmpd.conf /var/lib/net-snmp/snmpd.conf
JR> -rw-------. 1 root root 18877 Dec  5 00:09 /etc/snmp/snmpd.conf
JR> -rw-------. 1 root root  1112 Dec  5
JR> 00:09 /var/lib/net-snmp/snmpd.con [root@rhel73 ~]# grep
JR> testuser /etc/snmp/snmpd.conf /var/lib/net-snmp/snmpd.conf /etc/snmp/snmpd.conf:rwuser
JR> testuser /var/lib/net-snmp/snmpd.conf:createUser testuser MD5
JR> "testpass" DES
JR> 
JR>   [root@rhel73 ~]# systemctl start snmpd
JR> 
JR> Force power off and reconnect.
JR> 
JR>   [root@rhel73 ~]#  grep
JR> testuser /etc/snmp/snmpd.conf /var/lib/net-snmp/snmpd.conf
JR> [root@rhel73 ~]#  ls
JR> -l /etc/snmp/snmpd.conf /var/lib/net-snmp/snmpd.conf
JR> -rw-------. 1 root root 18861 Dec  5 00:09 /etc/snmp/snmpd.conf
JR> -rw-------. 1 root root     0 Dec  5
JR> 00:09 /var/lib/net-snmp/snmpd.conf
JR> 
JR> Actual results:
JR> 
JR>   The added user has been lost from the configuration.
JR>   The entire /var/lib/net-snmp/snmpd.conf has been lost.
JR> 
JR> Expected results:
JR> 
JR>   /etc/snmp/snmpd.conf contains the newly added user.
JR>   /var/lib/net-snmp/snmpd.conf  is not destroyed.
JR> 
JR> Additional info:
JR> 
JR>   This was observed for XFS root filesystems, it may be that
JR> the default Ext's data=ordered mode behaves differently.
JR> Running this under strace snmpd is doing a rename/rewrite of
JR> the file. But it never calls fsync, so for the XFS case the
JR> dirty buffers are still in memory when the box is powered off,
JR> only the rename and create have hit the disk.

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.