| Summary: | Failure to inform kernel about partition table changes when "Use entire disk" is selected in installer | ||
|---|---|---|---|
| Product: | Mageia | Reporter: | Martin Whitaker <mageia> |
| Component: | RPM Packages | Assignee: | Mageia tools maintainers <mageiatools> |
| Status: | RESOLVED FIXED | QA Contact: | |
| Severity: | major | ||
| Priority: | release_blocker | CC: | thierry.vignaud |
| Version: | Cauldron | Keywords: | PATCH |
| Target Milestone: | --- | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Source RPM: | draklive-install-2.10-1.mga6.src.rpm, drakxtools-17.75-1.mga6.src.rpm | CVE: | |
| Status comment: | Patches pushed, to be tested in drakx 17.77 or later and draklive-install 2.11 or later | ||
| Attachments: |
draklive-install patch to make partitioning more robust
Patch to drakxtools to make DOS partitioning more robust Patch to improve speed and behaviour of proc_partitions::compare() |
||
Created attachment 9172 [details]
Patch to drakxtools to make DOS partitioning more robust
This modifies dos::need_to_tell_kernel() to use proc_partitions::compare() to check that the kernel really has been informed about the partition table changes, and to indicate that we have to do it ourselves if not. This should make the behaviour entirely safe. Having said that, proc_partitions::compare() is not very rigorous, and maybe should be enhanced to check the partition sizes as well as the number of partitions.
Created attachment 9173 [details]
Patch to improve speed and behaviour of proc_partitions::compare()
proc_partitions::compare() calls proc_partitions::read(), which as well as reading information from /proc/partitions also probes the disk to determine the file system type in each partition. This not only slows down proc_partitions::compare(), it also generates unwanted udev events, which appear to reduce the chance of udevd calling the BLKRRPART ioctl. As the compare function doesn't use the file system type, we can skip probing the disk in this case.
I think that 2nd patch is starting to make thing a little bit complex, that we try too hard... But if your testing shows that it improves, just go... CC:
(none) =>
thierry.vignaud
Rémi Verschelde
2017-04-04 10:38:41 CEST
Status comment:
(none) =>
Approved patchset, needs to be pushed to git and packaged
Rémi Verschelde
2017-04-04 20:08:13 CEST
Status comment:
Approved patchset, needs to be pushed to git and packaged =>
Patches pushed, to be tested in drakx 17.77 or later
Rémi Verschelde
2017-04-04 20:09:32 CEST
Status comment:
Patches pushed, to be tested in drakx 17.77 or later =>
Patches pushed, to be tested in drakx 17.77 or later and draklive-install 2.11 or later commit cad33aa626459fc8b210ee7d38035eb5373ddc0f
Author: Rémi Verschelde <rverschelde@...>
Date: Tue Apr 4 20:10:56 2017 +0200
Document previous commit for mga#20619
---
Commit Link:
http://gitweb.mageia.org/software/draklive-install/commit/?id=cad33aa626459fc8b210ee7d38035eb5373ddc0f
Closing Status:
NEW =>
RESOLVED |
Created attachment 9171 [details] draklive-install patch to make partitioning more robust There is an unidentified condition that prevents udevd calling the BLKRRPART ioctl after a partition table is written. It looks like either the kernel or udevd drops device change events if they are too closely spaced in time. This has only been observed when selecting the "Use entire disk" partitioning solution. Adding a 'udevadm settle' at an appropriate point in draklive-install appears to fix this (see accompanying patch), but it may be just the extra delay that is fixing the problem, so this is not necessarily 100% robust.