root=UUID in the IBP breaks booting in Debian

Bug #1552346 reported by Thomas Goirand
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Fuel for OpenStack
Fix Committed
High
Mikhail Zhnichkov
Mitaka
Invalid
High
Thomas Goirand

Bug Description

The image based provisioning is wrongly creating the grub entries with twice root= kernel command line parameter, breaking the boot altogether (the boot goes to the busybox prompt). For the image to work, I had to patch this out:

--- fuel-agent-7.0+2016.01.29.git.99dc8a2be7+dfsg1.orig/fuel_agent/manager.py
+++ fuel-agent-7.0+2016.01.29.git.99dc8a2be7+dfsg1/fuel_agent/manager.py
@@ -677,7 +677,8 @@ class Manager(object):
         install_devices = [d.name for d in self.driver.partition_scheme.parteds
                            if d.install_bootloader]

- grub.append_kernel_params('root=UUID=%s ' % mount2uuid['/'])
+# Zigo: This failed in Debian... :/
+# grub.append_kernel_params('root=UUID=%s ' % mount2uuid['/'])

         kernel = grub.kernel_name or gu.guess_kernel(chroot=chroot,
                                                      regexp=grub.kernel_regexp)

tags: added: area-python
Changed in fuel:
importance: Undecided → High
assignee: nobody → Fuel Python Team (fuel-python)
milestone: none → 9.0
status: New → Confirmed
Dmitry Pyzhov (dpyzhov)
tags: added: feature-image-based
Revision history for this message
Dmitry Pyzhov (dpyzhov) wrote :

Doesn't break existing use cases. Marking as a tech debt.

tags: added: tech-debt
Revision history for this message
Thomas Goirand (thomas-goirand) wrote :

Dmitry, it *DOES* break my Debian port. That's a use case which exists right now.

Ok, I'm working alone on this. That's fine, I understand everyone is busy. Though I just hope I'm not working AGAINST everyone, and that I'll get a little bit of support and consideration when I am opening bugs. Your multiple "Don't break existing use cases" reply are very demotivating for me. I hope I'm not filling bugs for nothing. Thanks.

tags: added: low-hanging-fruit
Revision history for this message
Anil Shashikumar Belur (askb23) wrote :

Hi, I would like to help with fixing this issue.

Changed in fuel:
assignee: Fuel Python Team (fuel-python) → Anil Shashikumar Belur (askb23)
Revision history for this message
Anil Shashikumar Belur (askb23) wrote :

> The image based provisioning is wrongly creating the grub entries with twice root= kernel command line parameter, breaking
> the boot altogether (the boot goes to the busybox prompt).

Hi Thomas,

Would you be able to provide more information on reproducing (actual steps) the issue along with the error messages ? As you have mentioned that issue occurs on debian, could please provide the detailed version.

Thanks.

Revision history for this message
Anil Shashikumar Belur (askb23) wrote :

Hi, From the information provided, you confirmed that this issue is seen on Debian 8 (Jessie) and mentioned that - "debian friendly" grub.conf is one with a *single* root=, not *twice*.

I did a comparison between ubuntu server grub2 and debian8 menuentry, but unclear of exact lines being referred, as there are relevant tunables in `/etc/default/grub`, where debian adds `root=uuid=` to every entry by default. It may be worth checking if `GRUB_DISABLE_LINUX_UUID=true` is enabled (or uncommented) in `/etc/default/grub`, and if its uncommented then it does not allow GRUB to pass "root=UUID=xxx" parameter to linux.

Additionally, could you please share the contents of the `/etc/defaul/grub` and the grub2 (`/boot/grub/grub2.con`) menuentry relevant to the issue in question (from the Debian 8 node running fuel). This would be useful in understanding the reason for the difference in behaviour.

Thanks

Revision history for this message
Alexander Gordeev (a-gordeev) wrote :

Hi Tomas,

this bug report lacks of information required to fix/reproduce it properly. Please attach the actual contents of grub configs as were requested by Anil. Therefore, Moving to Incomplete, assigned back to the reporter.

Changed in fuel:
status: Confirmed → Incomplete
assignee: Anil Shashikumar Belur (askb23) → Thomas Goirand (thomas-goirand)
Revision history for this message
Alexander Gordeev (a-gordeev) wrote :

s/Tomas/Thomas/

(sorry about typo)

Changed in fuel:
milestone: 9.0 → 10.0
Revision history for this message
Dmitry Pyzhov (dpyzhov) wrote :

Technical debt, doesn't affect real users. Removing from Mitaka release.

Revision history for this message
Roman Podoliaka (rpodolyaka) wrote :

A month without feedback, closing as Invalid following our policies on Incomplete bugs. Thomas, feel free to update the bug and re-open it.

Changed in fuel:
status: Incomplete → Invalid
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix proposed to fuel-agent (master)

Related fix proposed to branch: master
Review: https://review.openstack.org/344270

Revision history for this message
Alexander Gordeev (a-gordeev) wrote :

It's still valid. Issue with redundant 'root=' always reproducible under xenial flavoured IBP images. Hence, it's high or even critical.

Changed in fuel:
status: Invalid → Confirmed
tags: added: tricky
removed: low-hanging-fruit
Changed in fuel:
assignee: Thomas Goirand (thomas-goirand) → Mikhail Zhnichkov (mzhnichkov)
status: Confirmed → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to fuel-agent (master)

Reviewed: https://review.openstack.org/344270
Committed: https://git.openstack.org/cgit/openstack/fuel-agent/commit/?id=47e8b24a12d86469d60f4ec35432b26b07ad6b32
Submitter: Jenkins
Branch: master

commit 47e8b24a12d86469d60f4ec35432b26b07ad6b32
Author: Dmitry Teselkin <email address hidden>
Date: Tue Jul 19 17:22:01 2016 +0300

    Remove extra root= kernel parameter

    Xenial-based IBP kernel boot parameters contain 'root=UUID=XXX'
    record where 'XXX' points to UID of lvm volume,but in this moment
    lvm groups is not activated and root partition cannot be mounted.

    This occurs because script, which should activate lvm, does not handle
    'UUID' option. Lvm2 Xenial package relying on presence of systemd to
    activate its volumes.

    In early releases this works by specific udev rules
    (/lib/udev/rules.d/85-lvm2.rules)

    Change-Id: I8ebe209e4de479a30c70222a35cabcfacbfd2e6c
    blueprint: mos-xenial
    Closes-Bug: 1552346

Changed in fuel:
status: In Progress → Fix Committed
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/fuel-agent 10.0.0rc1

This issue was fixed in the openstack/fuel-agent 10.0.0rc1 release candidate.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/fuel-agent 10.0.0

This issue was fixed in the openstack/fuel-agent 10.0.0 release.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.