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 _______________________________________________ Net-snmp-coders mailing list Net-snmp-coders@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/net-snmp-coders