On Thu, Jun 23, 2016 at 02:57:49PM +0200, Laszlo Ersek wrote: > On 06/23/16 06:43, Gary Lin wrote: > > On Wed, Jun 22, 2016 at 07:24:32PM +0200, Laszlo Ersek wrote: > >> Gary, > >> > >> On 06/22/16 17:33, Laszlo Ersek wrote: > >>> On 06/22/16 17:24, Gerd Hoffmann wrote: > >>>> On Mi, 2016-06-22 at 17:14 +0200, Laszlo Ersek wrote: > >>>>> On 06/22/16 10:34, Michael Brown wrote: > >>>>>> On 22/06/16 05:48, Laszlo Ersek wrote: > >>>>>>> In other words, the memcpy() quoted at the top copies 32 bytes into a > >>>>>>> 32-byte buffer, from a 20-byte buffer. It is the *source* buffer that > >>>>>>> is > >>>>>>> overflowed. > >>>>>>> > >>>>>>> As a result, bytes 20..31 of MacAddress (inclusive) are filled with > >>>>>>> garbage. > >>>>>> > >>>>>> Awesome debugging; thank you! I've pushed a fix at > >>>>>> > >>>>>> http://git.ipxe.org/ipxe.git/commitdiff/632e57f > >>>>> > >>>>> Thanks! > >>>>> > >>>>> Gerd, do you think you can rebuild the iPXE binaries bundled with QEMU > >>>>> during the 2.7 soft/hard freeze <http://wiki.qemu.org/Planning/2.7>? > >>>> > >>>> I intend to update ipxe before softfreeze (and if it doesn't work out > >>>> for some reason surely before hardfreeze), to pick up this fix and > >>>> virtio 1.0 support. > >>>> > >>>> What is the state of this? IIRC there was some other issue beside this > >>>> ipxe bugfix. > >>> > >>> Right, when you open the iPXE form, that triggers an ASSERT(). > >>> > >>>> Is this root-caused meanwhile? edk2 issue? ipxe issue? > >>> > >>> I'll try to look into that next. > >>> > >>>> Should I wait for more ipxe fixes or can I go ahead with the update? > >>> > >>> Assuming you can sneak an iPXE rebuild into the QEMU soft freeze, I > >>> think it makes sense to wait a bit longer -- let's hope I can come up > >>> with something sensible for that error too... > >> > >> can you please retest with a fresh build of the current iPXE master (at > >> 04186319181298083ef28695a8309028b26fe83c presently)? I can no longer > >> reproduce the ASSERT -- the iPXE form can be entered just fine. > >> > >> I don't know what changed. o_O > >> > > I still got the crash all the time with 0418631918. However, Switching > > to cc8824ad (plus the size fix) lowers the chance of crash largerly > > (around 1 from 10). cc8824ad is the commit that is right before this: > > > > 5238c85b623200fa0f44a46db93965080053f745 > > [efi] Work around broken EFI HII specification > > > > The iPXE option started to crash all the time after I switched to > > 5238c85b6. However, reverting 5238c85b6 on git master didn't moderate > > the crash. The root cause is still hiding somewhere... > > If it reproduces non-deterministically, that's quite bad. If we don't > have a reliable reproducer, I'm not sure how it can be analyzed. > In my case:
ipxe git 04186319 -> always crash ipxe git cc8824ad -> 10% crash I had some findings by comparing the crash and non-crash log with cc8824ad. 1. For the non-crash case, all the Statement->ParentStatement of the iPXE options were NULL in InitializeDisplayStatement(). 2. For the crash case, one of the Scope of the iPXE Statement became non-zero, so MdeModulePkg/Universal/SetupBrowserDxe/IfrParse.c:ParseOpCodes() assigned CurrentStatement to ParentStatement. When this happened, it's always the statement for "TFTP server". > Can you perhaps correlate the crash with network traffic (tcpdump)? I'm > just grasping at straws here. Also, what exactly is your OVMF build > command line? Maybe it correlates somehow with the set of modules built > into OVMF. > I built OVMF with this command: ./build.sh -D SECURE_BOOT_ENABLE -D NETWORK_IP6_ENABLE -D HTTP_BOOT_ENABLE Hope this helps. Thanks, Gary Lin _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel