using progress mod w/ net files crashes
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
grub2 (Ubuntu) |
Fix Released
|
Medium
|
Mathieu Trudel-Lapierre | ||
Trusty |
Fix Released
|
Medium
|
Unassigned | ||
Vivid |
Fix Released
|
Medium
|
Unassigned | ||
Wily |
Fix Released
|
Medium
|
Mathieu Trudel-Lapierre |
Bug Description
[Impact]
If the progress module is loaded, GRUB will crash when loading files over the network. A common scenario where this occurs is when building a GRUB image for EFI netbooting w/ all modules included. MAAS does this when generating it's grubnet EFI binary. MAAS currently works around this by explicitly blacklisting the progress module - but only on arm64 (we'd only observed this on arm64 at the time, and didn't yet know the root cause).
While the easy workaround is to just omit the progress module, it isn't at all obvious from the crash that progress.mod is the cause.
[Test Case]
The simple case is to create a grub image with *just* the progress module and netboot it. For arm64:
$ grub-mkimage -v -o grubaa64.efi -O arm64-efi -d /home/dannf/
Booting the resulting image:
[1] PXE
[2] ubuntu
[3] Shell
[4] Boot Manager
Start: 1
..
Synchronous Exception at 0x0000000FF7C3DDC8
Synchronous Exception at 0x0000000FF7C3DDC8
Synchronous Exception at 0x0000000FF7C3DDC8
Synchronous Exception at 0x0000000FF7C3DDC8
[...]
[Regression Risk]
The upstream fix for this is a pretty surgical fix to check for NULL before dereferencing a pointer.
tags: | added: patch |
summary: |
- arm64 images built w/ the progress module crash GRUB + crash when progress mod used w/ net files |
summary: |
- crash when progress mod used w/ net files + using progress mod w/ net files crashes |
description: | updated |
Changed in grub2 (Ubuntu Wily): | |
status: | New → In Progress |
importance: | Undecided → Medium |
assignee: | nobody → Mathieu Trudel-Lapierre (mathieu-tl) |
Changed in grub2 (Ubuntu Trusty): | |
importance: | Undecided → Medium |
Changed in grub2 (Ubuntu Vivid): | |
importance: | Undecided → Medium |
tags: | added: trusty |
tags: |
added: verification-done verification-vivid-done removed: verification-needed |
tags: |
added: verification-done-vivid removed: verification-vivid-done |
The attached patch fixes the problem for me. I'll try and upstream it, though a pure upstream build is crashing elsewhere for me at the moment.