Re: [ANN] oscheck: wrapper for fstests check.sh - tracking and working with baselines

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]



On Fri, Jul 13, 2018 at 09:44:20AM -0700, Luis R. Chamberlain wrote:
> On Fri, Jul 13, 2018 at 11:39:55AM +0300, Amir Goldstein wrote:
> > On Fri, Jul 13, 2018 at 5:43 AM, Luis R. Chamberlain <mcgrof@xxxxxxxxxx> wrote:
> > > I had volunteered at the last LSF/MM to help with the stable work for
> > > XFS. To help with this, as part of this year's SUSE Hackweek, I've
> > > first generalized my own set of scripts to help track a baseline of
> > > results from fstests [0], and extended it to be able to easily ramp up
> > > with fstests on different distributions, and I've also created a
> > > respective baseline of results against these distributions as a
> > > further example of how these scripts and wrapper framework can be used
> > 
> > Hi Luis!
> > 
> > Thanks a lot for doing this work!
> > 
> > Will take me some time to try it out, but see some questions below...
> > 
> > > [1]. The distributions currently supported are:
> > >
> > >   * Debian testing
> > >   * OpenSUSE Leap 15.0
> > >   * Fedora 28
> > >
> > > The stable work starts with creating a baseline for v4.17.3. The
> > > results are visible as a result of expunge files which categorize the
> > > failures for the different sections tested.
> > 
> > So the only "bad" indication is a test failure?
> 
> That is correct to a certain degree, ie, if xfsprogs / the kernel
> config could run it we can assume it passed.
> 
> > How about indication about a test that started to pass since baseline?
> 
> Indeed, that is desirable.
> 
> We have a few options. One is share the entire results directory for
> a release / section, however this is rather big. For instance for a
> full v4.17.3 run this is about 292 MiB alone. I don't think this
> scales. IMHO lgogs should only be supplied onto bug reports, not this
> framework.
> 
> The other option is to use -R xunit to generate the report in the
> specified unit. I have not yet run this, or tried it, however IIRC
> it does record success runs? Does it also keep logs? Hopefully not.  I'm

Yes, it record success runs. For logs, it only keeps the diff outputs
and .out.bad files of failed tests, no logs are saved for passed tests.

> assuming it does not as of yet. I should note if one hits CTRL-C in the
> middle one does not get the results. An alternative was being worked on

Yeah, xunit results are not saved on ctrl-c. I think we could extend the
current signal handlers to also generate xunit results. But I'm not sure
if it's easy to do.

> by Jeff which would sprinkle IIRC .ok files for tests which succeed,
> then you could just scrape the results directory to determine which
> tests did pass -- but you run into the same size problem as above.
> 
> Since we are establishing a full baseline, and using expunge files
> to skip failures, we *should* be able to complete a full run now
> though, and be able to capture the results into this xunit format.
> I'll try that out and see how big the file is.
> 
> I think having that *and* the expunge list would work well.
> 
> We'd have to then process that file to scrape out which tests were
> passed, if a user wanted that. Do we have scripts for processing
> xunit files?

Not in fstests source code.

> 
> Having the expunge files separately helps as we can annotate bug URLs to
> them optionally. Ie, we should be able to process both expunge lists
> and xunit file to construct a nice db schema to process results
> in a more easily viewable manner in the future.
> 
> So to establish a baseline, one first manually contstructs the expunge
> files needed to run a full test. In the future hopefully we can have
> a set of scripts to do all this for us.
> 
> Once the baseline is in place, a full run with all sections is done,
> to generate the -R xunit file. This annotates again failures but also
> success.
> 
> Thoughts?
> 
> > Tested that started to notrun since baseline?
> 
> Its unclear if xunit captures this. Otherwise we have some work to do.

Yes, notrun tests are recorded as "skipped" (along with a reason
message) in xunit result file.

> 
> > Are we interested in those?
> 
> Sure, if we can capture this. Does xunit gather this?
> 
> I'd much prefer we tune our kernel to be able to run most tests,
> likewise also ensure the dependenciecs for fstests are met, through
> the oscheck helpers.sh which handles --install-deps properly.
> 
> A side question is -- do we want to keep track of results separately
> per filesystem tools version used? Right now fstests does not annotate
> this on the results directory, but perhaps it should.

The xunit file currently records variables like MKFS_OPTIONS,
MOUNT_OPTIONS etc, I think it should be easy to dump more version info
there.

Thanks,
Eryu

> 
> At least for XFS, the configuration file stuff should enable in
> the future deployment of the latest xfsprogs on older releases.
> Before this, it was rather hard to do this due to the differing
> defaults, so another option may be to just only rely on assuming
> one is using the latest userspace tool.
> 
> Right now I'm using the latest tool on each respective latest distro.
> The stable tests are using Debian testing, so whatever xfsprogs
> is in debian testing, right now that is 4.15.1-1.
> 
> > > Other than careful manual
> > > inspection of each stable candidate patch, one of the goals will also
> > > be to ensure such stable patches do not regress the baseline. Work is
> > > currently underway to review the first set of stable candidate patches
> > > for v4.17.3, if they both pass review and do not regress the
> > > established baseline, I'll proceed to post the patches for further
> > > evaluation from the community.
> > >
> > > Note that while I used this for XFS, it should be easy to add support
> > > for other filesystems, should folks wish to do something similar for
> > > their filesystems. The current XFS sections being tested are as
> > > follows, please let me know if we should consider extending this
> > > further:
> > >
> > > # Matches what we expect to be default on the latests xfsprogs
> > > [xfs]
> > > MKFS_OPTIONS='-f -m crc=1,reflink=0,rmapbt=0, -i sparse=0'
> > > USE_EXTERNAL=no
> > > FSTYP=xfs
> > 
> > Please add a LOGWRITES_DEV to all "internal log" configs.
> > This is needed to utilize the (relatively) new crash consistency tests
> > (a.k.a. generic/replay) which caught a few nasty bugs.
> 
> Will do!
> 
> > Fun fact: the fix for stable 4.4 almost got missed, because your system
> > was not around ;-)
> > https://marc.info/?l=linux-xfs&m=152852844615666&w=2
> > 
> > I've used a 10GB LOGWRITES_DEV, which seems to be enough
> > for the current tests.
> 
> Will use that, thanks. Better yet, any chance you can send me a patch?
> 
> > I don't think that the dmlogwrite tests play well with external logdev,
> 
> I don't think its the only test which requires review for external logs.
> There are quite a bit of failures when using xfs_logdev and
> xfs_realtimedev and I'm suspecting this has to do with the output
> differing, and the output for the tests not considering an external
> log was used.
> 
> The top of expunges/debian/testing/xfs/unassigned/xfs_logdev.txt has:
> 
> # Based on a quick glance on the errors, one possibility is that                
> # perhaps generic tests do not have the semantics necessary to                  
> # determine if an external log is used in a generic form and adjust             
> # the test for this. But that does not seem to be the case for all              
> # tests. A common error for at least two tests seems to be size                 
> # related, and that may be a limitation on the log size, and the                
> # inability to generically detect the filesyste log size max allowed            
> # to then invalidate the test. But note that we even have XFS specific          
> # tests which fail, so if its a matter of semantics this is all just            
> # crap and are missing a lot of work for improvement. 
> 
> > so we could probably reuse the same device for LOGWRITES_DEV
> > for configs that don't use SCRATCH_LOGDEV.
> 
> True, the recommended setup on oscheck actually is to create
> 12 x 20 GiB disks, gendisks.sh does this for you on loopback
> devices. In practice you end up only needing about 60 GiB
> as it stands today though for XFS, but indeed we can actually
> use any of the spare disks for LOGWRITES_DEV then.
> 
> I do wonder how much more data the extra LOGWRITES_DEV will
> push the upper limit per required guest, we'll see!
> 
>   Luis
> --
> To unsubscribe from this list: send the line "unsubscribe fstests" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe fstests" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Filesystems Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux