Mailing List Archive

Automated Smoke Testing of refcounted stack, silent_no_taint, etc..
We've accumulated a couple of interesting build-time options that might
be the cause of lots of exciting CPAN module failures - refcounted
stack, and silent-no-taint.

Do we have any way to start bulk testing of CPAN modules with these
options turned on?

It strikes me that it would be a fun and relatively simple task for the
kinds of folks who like to make CI systems, to build some kind of
differential test mechanism that can take a CPAN module, try testing it
against two different perls - one with the interesting build option,
one without - and look for differences in output. I.e. if it fails with
refcounted stack or silent-no-taint, but passes without, that would be
an interesting thing to report.

Is this the sort of thing someone wants to look into?

--
Paul "LeoNerd" Evans

leonerd@leonerd.org.uk | https://metacpan.org/author/PEVANS
http://www.leonerd.org.uk/ | https://www.tindie.com/stores/leonerd/
Re: Automated Smoke Testing of refcounted stack, silent_no_taint, etc.. [ In reply to ]
Hi there,

On Mon, 23 Oct 2023, Paul "LeoNerd" Evans wrote:

> We've accumulated a couple of interesting build-time options that might
> be the cause of lots of exciting CPAN module failures - refcounted
> stack, and silent-no-taint.
>
> Do we have any way to start bulk testing of CPAN modules with these
> options turned on?
> ...

Doesn't cpantesters.org already have something like this?

--

73,
Ged.
Re: Automated Smoke Testing of refcounted stack, silent_no_taint, etc.. [ In reply to ]
I can take a look into helping. It wouldn't be much of a challenge for me
to setup the build scripts that I've got going for
https://quay.io/repository/simcop2387/perl-debug-containers to include
those other options as appropriate and I've been planning on taking those
containers and setting up some smokers based on top of them to leave
running around all my random systems. (eventually I'll also expand this to
multiple other CPU ISAs but that's still needing some tuits).

On Mon, Oct 23, 2023 at 9:00?AM Paul "LeoNerd" Evans <leonerd@leonerd.org.uk>
wrote:

> We've accumulated a couple of interesting build-time options that might
> be the cause of lots of exciting CPAN module failures - refcounted
> stack, and silent-no-taint.
>
> Do we have any way to start bulk testing of CPAN modules with these
> options turned on?
>
> It strikes me that it would be a fun and relatively simple task for the
> kinds of folks who like to make CI systems, to build some kind of
> differential test mechanism that can take a CPAN module, try testing it
> against two different perls - one with the interesting build option,
> one without - and look for differences in output. I.e. if it fails with
> refcounted stack or silent-no-taint, but passes without, that would be
> an interesting thing to report.
>
> Is this the sort of thing someone wants to look into?
>
> --
> Paul "LeoNerd" Evans
>
> leonerd@leonerd.org.uk | https://metacpan.org/author/PEVANS
> http://www.leonerd.org.uk/ | https://www.tindie.com/stores/leonerd/
>
Re: Automated Smoke Testing of refcounted stack, silent_no_taint, etc.. [ In reply to ]
On Tue, 24 Oct 2023 20:15:23 -0400
Ryan Voots <simcop2387@simcop2387.info> wrote:

> It wouldn't be much of a challenge for me
> to setup the build scripts that I've got going for
> https://quay.io/repository/simcop2387/perl-debug-containers to include
> those other options as appropriate

Well it's a little bit more than that. You need to do the various
tests with the various perl options as a first step, yes, but then
additionally it's about detecting that two otherwise-identical builds
of the same version of the module with the same dependencies, differed
in output simply because of the RC stack / taint / etc.. perl build
options, and report *that* as a bug.

I.e. it's not just about looking for FAIL, it's about looking for the
difference between a PASS and a FAIL caused by those perl configure
options.

You then need to do a bit of duplicate-suppression. Once *a* module
appears to have one of these differential failures, you want to skip
testing anything for which that module is a dependency, as all of those
will be guaranteed failures too now.

--
Paul "LeoNerd" Evans

leonerd@leonerd.org.uk | https://metacpan.org/author/PEVANS
http://www.leonerd.org.uk/ | https://www.tindie.com/stores/leonerd/
Re: Automated Smoke Testing of refcounted stack, silent_no_taint, etc.. [ In reply to ]
On Mon, Oct 23, 2023 at 02:00:18PM +0100, Paul "LeoNerd" Evans wrote:
> We've accumulated a couple of interesting build-time options that might
> be the cause of lots of exciting CPAN module failures - refcounted
> stack, and silent-no-taint.

I suspect PERL_RC_STACK isn't ready for mass CPAN testing yet.
I already have a list of distributions I know don't pass under that build
option. Once I've investigated those, I'll have a clearer idea of the
scope of the issue - whether perl just needs some tweaks etc.

--
"You may not work around any technical limitations in the software"
-- Windows Vista license
Re: Automated Smoke Testing of refcounted stack, silent_no_taint, etc.. [ In reply to ]
On Wed, Oct 25, 2023 at 6:54?AM Paul "LeoNerd" Evans <leonerd@leonerd.org.uk>
wrote:

> On Tue, 24 Oct 2023 20:15:23 -0400
> Ryan Voots <simcop2387@simcop2387.info> wrote:
>
> > It wouldn't be much of a challenge for me
> > to setup the build scripts that I've got going for
> > https://quay.io/repository/simcop2387/perl-debug-containers to include
> > those other options as appropriate
>
> Well it's a little bit more than that. You need to do the various
> tests with the various perl options as a first step, yes, but then
> additionally it's about detecting that two otherwise-identical builds
> of the same version of the module with the same dependencies, differed
> in output simply because of the RC stack / taint / etc.. perl build
> options, and report *that* as a bug.
>
> I.e. it's not just about looking for FAIL, it's about looking for the
> difference between a PASS and a FAIL caused by those perl configure
> options.
>
> You then need to do a bit of duplicate-suppression. Once *a* module
> appears to have one of these differential failures, you want to skip
> testing anything for which that module is a dependency, as all of those
> will be guaranteed failures too now.
>

This is actually what one of the things I did for my old setup with
the @INC changes way back when. So that part is already understandable.
That said I need to finish the rewrite of that because the original
creation was so incredibly fragile that I didn't want to try doing it again.


> --
> Paul "LeoNerd" Evans
>
> leonerd@leonerd.org.uk | https://metacpan.org/author/PEVANS
> http://www.leonerd.org.uk/ | https://www.tindie.com/stores/leonerd/
>
Re: Automated Smoke Testing of refcounted stack, silent_no_taint, etc.. [ In reply to ]
On 23/10/2023 15:24, G.W. Haywood via perl5-porters wrote:
> On Mon, 23 Oct 2023, Paul "LeoNerd" Evans wrote:
>> We've accumulated a couple of interesting build-time options that might
>> be the cause of lots of exciting CPAN module failures - refcounted
>> stack, and silent-no-taint.
>>
>> Do we have any way to start bulk testing of CPAN modules with these
>> options turned on?
>> ...
>
> Doesn't cpantesters.org already have something like this?

My apologies for the late reply, and yes, it does. Me!

Since 5.38.0 was released I've been testing everything uploaded to the
CPAN (and all their dependencies, of course) with a normal 5.38.0 build,
one with NO_TAINT, and one with SILENT_NO_TAINT.

CPAN::Reporter needs a patch for any such funky option, so that it can
keep track of duplicate reports correctly:
https://github.com/cpan-testers/CPAN-Reporter/pull/103

but provided any new funky option's state is exposed in %Config adding
support for it will be pretty simple.

--
David Cantrell