On 08/08/19 17:38, Feng, Bob C wrote: > Hi Laszlo and Leif, > > Thanks for you detailed testing and comments. > > I'd like to explain the failure of the test 3#. I can reproduce the failure > with your steps and I found this failure can also be reproduced without > multiple process autogen patch set. I debugged and found this failure is due > to --hash build option. I double tested that if remove --hash build option, > the test 3# can pass. Would you please double verified test 3# without > --hash? > > I think we can enter a new BZ for the --hash bug.
Confirmed -- with "--hash" removed from the build command line, the build is picked up fine after Ctrl-C. (And the firmware binary is sound.) So, my ACK stands. ( And now I remember that in my v3 testing, I also omitted "--hash": 4ea3d3fa-2210-3642-2337-db525312d312@redhat.com">http://mid.mail-archive.com/4ea3d3fa-2210-3642-2337-db525312d312@redhat.com https://edk2.groups.io/g/devel/message/44246 At the bottom I stated that I didn't test "--hash". ) Thanks Laszlo > -----Original Message----- > From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of Leif > Lindholm > Sent: Thursday, August 8, 2019 9:45 PM > To: Laszlo Ersek <ler...@redhat.com> > Cc: Feng, Bob C <bob.c.f...@intel.com>; devel@edk2.groups.io; Andrew Fish > <af...@apple.com>; Kinney, Michael D <michael.d.kin...@intel.com>; Gao, > Liming <liming....@intel.com> > Subject: Re: [edk2-devel] [Patch 00/10 V8] Enable multiple process AutoGen > > Hi Laszlo, > > Thanks for looping me in. > > On Thu, Aug 08, 2019 at 03:08:22PM +0200, Laszlo Ersek wrote: >> (+ Andrew, Leif, Mike; Liming) >> >> On 08/07/19 06:25, Bob Feng wrote: >> (3) In my normal edk2 clone, I cleaned the tree, applied your patches >> (again on top of commit 96603b4f02b9), and started a build: >> >> $ . edksetup.sh >> $ nice make -C "$EDK_TOOLS_PATH" -j $(getconf _NPROCESSORS_ONLN) $ >> nice -n 19 build \ >> -a IA32 \ >> -p OvmfPkg/OvmfPkgIa32.dsc \ >> -t GCC48 \ >> -b NOOPT \ >> -n 4 \ >> -D SMM_REQUIRE \ >> -D SECURE_BOOT_ENABLE \ >> -D NETWORK_TLS_ENABLE \ >> -D NETWORK_IP6_ENABLE \ >> -D NETWORK_HTTP_BOOT_ENABLE \ >> --report-file=.../build.ovmf.32.report \ >> --log=.../build.ovmf.32.log \ >> --cmd-len=65536 \ >> --hash \ >> --genfds-multi-thread >> >> This command located Python3: >> >>> WORKSPACE = .../edk2 >>> EDK_TOOLS_PATH = .../edk2/BaseTools >>> CONF_PATH = .../edk2/Conf >>> PYTHON_COMMAND = /usr/bin/python3.6 >>> >>> >>> Processing meta-data . >>> Architecture(s) = IA32 >>> Build target = NOOPT >>> Toolchain = GCC48 >> >> The build launched fine. >> >> After 10-20 seconds into the build, I interrupted it with Ctrl-C: >> >>> build.py... >>> : error 7000: Failed to execute command >>> make tbuild >>> [.../edk2/Build/OvmfIa32/NOOPT_GCC48/IA32/ShellPkg/Library/UefiShell >>> Debug1CommandsLib/UefiShellDebug1CommandsLib] >>> >>> >>> build.py... >>> : error 7000: Failed to execute command >>> make tbuild >>> [.../edk2/Build/OvmfIa32/NOOPT_GCC48/IA32/ShellPkg/Library/UefiShell >>> Driver1CommandsLib/UefiShellDriver1CommandsLib] >>> >>> >>> build.py... >>> : error 7000: Failed to execute command >>> make tbuild >>> [.../edk2/Build/OvmfIa32/NOOPT_GCC48/IA32/CryptoPkg/Library/OpensslL >>> ib/OpensslLib] >>> >>> >>> build.py... >>> : error 7000: Failed to execute command >>> make tbuild >>> [.../edk2/Build/OvmfIa32/NOOPT_GCC48/IA32/MdePkg/Library/BaseLib/Bas >>> eLib] >>> >>> - Aborted - >>> Build end time: 14:05:56, Aug.08 2019 Build total time: 00:00:15 >> >> As next step, I repeated the same "build" command as above, in order >> to continue the interrupted build. Unfortunately, this failed: >> >>> WORKSPACE = .../edk2 >>> EDK_TOOLS_PATH = .../edk2/BaseTools >>> CONF_PATH = .../edk2/Conf >>> PYTHON_COMMAND = /usr/bin/python3.6 >>> >>> >>> Processing meta-data >>> .Architecture(s) = IA32 >>> Build target = NOOPT >>> Toolchain = GCC48 >>> >>> Active Platform = .../edk2/OvmfPkg/OvmfPkgIa32.dsc >>> ..... done! >>> >>> Fd File Name:OVMF (.../edk2/Build/OvmfIa32/NOOPT_GCC48/FV/OVMF.fd) >>> >>> Generate Region at Offset 0x0 >>> Region Size = 0x40000 >>> Region Name = DATA >>> >>> Generate Region at Offset 0x40000 >>> Region Size = 0x1000 >>> Region Name = None >>> >>> Generate Region at Offset 0x41000 >>> Region Size = 0x1000 >>> Region Name = DATA >>> >>> Generate Region at Offset 0x42000 >>> Region Size = 0x42000 >>> Region Name = None >>> >>> Generate Region at Offset 0x84000 >>> Region Size = 0x348000 >>> Region Name = FV >>> >>> Generating FVMAIN_COMPACT FV >>> >>> Generating PEIFV FV >>> ###### ['GenFv', '-a', >>> '.../edk2/Build/OvmfIa32/NOOPT_GCC48/FV/Ffs/PEIFV.inf', '-o', >>> '.../edk2/Build/OvmfIa32/NOOPT_GCC48/FV/PEIFV.Fv', '-i', >>> '.../edk2/Build/OvmfIa32/NOOPT_GCC48/FV/PEIFV.inf'] >>> Return Value = 2 >>> GenFv: ERROR 0001: Error opening file >>> >>> .../edk2/Build/OvmfIa32/NOOPT_GCC48/FV/Ffs/52C05B14-0B98-496c-BC3B-0 >>> 4B50211D680PeiCore/52C05B14-0B98-496c-BC3B-04B50211D680.ffs >>> >>> >>> >>> >>> build.py... >>> : error 7000: Failed to generate FV >>> >>> >>> >>> build.py... >>> : error 7000: Failed to execute command >>> >>> >>> - Failed - >>> Build end time: 14:06:25, Aug.08 2019 Build total time: 00:00:06 >> >> To be honest, I'm not sure what to ask for, at this point. >> >> - On one hand, this is certainly not ideal. Continuing a manually >> interrupted build should preferably work -- that's a form of >> incremental build. And, it did work in my v3 testing; see bullet (5) in: >> >> 4ea3d3fa-2210-3642-2337-db525312d312@redhat.com">http://mid.mail-archive.com/4ea3d3fa-2210-3642-2337-db525312d312@redhat.com >> https://edk2.groups.io/g/devel/message/44246 >> >> (Is this perhaps a regression from the V6 update, which was related to >> incremental builds?) >> >> - On the other hand, this is not necessarily show-stopper, and I'm >> quite out of capacity for testing further versions of this full patch set. >> Perhaps you can work on this issue incrementally -- bugfixes can be >> accepted during the freeze periods. > > I think there are two (independent) circumstances where I would be happy for > the support to be included even given this bug: > 1) The parallel autogen is only invoked (at this point in time) when > requested by an explicit command line parameter. > or > 2) The failure is detected and its cause clearly printed for the user. > > From my reading of the above, neither is true. > > At which point, I think we would either make one of those true, or root cause > and fix the actual error, in order to be able to accept this into the tree. > Regardless of which side of the stable tag. > > I *really* don't want for us to knowingly end up with a build system that > "sometimes breaks sporadically and you need to git clean the repository and > try again". > >> I don't feel comfortable giving Tested-by or Regression-tested-by in >> this state, but I also won't block the patch set from being merged. >> >> Note that this problem appears repeatable, and it reproduces using >> Python2 as well. It should be possible for you to reproduce and to >> debug. > > It being reproducible by Python 2 is actually really positive, since it > suggests Python 3 async i/o is not involved. > >> (4) In this test, I repeated (3), but instead of interrupting the >> build with Ctrl-C, I introduced a syntax error to one of the C source >> files under OvmfPkg (I simply appended the constant "1" to the end of >> the file). >> >> As expected, the build failed (and correctly stopped, too): >> >>> .../edk2/OvmfPkg/VirtioNetDxe/SnpReceive.c:186:1: error: expected >>> identifier or '(' before numeric constant >>> 1 >>> ^ >>> make: *** >>> [.../edk2/Build/OvmfIa32/NOOPT_GCC48/IA32/OvmfPkg/VirtioNetDxe/Virti >>> oNet/OUTPUT/SnpReceive.obj] Error 1 >>> >>> >>> build.py... >>> : error 7000: Failed to execute command >>> make tbuild >>> [.../edk2/Build/OvmfIa32/NOOPT_GCC48/IA32/OvmfPkg/VirtioNetDxe/Virti >>> oNet] >>> >>> >>> build.py... >>> : error F002: Failed to build module >>> .../edk2/OvmfPkg/VirtioNetDxe/VirtioNet.inf [IA32, GCC48, >>> NOOPT] >>> >>> - Failed - >>> Build end time: 14:29:18, Aug.08 2019 Build total time: 00:00:38 >> >> I undid the syntax error, and repeated the "build" command. >> >> The build resumed fine, and produced a functional OVMF binary. Good. > > Not unexpected, but good to have verified. > >> (5) I also verified that changes to C files, made after the build >> completed successfully for the first time, would cause those files to >> be re-built, if the "build" command was repeated. So that's OK too. >> >> ... All in all, I think the series is mature enough to merge, in order >> to expose it to wider testing by the community, with the soft feature >> freeze just around the corner. The main functionality seems to work, >> there don't seem to be show-stoppers. IMO a BaseTools series doesn't >> have to be *perfect* -- as long as it doesn't get in the way of people >> doing their work, it should be possible to improve upon, incrementally. >> Therefore, from my side, I'm willing to give you a (somewhat reserved) >> >> Acked-by: Laszlo Ersek <ler...@redhat.com> >> >> for the series. >> >> I suggest seeking feedback from the other stewards as well. >> >> To reiterate, the only issue I have found is that the build could not >> be resumed after I interrupted it with Ctrl-C, in section (3). If >> there is consensus to push the v8 series with that, I would suggest >> filing a TianoCore BZ about issue (3) first, and to reference the BZ >> as a "known issue" in the commit message of patch#4 or patch#5. > > I will throw in a transitional > Nacked-by: Leif Lindholm <leif.lindh...@linaro.org> for now. > > If it can happen from a Ctrl-C, it can happen from an OOM-event, a lost > network connection, and a bunch of other things. And we could live with a > corrupted state causing breakage on next build attempt - but not an opaque > breakage. At a minimum, it needs to be clear what has caused the breakage. > > Best Regards, > > Leif > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#45237): https://edk2.groups.io/g/devel/message/45237 Mute This Topic: https://groups.io/mt/32779325/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-