[PATCH 1/1] test: revert Don't unmount not (yet) mounted system

Tom Rini trini at konsulko.com
Mon May 17 15:29:46 CEST 2021


On Mon, May 17, 2021 at 03:21:41PM +0200, Heinrich Schuchardt wrote:
> On 17.05.21 13:44, Andy Shevchenko wrote:
> > On Mon, May 17, 2021 at 2:35 PM Heinrich Schuchardt <xypron.glpk at gmx.de> wrote:
> >>
> >> On 17.05.21 13:16, Andy Shevchenko wrote:
> >>> On Mon, May 17, 2021 at 10:48:33AM +0200, Heinrich Schuchardt wrote:
> >>>> On 17.05.21 08:33, Andy Shevchenko wrote:
> >>>>> On Thu, May 13, 2021 at 2:41 PM Heinrich Schuchardt <xypron.glpk at gmx.de> wrote:
> >>>>>>
> >>>>>> Since commit 1ba21bb06b08 ("test: Don't unmount not (yet) mounted system")
> >>>>>> the following tests are skipped:
> >>>>>>
> >>>>>> test/py/tests/test_fs/test_basic.py
> >>>>>> test/py/tests/test_fs/test_ext.py
> >>>>>>
> >>>>>> SKIPPED [13] test/py/tests/test_fs/conftest.py:350: Setup failed for
> >>>>>> filesystem: ext4. Command 'guestmount -a
> >>>>>> build-sandbox/persistent-data/3GB.ext4.img -m /dev/sda
> >>>>>> build-sandbox/persistent-data/mnt' returned non-zero exit status 1.
> >>>>>>
> >>>>>> Let's revert the patch to get our tests back.
> >>>>>
> >>>>> Probably we may understand first what is the root cause of this issue?
> >>>>>
> >>>>> In my case I can't allow this to happen, because it will annoy system
> >>>>> administrators as I mentioned earlier in the commit message.
> >>>>>
> >>>>> So, NAK from me and let's investigate.
> >>>>> Can you provide a command line that I may run on my environment w/o root access?
> >>>>
> >>>> Hello Andy,
> >>>>
> >>>> The tests don't require root access if you have installed the
> >>>> libguestfs-tools package and a Linux kernel.
> >>>>
> >>>> How can I reproduce the problem with duplicate umount?
> >>>
> >>> I was running this 2+ times in a row (*)
> >>>
> >>> ./test/py/test.py --bd sandbox --build
> >
> > (1)
> >
> >>>
> >>> *) I can't run tests right now due to they are more or less constantly broken
> >>> one way or the other, now
> >>>
> >>> ============================================== test session starts ==============================================
> >>> platform linux -- Python 3.9.2, pytest-6.0.2, py-1.10.0, pluggy-0.13.0
> >>> rootdir: /home/andy/prj/u-boot/test/py, configfile: pytest.ini
> >>> collected 810 items / 1 error / 809 selected
> >>>
> >>> ___________________________________ ERROR collecting tests/test_fit_ecdsa.py ____________________________________
> >>> E   ModuleNotFoundError: No module named 'Cryptodome'
> >>
> >> The missing package is available via
> >>
> >>     apt-get install python3-pycryptodome # Debian/Ubuntu
> >>
> >> or
> >>
> >>     dnf install python3-pycryptodomex # Fedora
> >
> > Thanks.
> >
> > So, I have run above mentioned line (1) with current U-Boot (see
> > above), everything is fine, then I have reverted the commit (as your
> > patch does, correct), and oops
> >
> > test/py/tests/test_efi_secboot/test_unsigned.py sss
> >                                    [ 88%]
> > test/py/tests/test_fs/test_basic.py [sudo] password for andy:
> 
> If you are asked for a sudo password, you have not install libguestfs.
> 
> Please, install the missing package.
> 
> > Sorry, try again.
> > [sudo] password for andy:
> > Sorry, try again.
> > [sudo] password for andy:
> > sssssssssssss[sudo] password for andy:
> >
> > Now I'm waiting for a punishment from the admin, thanks to this test round.
> 
> make tests (on my local machine)
> 
> with origin/master:
> 
> test/py/tests/test_efi_secboot/test_unsigned.py ...
> test/py/tests/test_fs/test_basic.py sssssssssssssssssssssssssssssssssssssss
> test/py/tests/test_fs/test_ext.py ssssssssssssssssssssss
> test/py/tests/test_fs/test_fs_cmd.py .
> test/py/tests/test_fs/test_mkdir.py ............
> test/py/tests/test_fs/test_symlink.py ssss
> test/py/tests/test_fs/test_unlink.py ssssssssssssss
> 
> with your patch reverted
> 
> test/py/tests/test_efi_secboot/test_unsigned.py ...
> test/py/tests/test_fs/test_basic.py F............F.........................
> test/py/tests/test_fs/test_ext.py ......................
> test/py/tests/test_fs/test_fs_cmd.py .
> test/py/tests/test_fs/test_mkdir.py ............
> test/py/tests/test_fs/test_symlink.py ....
> test/py/tests/test_fs/test_unlink.py ..............
> 
> The failures are caused by dd being called with conv=fsync before
> mounting with guestfs.
> 
> Obviously we have two scenarios to test separately:
> 
> 1) using sudo for mounting
> 2) using guestfs for mounting
> 
> >
> > I'm not going to repeat this again, please understand me correctly.
> 
> I assume that you possess a private laptop where your are the admin.
> Where is the problem?

The problem here is that we have a number of different development /
testing scenarios that we need to support.  Tests need to run in CI.
They need to run in developer-controlled machines.  They need to run in
corporate-IT controlled machines.

The next problem is that as Andy has said, our python logic to handle
these cases is, to be polite, not working.  Check CI, we're skipping the
tests again, which I had missed.

Once we get these the fs tests working finally in all cases, we need to
update the relevant EFI tests too.

Finally, my python skills are not up to getting all of this correct, so
help greatly appreciated here.

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20210517/e7c8956d/attachment.sig>


More information about the U-Boot mailing list