A 2025 NewYear present: make dpkg --force-unsafe-io the default?
Hi!
The no-unsafe-io workaround in dpkg was needed for 2005-era ext2fs
issues, where a power-cut in the middle of filesystem metadata
operation (which dpkg does a lot) might result in in unconsistent
filesystem state. This workaround slowed down dpkg operations
quite significantly (and has been criticised due to that a lot,
the difference is really significant).
The workaround is to issue fsync() after almost every filesystem
operation, instead of after each transaction as dpkg did before.
Once again: dpkg has always been doing "safe io", the workaround
was needed for ext2fs only, - it was the filesystem which was
broken, not dpkg.
Today, doing an fsync() really hurts, - with SSDs/flash it reduces
the lifetime of the storage, for many modern filesystems it is a
costly operation which bloats the metadata tree significantly,
resulting in all further operations becomes inefficient.
How about turning this option - force-unsafe-io - to on by default
in 2025? That would be a great present for 2025 New Year! :)
Thanks,
/mjt
Reply to: