bug-grub
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug #64167] grub fails to parse LVM information from PV


From: Torsten Hilbrich
Subject: [bug #64167] grub fails to parse LVM information from PV
Date: Tue, 9 May 2023 02:28:04 -0400 (EDT)

URL:
  <https://savannah.gnu.org/bugs/?64167>

                 Summary: grub fails to parse LVM information from PV
                   Group: GNU GRUB
               Submitter: myrkr_el
               Submitted: Tue 09 May 2023 06:28:02 AM UTC
                Category: Booting
                Severity: Major
                Priority: 5 - Normal
              Item Group: Software Error
                  Status: None
                 Privacy: Public
             Assigned to: None
         Originator Name: Torsten Hilbrich
        Originator Email: torsten.hilbrich@secunet.com
             Open/Closed: Open
                 Release: Git master
                 Release: 
         Discussion Lock: Any
         Reproducibility: Every Time
         Planned Release: None


    _______________________________________________________

Follow-up Comments:


-------------------------------------------------------
Date: Tue 09 May 2023 06:28:02 AM UTC By: Torsten Hilbrich <myrkr_el>
Grub version 2.06

I have a test system with the following partition layout:

/dev/nvme0n1: Partitioned as GPT
/dev/nvme0n1p3: A boot partition, partition type "EFI System"
  On that partition boot as installed as EFI binary
/dev/nvme0n1p5: Partition type "Linux LVM"

The PV contains a volume group named "sinavw", it has a number of LV where
SYS1 and SYS2 can then be used for booting.

The system is the following, whenever to load the kernel from the LV the
following error is output:


error: no server is specified


Using the user-space grub-fstest tool I was able to diagnose the problem a bit
more. The failure is happening while parsing the LVM meta data from the PV. I
have extracted the first about 1 MiB from the /dev/nvme0n1p5 partition, with
the call of:


grub-fstest --verbose start-of-pv-with-error cat '(lvm/sinavw-SYS1)/VERSION'


I could reproduce the problem.

The error occurs when trying to parse the name of the LV "ISO-EMSIFDBO", it
seems that the mda_end previously determined points to the newline after that
name. So the following code block from grub-core/disk/lvm.c, function
grub_lvm_detect (around line 459) determines that the condition "q == mda_end"
is true.


              lv = grub_zalloc (sizeof (*lv));

              q = p;
              while (*q != ' ' && q < mda_end)
                q++;

              if (q == mda_end)
                goto lvs_fail;


Here is some debugger output around that code:


456                   while (*q != ' ' && q < mda_end)
1: q = 0x7fcfd76b9004 "ISO-EMSIFDBO {\nid =
\"Ze7l6L-hS8k-QPYf-VPTz-OuLD-bNxO-iRC5mP\"\nstatus = [\"READ\", \"WRITE\",
\"VISIBLE\"]\nflags = []\ncreation_time = 1600763824\ncreation_host =
\"hilbrich.torsten.2016.at.secunet.de\"\nsegment_c"...
(gdb) p mda_end
$1 = 0x7fcfd76b9010 " {\nid =
\"Ze7l6L-hS8k-QPYf-VPTz-OuLD-bNxO-iRC5mP\"\nstatus = [\"READ\", \"WRITE\",
\"VISIBLE\"]\nflags = []\ncreation_time = 1600763824\ncreation_host =
\"hilbrich.torsten.2016.at.secunet.de\"\nsegment_count = 1\n\nse"...


The same PV can be used within the linux system without any problem. I use a
current kernel (currently 6.1.28) and the lvm2 tools in version 2.02.180.

I also noticed that when performing some LVM operation on linux the problem
happened to disappear in the past, only the reappear later on. I assume that
the position of the current copy of the meta data changes and influences the
problem.








    _______________________________________________________
File Attachments:


-------------------------------------------------------
Date: Tue 09 May 2023 06:28:02 AM UTC  Name: start-of-pv-with-error  Size:
1MiB   By: myrkr_el

<http://savannah.gnu.org/bugs/download.php?file_id=54713>

    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?64167>

_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]