What | Removed | Added |
---|---|---|
CC | fbui@suse.com | |
Flags | needinfo?(arvidjaar@gmail.com) |
(In reply to Andrei Borzenkov from comment #1) Thanks a lot Andrei for your analysis which is correct I think. After looking at the code there's indeed nothing that makes sure that all pending jobs are finished before switching to the new rootfs. And as you said, when switching to the new rootfs, the current state of systemd is serialized and deserialized once the switch happens. And I think during this transition, all the pending jobs are simply forgotten. initrd-udevadm-cleanup-db.service gives simply enough time for the transaction to completely finish, but as you said, this is just a side effect and even if this service was incorrectly removed and will be restored during the next update (see bug #976766) which should address this a separate issue. Your fix looks to work but there's also the "--no-block" option which is used in initrd-cleanup.service when isolating initrd-switch-root.target that might look suspicious since it prevents systemd to wait for the isolation of the target to fully complete before starting initrd-switch-root.service. I think we should discuss this with upstream. Maybe you should submit your fix through a pull-request to start a discussion on this or open an issue via github. WDYT ?