Package: aptitude Version: 0.8.7-1 Severity: normal Dear Maintainer,
*** Reporter, please consider answering these questions, where appropriate *** * What led up to the situation? apt doesn't call fsync when writing the file extended_states - so that if the system crashes while doing updates, the file extended_states is corrupted * What exactly did you do (or not do) that was effective (or ineffective)? If you strace aptitude, you can see that it writes the file extended_states this way. There's no fsync, and therefore there's no guarantee that the file will be written when renaming it to the permanent state. 15267 open("/var/lib/apt/extended_states.plCi2E", O_RDWR|O_CREAT|O_EXCL, 0600) = 74 15267 umask(000) = 022 15267 umask(022) = 000 15267 fchmod(74, 0644) = 0 15267 fcntl(74, F_SETFD, FD_CLOEXEC) = 0 15267 write(74, "Package: libmpc2\n", 17) = 17 15267 write(74, "Architecture: amd64\n", 20) = 20 15267 write(74, "Auto-Installed: 1\n", 18) = 18 15267 write(74, "\n", 1) = 1 15267 write(74, "Package: automake1.9\n", 21) = 21 15267 write(74, "Architecture: amd64\n", 20) = 20 15267 write(74, "Auto-Installed: 1\n", 18) = 18 15267 write(74, "\n", 1) = 1 15267 write(74, "Package: automake1.10\n", 22) = 22 15267 write(74, "Architecture: amd64\n", 20) = 20 15267 write(74, "Auto-Installed: 1\n", 18) = 18 15267 write(74, "\n", 1) = 1 .... 15267 close(74) = 0 15267 rename("/var/lib/apt/extended_states.plCi2E", "/var/lib/apt/extended_states") = 0 15267 chmod("/var/lib/apt/extended_states", 0644) = 0 * What was the outcome of this action? I had my file extended_states corrupted when the system crashed while doing unattended upgrades. * What outcome did you expect instead? apt should call fsync before closing the file handle *** End of the template - remove these template lines *** -- Package-specific info: Terminal: linux $DISPLAY not set. which aptitude: /usr/bin/aptitude aptitude version information: aptitude 0.8.7 Compiler: g++ 6.3.0 20170406 Compiled against: apt version 5.0.1 NCurses version 6.0 libsigc++ version: 2.10.0 Gtk+ support disabled. Qt support disabled. Current library versions: NCurses version: ncurses 6.0.20161126 cwidget version: 0.5.17 Apt version: 5.0.1 aptitude linkage: linux-vdso.so.1 (0x00007fff917fc000) libapt-pkg.so.5.0 => /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0 (0x00007f4d8f1f1000) libncursesw.so.5 => /lib/x86_64-linux-gnu/libncursesw.so.5 (0x00007f4d8efc1000) libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007f4d8ed97000) libsigc-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libsigc-2.0.so.0 (0x00007f4d8eb90000) libcwidget.so.3 => /usr/lib/x86_64-linux-gnu/libcwidget.so.3 (0x00007f4d8e893000) libsqlite3.so.0 => /usr/lib/x86_64-linux-gnu/libsqlite3.so.0 (0x00007f4d8e58b000) libboost_iostreams.so.1.62.0 => /usr/lib/x86_64-linux-gnu/libboost_iostreams.so.1.62.0 (0x00007f4d8e373000) libboost_filesystem.so.1.62.0 => /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.62.0 (0x00007f4d8e15a000) libboost_system.so.1.62.0 => /usr/lib/x86_64-linux-gnu/libboost_system.so.1.62.0 (0x00007f4d8df56000) libxapian.so.30 => /usr/lib/x86_64-linux-gnu/libxapian.so.30 (0x00007f4d8db42000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f4d8d925000) libstdc++.so.6 => /usr/local/gcc/lib64/libstdc++.so.6 (0x00007f4d8d585000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f4d8d281000) libgcc_s.so.1 => /usr/local/gcc/lib64/libgcc_s.so.1 (0x00007f4d8d068000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f4d8ccc9000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f4d8cac5000) libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f4d8c8ae000) libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f4d8c694000) libbz2.so.1.0 => /lib/x86_64-linux-gnu/libbz2.so.1.0 (0x00007f4d8c484000) liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f4d8c25e000) liblz4.so.1 => /usr/lib/x86_64-linux-gnu/liblz4.so.1 (0x00007f4d8c04c000) librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f4d8be44000) libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007f4d8bc3f000) /lib64/ld-linux-x86-64.so.2 (0x00007f4d8fbba000) -- System Information: Debian Release: 9.5 APT prefers stable APT policy: (500, 'stable') Architecture: amd64 (x86_64) Foreign Architectures: i386, arm64, armel, armhf, mips, mips64el, ppc64el, s390x Kernel: Linux 4.4.128 (SMP w/12 CPU cores; PREEMPT) Locale: LANG=cs_CZ, LC_CTYPE=cs_CZ (charmap=ISO-8859-2), LANGUAGE=cs_CZ (charmap=ISO-8859-2) Shell: /bin/sh linked to /bin/dash Init: sysvinit (via /sbin/init) Versions of packages aptitude depends on: ii aptitude-common 0.8.7-1 ii libapt-pkg5.0 1.4.8 ii libboost-filesystem1.62.0 1.62.0+dfsg-4 ii libboost-iostreams1.62.0 1.62.0+dfsg-4 ii libboost-system1.62.0 1.62.0+dfsg-4 ii libc6 2.24-11+deb9u3 ii libcwidget3v5 0.5.17-4+b1 ii libgcc1 1:6.3.0-18+deb9u1 ii libncursesw5 6.0+20161126-1+deb9u2 ii libsigc++-2.0-0v5 2.10.0-1 ii libsqlite3-0 3.16.2-5+deb9u1 ii libstdc++6 6.3.0-18+deb9u1 ii libtinfo5 6.0+20161126-1+deb9u2 ii libxapian30 1.4.3-2+deb9u1 Versions of packages aptitude recommends: pn libparse-debianchangelog-perl <none> ii sensible-utils 0.0.9+deb9u1 Versions of packages aptitude suggests: pn apt-xapian-index <none> pn aptitude-doc-en | aptitude-doc <none> pn debtags <none> pn tasksel <none> -- no debconf information