Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 29 Jan 2019 09:28:55 -0800
From:      Enji Cooper <yaneurabeya@gmail.com>
To:        rgrimes@freebsd.org
Cc:        Kyle Evans <kevans@freebsd.org>, src-committers <src-committers@freebsd.org>, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r343543 - head/sbin/bectl/tests
Message-ID:  <84917F83-B4CD-4AD3-97EA-528366468880@gmail.com>
In-Reply-To: <201901291706.x0TH6iKg009239@pdx.rh.CN85.dnsmgr.net>
References:  <201901291706.x0TH6iKg009239@pdx.rh.CN85.dnsmgr.net>

next in thread | previous in thread | raw e-mail | index | archive | help

> On Jan 29, 2019, at 09:06, Rodney W. Grimes <freebsd@pdx.rh.cn85.dnsmgr.ne=
t> wrote:
>=20
> [ Charset UTF-8 unsupported, converting... ]
>> On Jan 28, 2019, at 20:31, Rodney W. Grimes <freebsd@pdx.rh.cn85.dnsmgr.n=
et> wrote:
>>=20
>>>>> On Mon, Jan 28, 2019 at 10:09 PM Kyle Evans <kevans@freebsd.org> wrote=
:
>>>>>=20
>>>>> Author: kevans
>>>>> Date: Tue Jan 29 04:08:49 2019
>>>>> New Revision: 343543
>>>>> URL: https://svnweb.freebsd.org/changeset/base/343543
>>>>>=20
>>>>> Log:
>>>>> bectl(8) test: Force destroy the zpool in cleanup
>>>>>=20
>>>>> This is a wild guess as to why bectl tests failed once upon a time in C=
I,
>>>>> given no apparent way to see a transcript of cleanup routines with Kyu=
a. The
>>>>> bectl tests construct a new, clean zpool for every test. The failure
>>>>> indicated was because of a mount that was leftover from a previous tes=
t, but
>>>>> the previous test had succeeded so it's not clear how the mount remain=
ed
>>>>> leftover unless the `zpool get health ${pool}` had somehow failed.
>>>>>=20
>>>>=20
>>>> I left out: the tests are supposed to be constructed to clean up any
>>>> mounts that were left over in the course of the test, hence the
>>>> assumption that the failure lies in the cleanup.
>>=20
>> Hi Rod,
>>=20
>>> =46rom my experience as a hardware test engineer the test
>>> setup was required to make sure any of those assumptions
>>> are valid.  Meaning that the test would have to validate
>>> that no left over cruft was going to interfere with the
>>> test about to be run.
>>>=20
>>> Ie, you should probably do a force destroy of the pool
>>> *before* the test too.
>>=20
>> While this approach makes sense and is valid, it would leave open/orphane=
d resources after each test run (in this case a single zpool). It?s best to f=
ix the underlying issue with how the test formulates, sets up, and tears dow=
n the zpool.
>=20
> I did not advocate in any way that the post run cleanup
> should be removed.  Infact you should have both a pre-test
> assurance that the environment is correct and a post-test
> cleanup trying to removall all artifacts.
>=20
> You can fix the current issue, but eventually if you get
> enough testing going on your going to start to find that
> things fail in ways that do not clean up (machine crash
> is one instance) and not doing a pretest cleanup is eventually
> going to run aground of this pitfall.

I understand what you mean, but we don=E2=80=99t have to worry about this. O=
ur CI runs don=E2=80=99t persist today as the bhyve instance is setup at sta=
rt and torn down at exit (it was a problem in the first few iterations). Fur=
thermore, resources like zpools that the bectl tests construct are should tr=
ansient in nature at import (don=E2=80=99t affect the zpool.cache file), mea=
ning that it should not be reconnected on the next boot.

Assuming $TMPDIR is set to /tmp (or unset for that matter) and a standard rc=
.conf configuration (or better yet, a tmpfs/md-backed filesystem), all lefto=
ver remnants on disk will be cleaned up at next boot on test hosts that are m=
ore persistent.

Cheers,
-Enji=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?84917F83-B4CD-4AD3-97EA-528366468880>