bugGNU GRUB - Bugs: bug #35422, Out of memory. Aborted error when...


You are not allowed to post comments on this tracker with your current authentication level.

bug #35422: Out of memory. Aborted error when trying to boot with ServeRaid M1015 card

Submitted by:  Thomas Fjellstrom <tomasu>
Submitted on:  Wed Feb 1 04:59:17 2012  
Category: BootingSeverity: Major
Priority: 5 - NormalItem Group: Software Error
Status: FixedPrivacy: Public
Assigned to: NoneOriginator Name: Thomas Fjellstrom
Open/Closed: ClosedRelease: 
Release: otherReproducibility: Every Time
Planned Release: None

(Jump to the original submission Jump to the original submission)

Fri Feb 28 09:11:09 2014, comment #27:

Given lack of feedback, I assume the patch worked.

Vladimir Serbinenko <phcoder>
Project Administrator
Tue Feb 4 13:29:34 2014, comment #26:

Attached patch should workaround the problem, even though the real bug is in the Option rom of this RAID card.

(file #30456)

Vladimir Serbinenko <phcoder>
Project Administrator
Sun Feb 2 05:14:11 2014, comment #25:

Sorry for the delay getting back to you, have been away and haven't had a chance to get to this until now.

It looks like that patch won't build correctly as your printf specifications include two parameters but you're only passing a single register in.

I have corrected the format spec and build/installed the code onto the boot drive for this machine.

Output from GRUB running this is as follows:

e820 returned eax=0x534d4150, ebx=0x0, ecx = 0x14, entry=0x0, 0x0, 0x0
out of memory

Picture of output attached for reference.

(file #30433)

Will D <dowlingw>
Tue Jan 7 15:54:33 2014, comment #24:

Please run with attached patch to gather more data.

(file #30214)

Vladimir Serbinenko <phcoder>
Project Administrator
Tue Jan 7 15:11:34 2014, comment #23:

Wow, this BIOS has no e820 with 3G of RAM. That would certainely get it into Top 10 stupid BIOS bugs. I'll prepare diagnostic/workaround patches.

Vladimir Serbinenko <phcoder>
Project Administrator
Tue Jan 7 15:07:23 2014, comment #22:

Can replicate this issue on Ubuntu 13.10 (Grub 2.00-19ubuntu2.1).

Booting the system via SYSLINUX livecd works, have used this method to provide dmesg output as requested.

Have also provided card details below for reference.

Please let me know if there is any additional information that would be useful to troubleshoot this.

Basics :
Controller = 1
Model = ServeRAID M1015 SAS/SATA Controller
Current Controller Date/Time = 01/06/2014, 14:10:26
Current System Date/time = 01/06/2014, 14:10:28
SAS Address = 500605b0035788b0
Mfg Date = 04/02/11
Rework Date = 00/00/00
Revision No = 02C

Version :
Firmware Package Build = 20.12.1-0150
Firmware Version = 2.130.394-2550
Bios Version = 4.36.00_4.12.05.00_0x05270000
NVDATA Version = 3.09.03-0052
Boot Block Version =
Driver Name = megaraid_sas
Driver Version = 06.504.01.00-rc

(file #30210, file #30211)

Will D <dowlingw>
Tue Mar 26 16:56:34 2013, comment #21:

can you somehow extract e820 memory map when booted with this controller (it's in the beginning of dmesg and is available through "lsmmap"). If none of these method are applicable you need to add a printf in mm.c.

Vladimir Serbinenko <phcoder>
Project Administrator
Tue Mar 26 16:35:25 2013, comment #20:

I completely retract my previous post. It seems that I somehow disabled the raid adapter in BIOS, that's what allowed me to boot. The bug is still present in Ubunut 13.04's grub2 (2.00-13ubuntu2) and it prevents me from booting.

FYI-- my boot disk is not attached to the raid adapter.

good time <l3iggs>
Tue Mar 26 04:13:07 2013, comment #19:

I just experienced this same exact bug under Ubuntu 12.10. I can confirm that it's resolved by updating grub using the 13.04 repo.

good time <l3iggs>
Sun Jun 3 17:21:12 2012, comment #18:

Well the patch like this can be applied to GRUB2 as well but the patch makes no sense. volatile means that the variable is accessed by external source (e.g. DMA) but this variable isn't. My guess is that asm helper wasn't conformant to ABI. If so it was fixed in 2.00~beta6. Can you confirm?

Vladimir Serbinenko <phcoder>
Project Administrator
Sun Feb 26 18:23:02 2012, comment #17:

Hi, Someone just emailed me saying they managed to fix the problem for themselves, but using grub 0.97, not grub2. So I'm sure the fix isn't directly applicable, but it might be a similar issue?

See the bug: https://bugzilla.redhat.com/show_bug.cgi?id=250299

Thomas Fjellstrom <tomasu>
Sun Feb 12 22:53:20 2012, comment #16:

Ok, and just to make sure theres a RESULTS.txt that was generated when my custom compiled grub was installed, I'm attaching that now as well. (I think the previous two already had a proper grub re-installed, #3 deffinitely does, not sure about #2)

(file #25054)

Thomas Fjellstrom <tomasu>
Sun Feb 12 22:50:58 2012, comment #15:

If you mean the bootinfo script from sourceforge, I've attached two results, one from the machine booted into the rescue cd, with the sas card installed, and 7 drives plugged into it, and the other is a normal boot of the machine with debian's stock grub install, without the sas card installed.

Also, it seems I was wrong about the amount of memory that is seen when the card is installed and the machine boots off the system rescue cd. It only seems to see 3-4GB rather than the full 8. Though I could swear at least one time it saw the full 8. At any rate, with the card installed and setup the way I intend to use it, it only sees 4GB.

(file #25052, file #25053)

Thomas Fjellstrom <tomasu>
Sun Feb 12 21:57:36 2012, comment #14:

Can you supply the results of bootinfo script?

Vladimir Serbinenko <phcoder>
Project Administrator
Sun Feb 12 21:52:19 2012, comment #13:

I appreciate the help so far.

I've played with it again some more, and it seems the syslinux loader on the system rescue cd seems to work just fine, and the system sees all 8GB ram after booting.

I have also not been able to get a manually compiled version of GRUB 0.99 to boot. Everything I've tried only gives me 'Symbol not found: grub_divmod64_full' error. I only had three drives installed, two of which I grub-install'ed to, and the third doesn't even have a boot sector (raw XFS filesystem directly on the drive). And I just tried unplugging all but one 500G drive that I grub-install'ed the new grub image to. Nothing works.

Thomas Fjellstrom <tomasu>
Sun Feb 5 06:01:58 2012, comment #12:

That is odd. The system had no problems booting with the same exact config before I customized grub and reinstalled it.

After playing with it a bit more, purging the customized grub, and reinstalling debian's grub (after having purged it to try a custom grub), the machine boots just fine. purging the debian grub, and reinstalling the custom grub dies with the divmod64 symbol error. I even removed the third disk I had installed, so the only two left are the two I had manually ran "update-grub" and "grub-install" on after installing grub each time.

Thomas Fjellstrom <tomasu>
Fri Feb 3 20:03:09 2012, comment #11:

Note that some BIOSes will skip disks if no partition is marked active. Just mark any partition active.

Vladimir Serbinenko <phcoder>
Project Administrator
Fri Feb 3 17:21:14 2012, comment #10:

I'm about 99% sure I got them right, as they are Seagate Drives, and the sizes are in the drive identifier. Only three drives in there, two 500G, and one 640G.

I'll get the bootinfo info later today/tonight.

Thomas Fjellstrom <tomasu>
Fri Feb 3 16:42:00 2012, comment #9:

Can you run bootinfo script and post the results? Are you sure you don't confuse the disks in the boot order? The names in BIOS can be very unclear

Vladimir Serbinenko <phcoder>
Project Administrator
Fri Feb 3 16:33:44 2012, comment #8:

It is possible, but I had those two drives first in the boot order. So the last drive booting would mean the boot sector on the first two weren't good. (the ones I installed the modified grub to)

Thomas Fjellstrom <tomasu>
Fri Feb 3 16:22:28 2012, comment #7:

It's common that system boots from unexpected drive, one that you think about as being "data only"

Vladimir Serbinenko <phcoder>
Project Administrator
Fri Feb 3 14:48:50 2012, comment #6:

Thats what I had thought, but I re-ran it on both of the main drives (sda and sdb, which make up the raid1 for /).

Thomas Fjellstrom <tomasu>
Fri Feb 3 09:05:21 2012, comment #5:

You have run grub-install on wrong device (not the one you actually boot from)

Vladimir Serbinenko <phcoder>
Project Administrator
Fri Feb 3 06:53:02 2012, comment #4:

So I tried that, but I had to have done something wrong, as when I tried to boot, I get a 'grub_divmod64_full symbol not found' type error. I had assumed it was because I installed the new grub over the distro grub, so I tried again after purging the distro grub, and still no love. I did re-run grub-install between each attempt. I'll try again in a day or so, and I might try flashing the M1015 firmware to a different one that just does pass through, it may also fix the problem.

Thomas Fjellstrom <tomasu>
Wed Feb 1 16:37:37 2012, comment #3:

I think the bug is in int13h handler but it's more of a guess. I'd start with 0xbfffffff (which basically says "don't touch outside 3GiB")

Vladimir Serbinenko <phcoder>
Project Administrator
Wed Feb 1 16:29:08 2012, comment #2:

I will try that later today. What would you suggest for a value? 0xefffffff? Or something much smaller like 0xffffefff?

If it helps, the board has the option to hook the boot disk interrupt disabled. When you say "when accessed through BIOS" do you mean when the bios config is started? Or just when the card itself initializes?

Thomas Fjellstrom <tomasu>
Wed Feb 1 15:43:36 2012, comment #1:

The card in question is known corrupt memory when access through BIOS (probably a buggy option ROM). Pretty difficult to workaround without having an idea what's going on and which regions are corrupted and which are safe. Can you try decreasing the 0xffffffff in the file
grub-core/kern/i386/pc/init.c, lines 206 and 211?

Vladimir Serbinenko <phcoder>
Project Administrator
Wed Feb 1 04:59:17 2012, original submission:

Grub will fail to load when a ServeRaid M1015 (aka: LSI MegaRaid 9220) PCIe card is installed. Without the card installed, grub loads, and boots the machine just fine.

The GRUB output is as follows:

This is fully reproducible.

The machine has GRUB 1.99-14 installed (debian sid).

Installing grub with `grub-install --debug-image=all /dev/sda` did not give any more output than it did with the stock image.

Added detail:
Machine has a Gigabyte MA790FXT-UD5P motherboard, Phenom II x4 810 cpu, 8GB DDR3 ram, dinky fanless gpu, extra 10/100 NIC, and of course the SAS controller, with 7 drives hooked up to it. System drive is /not/ on the SAS controller. Root filesystem lives on ext4, over top LVM2, over md raid1, over two Seagate 500G drives connected to the motherboard's built in SATA ports.

Please let me know if I've left anything out.

Thomas Fjellstrom <tomasu>


Attached Files
file #30456:  e820.diff added by phcoder (3kB - text/x-diff)
file #30214:  mmap.diff added by phcoder (1kB - text/x-diff)
file #30210:  dowlingw-dmesg.txt added by dowlingw (50kB - text/plain)
file #30211:  dowlingw-dmidecode.txt added by dowlingw (11kB - text/plain)
file #25054:  RESULTS.txt added by tomasu (12kB - text/plain)
file #25052:  RESULTS2.txt added by tomasu (20kB - text/plain)
file #25053:  RESULTS3.txt added by tomasu (9kB - text/plain)


Depends on the following items: None found

Items that depend on this one: None found


Carbon-Copy List
  • -unavailable- added by dowlingw (Updated the item)
  • -unavailable- added by l3iggs (Posted a comment)
  • -unavailable- added by phcoder (Posted a comment)
  • -unavailable- added by tomasu (Submitted the item)

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.


    Please enter the title of George Orwell's famous dystopian book (it's a date):



    Follow 10 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Fri Feb 28 09:11:09 2014phcoderStatusNone=>Fixed
    Tue Feb 4 13:29:34 2014phcoderAttached File-=>Added e820.diff, #30456
    Sun Feb 2 05:14:11 2014dowlingwAttached File-=>Added bug35422-patchoutput.png, #30433
    Tue Jan 7 15:54:33 2014phcoderAttached File-=>Added mmap.diff, #30214
    Tue Jan 7 15:07:23 2014dowlingwAttached File-=>Added dowlingw-dmesg.txt, #30210
      Attached File-=>Added dowlingw-dmidecode.txt, #30211
    Sun Feb 12 22:53:20 2012tomasuAttached File-=>Added RESULTS.txt, #25054
    Sun Feb 12 22:50:58 2012tomasuAttached File-=>Added RESULTS2.txt, #25052
      Attached File-=>Added RESULTS3.txt, #25053

    Back to the top

    Powered by Savane 3.1-cleanup1