mbox series

[SRU,E,0/1] Disable ECKD Thin Provisioning to prevent data loss (LP: 1860535)

Message ID 1580148371-16643-1-git-send-email-frank.heimes@canonical.com
Headers show
Series Disable ECKD Thin Provisioning to prevent data loss (LP: 1860535) | expand

Message

Frank Heimes Jan. 27, 2020, 6:06 p.m. UTC
Buglink: https://bugs.launchpad.net/bugs/1860535

SRU Justification:

[Impact]

* A severe problem with 'thin provisioning ECKD volumes', introduced with 19.10's kernel 5.3, was identified.

* For enhanced space efficient (ese) volumes, errors may occur when accessing not formatted tracks.

* In such a case the driver either formats the track on the fly for write requests or returns zero data for read requests.

* But if a write request spans multiple tracks, the indication of an unformatted track can be in wc applied to all tracks.

* Hence tracks containing data will be handled as empty tracks, resulting in zero data being returned on read, or overwriting
existing data with zero on write.

[Fix]

* Backport: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1860535/+attachment/5323313/+files/0001-s390-dasd-disable-ese-support-due-to-possible-data-c.patch

[Test Case]

* An s390x LPAR with Eoan / kernel 5.3 and at least one 3390 DASD (ECKD) disk is needed ('discard' enabled, which is default).

* Writing arbitrary files (but with known content, e.g. all '1's) to fill the disk up to a certain level

* Since all 3390 DASDs (mod-3, 9, 27 or 54 ...) have 56,664 bytes per track, writing a file (again with simple but known content) with a size of a multiple of 56,664 bytes on a thin provisioned ECKD DASD device should provoke the error situation.

* Check the files for any modifications (partially filled with '0', cut/truncated, deleted/zero length).

[Regression Potential] 

* The regression potential is moderate since this is purely s390x specific,

* limited to thin provisioned DASD disks on Eoan / kernel 5.3

* and just disables the broken feature and reverts things back to a DASD fuctionality that is known to work.

[Other Info]

* For 19.10 / Eoan no real fix will be provided, but a patch for disabling this feature completely (this bug/patch).

* The broken functionality that got introduced in Eoan, got already partially removed due to problems on z/VM.

* For 20.04 / Focal a proper fix is in the works that will be made available as backport to Focal's kernel 5.4.

Stefan Haberland (1):
  s390/dasd: disable ese support due to possible data corruption

 drivers/s390/block/dasd_eckd.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

Comments

Khalid Elmously Jan. 27, 2020, 9:38 p.m. UTC | #1
On 2020-01-27 19:06:10 , frank.heimes@canonical.com wrote:
> Buglink: https://bugs.launchpad.net/bugs/1860535
> 
> SRU Justification:
> 
> [Impact]
> 
> * A severe problem with 'thin provisioning ECKD volumes', introduced with 19.10's kernel 5.3, was identified.
> 
> * For enhanced space efficient (ese) volumes, errors may occur when accessing not formatted tracks.
> 
> * In such a case the driver either formats the track on the fly for write requests or returns zero data for read requests.
> 
> * But if a write request spans multiple tracks, the indication of an unformatted track can be in wc applied to all tracks.
> 
> * Hence tracks containing data will be handled as empty tracks, resulting in zero data being returned on read, or overwriting
> existing data with zero on write.
> 
> [Fix]
> 
> * Backport: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1860535/+attachment/5323313/+files/0001-s390-dasd-disable-ese-support-due-to-possible-data-c.patch
> 
> [Test Case]
> 
> * An s390x LPAR with Eoan / kernel 5.3 and at least one 3390 DASD (ECKD) disk is needed ('discard' enabled, which is default).
> 
> * Writing arbitrary files (but with known content, e.g. all '1's) to fill the disk up to a certain level
> 
> * Since all 3390 DASDs (mod-3, 9, 27 or 54 ...) have 56,664 bytes per track, writing a file (again with simple but known content) with a size of a multiple of 56,664 bytes on a thin provisioned ECKD DASD device should provoke the error situation.
> 
> * Check the files for any modifications (partially filled with '0', cut/truncated, deleted/zero length).
> 
> [Regression Potential] 
> 
> * The regression potential is moderate since this is purely s390x specific,
> 
> * limited to thin provisioned DASD disks on Eoan / kernel 5.3
> 
> * and just disables the broken feature and reverts things back to a DASD fuctionality that is known to work.
> 
> [Other Info]
> 
> * For 19.10 / Eoan no real fix will be provided, but a patch for disabling this feature completely (this bug/patch).
> 
> * The broken functionality that got introduced in Eoan, got already partially removed due to problems on z/VM.
> 
> * For 20.04 / Focal a proper fix is in the works that will be made available as backport to Focal's kernel 5.4.
> 
> Stefan Haberland (1):
>   s390/dasd: disable ese support due to possible data corruption
> 
>  drivers/s390/block/dasd_eckd.c | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
> 

Acked-by: Khalid Elmously <khalid.elmously@canonical.com>
Marcelo Henrique Cerri Jan. 28, 2020, 6:21 p.m. UTC | #2
Acked-by: Marcelo Henrique Cerri <marcelo.cerri@canonical.com>
Khalid Elmously Jan. 28, 2020, 6:30 p.m. UTC | #3
On 2020-01-27 19:06:10 , frank.heimes@canonical.com wrote:
> Buglink: https://bugs.launchpad.net/bugs/1860535
> 
> SRU Justification:
> 
> [Impact]
> 
> * A severe problem with 'thin provisioning ECKD volumes', introduced with 19.10's kernel 5.3, was identified.
> 
> * For enhanced space efficient (ese) volumes, errors may occur when accessing not formatted tracks.
> 
> * In such a case the driver either formats the track on the fly for write requests or returns zero data for read requests.
> 
> * But if a write request spans multiple tracks, the indication of an unformatted track can be in wc applied to all tracks.
> 
> * Hence tracks containing data will be handled as empty tracks, resulting in zero data being returned on read, or overwriting
> existing data with zero on write.
> 
> [Fix]
> 
> * Backport: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1860535/+attachment/5323313/+files/0001-s390-dasd-disable-ese-support-due-to-possible-data-c.patch
> 
> [Test Case]
> 
> * An s390x LPAR with Eoan / kernel 5.3 and at least one 3390 DASD (ECKD) disk is needed ('discard' enabled, which is default).
> 
> * Writing arbitrary files (but with known content, e.g. all '1's) to fill the disk up to a certain level
> 
> * Since all 3390 DASDs (mod-3, 9, 27 or 54 ...) have 56,664 bytes per track, writing a file (again with simple but known content) with a size of a multiple of 56,664 bytes on a thin provisioned ECKD DASD device should provoke the error situation.
> 
> * Check the files for any modifications (partially filled with '0', cut/truncated, deleted/zero length).
> 
> [Regression Potential] 
> 
> * The regression potential is moderate since this is purely s390x specific,
> 
> * limited to thin provisioned DASD disks on Eoan / kernel 5.3
> 
> * and just disables the broken feature and reverts things back to a DASD fuctionality that is known to work.
> 
> [Other Info]
> 
> * For 19.10 / Eoan no real fix will be provided, but a patch for disabling this feature completely (this bug/patch).
> 
> * The broken functionality that got introduced in Eoan, got already partially removed due to problems on z/VM.
> 
> * For 20.04 / Focal a proper fix is in the works that will be made available as backport to Focal's kernel 5.4.
> 
> Stefan Haberland (1):
>   s390/dasd: disable ese support due to possible data corruption
> 
>  drivers/s390/block/dasd_eckd.c | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
> 
> -- 
> 2.7.4
> 
> 
> -- 
> kernel-team mailing list
> kernel-team@lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team