Bug 885957 - Installation on EDEV device fails - anaconda (upstream only)
Summary: Installation on EDEV device fails - anaconda (upstream only)
Keywords:
Status: CLOSED EOL
Alias: None
Product: Fedora
Classification: Fedora
Component: anaconda
Version: 19
Hardware: s390x
OS: All
unspecified
high
Target Milestone: ---
Assignee: Samantha N. Bueno
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
: 708145 (view as bug list)
Depends On: trainframe
Blocks: FBAinFedora
TreeView+ depends on / blocked
 
Reported: 2012-12-11 07:10 UTC by IBM Bug Proxy
Modified: 2018-12-01 18:35 UTC (History)
9 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2015-02-18 11:03:58 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
Anaconda-18.29-1-support-for-edev-device.patch (5.09 KB, text/plain)
2012-12-11 07:12 UTC, IBM Bug Proxy
no flags Details
potential fix (243.50 KB, application/x-gzip)
2013-05-26 05:31 UTC, Samantha N. Bueno
no flags Details
updates.img w/all patches (165.83 KB, application/x-gzip)
2013-05-28 19:53 UTC, Samantha N. Bueno
no flags Details
new updates (165.84 KB, application/x-gzip)
2013-05-29 14:17 UTC, Samantha N. Bueno
no flags Details
blivet patch for installation support of EDEV device. (4.44 KB, text/plain)
2013-10-24 09:21 UTC, IBM Bug Proxy
no flags Details
parted patch for fixing FBA realted initialization problem and partition re-read issue. (3.24 KB, text/plain)
2013-10-24 09:21 UTC, IBM Bug Proxy
no flags Details
blivet patch for installation support of EDEV device. (4.02 KB, text/plain)
2013-10-31 10:03 UTC, IBM Bug Proxy
no flags Details
parted patch for fixing FBA realted initialization problem and partition re-read issue. (2.14 KB, text/plain)
2013-10-31 10:04 UTC, IBM Bug Proxy
no flags Details


Links
System ID Private Priority Status Summary Last Updated
IBM Linux Technology Center 87247 0 None None None 2019-07-01 16:51:29 UTC

Description IBM Bug Proxy 2012-12-11 07:10:49 UTC
Problem Description
-----------------------------
Installation fails on EDEV (Emulated FBA) device
 
uname output
---------------------
3.3.0-0.20.el7
 
Machine Type = 2817 
 

---Steps to Reproduce---
  1. Apply the parted patches from LTC bug # 84317 and 84318

Bug 84318 - RH707032- Installation on EAV DASD failed
Bug 84317 - RH707027 - RFE: Installation on Z/VM EDEV failed during format

2. Try installing on EDEV device

3. Installation fails because of Anaconda changes from RHEL6 to RHEL7, particularly the disk initiation code.
 
Install method: nfs/http
 
Install disk info: Disk Type is: Emulated FBA device

== Comment: #3 - NAGESWARA R. SASTRY <nasastry.com> - 2012-12-07 05:43:56 ==

1. What is EDEV device:
Fixed Block Access (FBA) DASDs are mainframe-specific disk devices
which are layed out as a sequence of 512-byte sectors. In contrast
to ECKD DASDs, these disks do not require formatting and resemble
the LBA layout of non-mainframe disks. Despite this resemblance,
the Linux kernel applies special handling during partition detection
for FBA DASDs, resulting in a single, immutable partition being
reported.

While actual FBA DASD hardware is no longer available, the z/VM
hypervisor can simulate FBA DASD disks, backed by either ECKD or
SCSI devices.


2. How does installation fail
Anaconda knows about how to handle DASD devices but not the FBA devices.
So the installation fails at partitioning the device.

3. Why does it fail
Because of the device initialization code changes happened in between 
Anaconda-13.21 - Anaconda-18.19


4. How does this patch solve this problem.
The attached patch 'Anaconda-18.29-1-support-for-edev-device.patch',
identifies the implicit partitions with the help of 'parted, pyparted'
changes. This proper identification of implicit partitions will help
in successful installation on that device.

Comment 1 IBM Bug Proxy 2012-12-11 07:12:29 UTC
Created attachment 661297 [details]
Anaconda-18.29-1-support-for-edev-device.patch

Comment 2 David Cantrell 2013-01-30 20:41:55 UTC
*** Bug 708145 has been marked as a duplicate of this bug. ***

Comment 3 IBM Bug Proxy 2013-03-15 12:00:57 UTC
.
Bug #885957 is where the action is for this issue now, marking it as a dupe.

*** This bug has been marked as a duplicate of bug 885957 ***

Comment 4 IBM Bug Proxy 2013-03-15 12:02:02 UTC
------- Comment From brueckner.com 2013-03-15 11:51 EDT-------
*** Bug 87794 has been marked as a duplicate of this bug. ***

Comment 5 Fedora End Of Life 2013-04-03 19:44:01 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 19 development cycle.
Changing version to '19'.

(As we did not run this process for some time, it could affect also pre-Fedora 19 development
cycle bugs. We are very sorry. It will help us with cleanup during Fedora 19 End Of Life. Thank you.)

More information and reason for this action is here:
https://fedoraproject.org/wiki/BugZappers/HouseKeeping/Fedora19

Comment 6 Samantha N. Bueno 2013-05-26 05:31:24 UTC
Created attachment 753241 [details]
potential fix

Hi Georg,

I never had much luck testing this myself and would really appreciate you testing this out and verifying EDEV installations now work before I push the patches to f19-branch.

The latest F19 compose for s390x can be found here:
http://s390.koji.fedoraproject.org/test/20130520/

I'm attaching the updates.img with patches.

Comment 7 IBM Bug Proxy 2013-05-27 08:00:51 UTC
------- Comment From mgrf.com 2013-05-27 07:50 EDT-------
Nageswara,
the fixes are now (completely) prepared for F19
-> please verify from link in previous #  and provide test feedback that Semantha can check them in for F19

Thanks in advance

Comment 8 IBM Bug Proxy 2013-05-28 10:41:29 UTC
------- Comment From mgrf.com 2013-05-28 10:38 EDT-------
(In reply to comment #11)
> Created attachment 79883 [details]    potential fix
>
> -- Comment on attachment From sbueno 2013-05-26 01:31:24
> EDT-------
>
> Hi Georg,
>
> I never had much luck testing this myself and would really appreciate you
> testing this out and verifying EDEV installations now work before I push the
> patches to f19-branch.
>
> The latest F19 compose for s390x can be found here:
> http://s390.koji.fedoraproject.org/test/20130520/
>
> I'm attaching the updates.img with patches.

Samantha,
the feedback from the tests ...

The F19 compose on above link does not contain all patches for EDEV, EAV and no install on DASD is possible - without the compose install is possible

Summary for F19 compose:
python-blivet earlier anaconda
- only few chunks of the patch is available in 'updates.img'
pyparted-3.9-2.fc19.src.rpm
- does not contain the patch (pyparted-3.8-add-ped-disk-new.patch) provided by us. And the same is missing in 'updates.img' too.

parted-3.1-12.fc19.src.rpm
- contains all the patches provided by us.

Detail:

From the Anaconda patch the following chunks/parts are missing in the updates.img.
Compared the patch provided by us and updates.img's - 'blivet'[1] code.

[1] Earlier in Fedora18 the following code was part of 'Anaconda rpm' but now in Fedora19 this portion of the code is in a package named 'python-blivet-0.14-1.fc19'.

--- a/pyanaconda/storage/__init__.py
+++ b/pyanaconda/storage/__init__.py
@@ -841,8 +841,10 @@ class Storage(object):
# disk. Still, we need it out of the devicetree.
self.devicetree._removeDevice(part, moddisk=False)
-        if disk.partitioned and disk.format.partitions:
-            raise ValueError("cannot initialize a disk that has partitions")
+        # Do not remove partition from LDL formatted
+        if not disk.format.isLDL():
+            if disk.partitioned and disk.format.partitions:
+                raise ValueError("cannot initialize a disk that has partitions")
# remove existing formatting from the disk
destroy_action = ActionDestroyFormat(disk)

--- a/pyanaconda/storage/devices.py
+++ b/pyanaconda/storage/devices.py
@@ -1453,14 +1453,17 @@ class PartitionDevice(StorageDevice):
def _create(self):
""" Create the device. """
log_method_call(self, self.name, status=self.status)
-        self.disk.format.addPartition(self.partedPartition)
-        try:
-            self.disk.format.commit()
-        except DiskLabelCommitError:
-            part = self.disk.format.partedDisk.getPartitionByPath(self.path)
-            self.disk.format.removePartition(part)
-            raise
+        # Do not create partition on LDL formatted
+        if not self.disk.format.isLDL():
+            self.disk.format.addPartition(self.partedPartition)
+
+            try:
+                self.disk.format.commit()
+            except DiskLabelCommitError:
+                part = self.disk.format.partedDisk.getPartitionByPath(self.path)
+                self.disk.format.removePartition(part)
+                raise
def _postCreate(self):
if self.isExtended:

--- a/pyanaconda/storage/formats/disklabel.py
+++ b/pyanaconda/storage/formats/disklabel.py
...
+
+    def isLDL(self):
+       """ Return True for LDL formatted disk. """
+       log_method_call(self, device=self.device)
+       if (self._labelType == "dasd" and self.partedDisk.maxPrimaryPartitionCount == 1):
+           return True
+       else:
+           return False
+
...
+        elif self.isLDL():
+            return 1
...

Comment 9 IBM Bug Proxy 2013-05-28 12:01:05 UTC
------- Comment From mgrf.com 2013-05-28 11:54 EDT-------
Regarding fixes in pyparted

I just recognize that should be fixed with   pyparted-3.10-1.fc19
For details see this BZ in modified state
87249 -  886033 - [pyparted] installation on EDEV device fails

Why is pyparted 3.10 not yet in F19 while the BZ is in state modified?

Comment 10 Dan Horák 2013-05-28 13:40:25 UTC
(In reply to IBM Bug Proxy from comment #9)
> ------- Comment From mgrf.com 2013-05-28 11:54 EDT-------
> Regarding fixes in pyparted
> 
> I just recognize that should be fixed with   pyparted-3.10-1.fc19
> For details see this BZ in modified state
> 87249 -  886033 - [pyparted] installation on EDEV device fails
> 
> Why is pyparted 3.10 not yet in F19 while the BZ is in state modified?

Seems David forgot to file an update, he is doing it now. I will include the new package in the next compose manually.

Comment 11 Samantha N. Bueno 2013-05-28 19:53:37 UTC
Created attachment 754059 [details]
updates.img w/all patches

(In reply to IBM Bug Proxy from comment #9)
> ------- Comment From mgrf.com 2013-05-28 11:54 EDT-------
> Regarding fixes in pyparted
> 
> I just recognize that should be fixed with   pyparted-3.10-1.fc19
> For details see this BZ in modified state
> 87249 -  886033 - [pyparted] installation on EDEV device fails
> 
> Why is pyparted 3.10 not yet in F19 while the BZ is in state modified?

Sorry about that--it was intended to be updated when the state changed, but it was forgotten. It looks like the new pyparted was submitted today though.

Also, I apologize if this is old/common knowledge and am repeating what everyone already knows: python-blivet contains all storage-related code and was split out of anaconda post-F18.

The reason some of the code from the patches provided early on in this bug do not show up in anaconda is because the patches now apply to the piece(s) of anaconda code that was split out into the python-blivet package.

Also, I had to do some refactoring of the patches to apply them cleanly to python-blivet. I did my best to maintain the original integrity of the patches though.


That said, apologies for not looking over the patches again more closely--when I originally worked on this against anaconda-13.21.x, there was already a function in anaconda to check if something was LDL formatted, so I relied on that instead of defining it again (like in the patches). However, I neglected to notice (in a vastly different anaconda-19.28) that this function no longer existed....oops. That has been remedied now.

So, the updates.img I'm attaching again should now be complete.

Comment 12 IBM Bug Proxy 2013-05-29 05:42:14 UTC
------- Comment From nasastry.com 2013-05-29 05:31 EDT-------
> Created attachment 79939 [details]
> updates.img w/all patches
I can see only blivet patches in the updates.img. So assuming all patches means all Anaconda/blivet patches.

> Also, I had to do some refactoring of the patches to apply them cleanly to
> python-blivet. I did my best to maintain the original integrity of the
> patches though.
Thanks for the manual work.

> So, the updates.img I'm attaching again should now be complete.
Still one more chunk is missing

Missing chunk from Anaconda patch submitted by IBM.
...
return 1
elif self.labelType == "sun":
return 3
+        elif self.isLDL():
+            return 1
else:
return 0
...

The above chunk should be applied to the file named "formats/disklabel.py"
at following function

458     def magicPartitionNumber(self):
459         """ Number of disklabel-type-specific special partition. """
460         if self.labelType == "mac":
461             return 1
462         elif self.labelType == "sun":
463             return 3
464         else:
465             return 0

At this moment I can not test the updates.img due to
1. the above missing code chunk
2. pyparted up to date package is not yet available to us

Testing can be done if the following is available in updates.img
Option 1:
1. addition of the missing code chunk
2. create updates.img with pyparted files also

Option 2:
1. addition of the missing code chunk to updates.img
and will wait for the availability of pyparted-3.10-1.fc19 in the repository.
Option 2 might take couple of days based on availability of the pyparted package.

Thanks!!

Comment 13 Samantha N. Bueno 2013-05-29 14:17:54 UTC
Created attachment 754418 [details]
new updates

All right, trying again. :)

Comment 14 Samantha N. Bueno 2013-05-29 14:44:18 UTC
(In reply to IBM Bug Proxy from comment #12)
> ------- Comment From nasastry.com 2013-05-29 05:31 EDT-------
> > Created attachment 79939 [details]
> > updates.img w/all patches
> I can see only blivet patches in the updates.img. So assuming all patches
> means all Anaconda/blivet patches.

I meant to respond to this when I posted the updates image in comment 13--yep, the patches all affected the python-blivet package. For reference, the patched files in question are:
blivet/__init__.py
blivet/devices.py
blivet/formats/disklabel.py
blivet/partitioning.py

> Missing chunk from Anaconda patch submitted by IBM.
> ...

Sigh, sorry again. Should be in the updates.img above though.

Dan Horak mentioned in our meeting that he made a compose yesterday:
http://s390.koji.fedoraproject.org/test/20130528/

That should include the latest pyparted. So, we are ready to test now.

Comment 15 IBM Bug Proxy 2013-06-04 06:03:04 UTC
------- Comment From mgrf.com 2013-06-04 05:51 EDT-------
.. and test feedback based on 5-28 compose/build

1)  EAV installation went well

2) EDEV  install hits two known problems
2a)   BZ 87306 - RH891267
Free space is not matching the expectation for implicit partition disks
=> requested input is in work now - BZ will be updated

2b) zIPL 1.20 as included per s390tools/utils 1.20 requires a
fix for EDEV install, that is upstream with s390tools 1.21
=> need to check out the related BZ - will post here soon

Comment 16 IBM Bug Proxy 2013-06-04 09:10:51 UTC
------- Comment From mgrf.com 2013-06-04 09:02 EDT-------
Just for the record:
The test scenarios are the following
Each install to be tested with "Standard partition" and " LVM"

Installs:
EAV - meta-data cleared disk
EDEV - meta-data cleared disk
EAV - already installed disk
EDEV - already installed disk

Comment 17 Samantha N. Bueno 2013-06-05 12:50:08 UTC
Great--thanks a lot for testing, Georg. So, it appears that installation is fine, minus the two noted EDEV issues, which appear not directly related to the patches in the updates.img. I'm going to go ahead and post the blivet patches then.

Comment 18 Samantha N. Bueno 2013-06-05 17:12:05 UTC
Hi Georg,

The patches have received some feedback that I believe should be taken into consideration. Perhaps you and/or Nageswara can take a look and make some amendments?

https://lists.fedorahosted.org/pipermail/anaconda-patches/2013-June/004428.html

Comment 19 IBM Bug Proxy 2013-06-10 10:51:32 UTC
------- Comment From nasastry.com 2013-06-10 10:40 EDT-------
(In reply to comment #23)
> The patches have received some feedback that I believe should be taken into
> consideration. Perhaps you and/or Nageswara can take a look and make some
> amendments?

Please find reply at https://lists.fedorahosted.org/pipermail/anaconda-patches/2013-June/004480.html

Thanks!!

Comment 20 IBM Bug Proxy 2013-06-21 08:59:31 UTC
------- Comment From nasastry.com 2013-06-21 08:30 EDT-------
(In reply to comment #24)
> Please find reply at
> https://lists.fedorahosted.org/pipermail/anaconda-patches/2013-June/004480.
> html

Hello RedHat,
Any updates??

Thanks!!

Comment 21 IBM Bug Proxy 2013-10-24 09:21:32 UTC
Created attachment 815711 [details]
blivet patch for installation support of EDEV device.


------- Comment (attachment only) From nasastry.com 2013-10-24 09:19 EDT-------

Comment 22 IBM Bug Proxy 2013-10-24 09:21:54 UTC
Created attachment 815712 [details]
parted patch for fixing FBA realted initialization problem and partition re-read issue.


------- Comment (attachment only) From nasastry.com 2013-10-24 09:19 EDT-------

Comment 23 IBM Bug Proxy 2013-10-24 09:31:07 UTC
------- Comment From nasastry.com 2013-10-24 09:25 EDT-------
The attached patches namely
blivet-0.17-support-for-edev-device.patch
parted-3.1-fba-initialization-partition-reread.patch

Tested with Fedora19 with EDEV device and EAV device.
Test scenarios covered are,

The following scenarios done with LVM and Standard partition
1. Fresh EDEV device
2. Installed EDEV device
3. Fresh EAV device
4. Installed EAV device

5. EDEV, EAV disks together with LVM

Patches will be posted to the respective community mailing lists.

Thanks!!

Comment 24 IBM Bug Proxy 2013-10-31 10:03:20 UTC
Created attachment 817794 [details]
blivet patch for installation support of EDEV device.


------- Comment on attachment From nasastry.com 2013-10-31 09:53 EDT-------


After doing the parted related changes the following code chunk is not required so removed in this version of the patch.

@@ -291,7 +305,10 @@ class DiskLabel(DeviceFormat):
         try:
             self.partedDisk.commit()
         except parted.DiskException as msg:
-            raise DiskLabelCommitError(msg)
+            if self.isLDL and len(self.partitions) == 1:
+                pass
+            else:
+                raise DiskLabelCommitError(msg)
         else:
             self.updateOrigPartedDisk()
             udev_settle()

Comment 25 IBM Bug Proxy 2013-10-31 10:04:48 UTC
Created attachment 817797 [details]
parted patch for fixing FBA realted initialization problem and partition re-read issue.


------- Comment on attachment From nasastry.com 2013-10-31 09:56 EDT-------


After discussion in the mailing list, fixed the problem in the right place.

Comment 26 Fedora End Of Life 2015-01-09 22:26:16 UTC
This message is a notice that Fedora 19 is now at end of life. Fedora 
has stopped maintaining and issuing updates for Fedora 19. It is 
Fedora's policy to close all bug reports from releases that are no 
longer maintained. Approximately 4 (four) weeks from now this bug will
be closed as EOL if it remains open with a Fedora 'version' of '19'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora 19 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 27 Fedora End Of Life 2015-02-18 11:03:58 UTC
Fedora 19 changed to end-of-life (EOL) status on 2015-01-06. Fedora 19 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version. If you
are unable to reopen this bug, please file a new report against the
current release. If you experience problems, please add a comment to this
bug.

Thank you for reporting this bug and we are sorry it could not be fixed.


Note You need to log in before you can comment on or make changes to this bug.