Re: [perl #129888] null ptr deref, segfault in Perl_do_aexec5 (doio.c:1595)

The globals that are causing this problem don't need to be global at all.
They're only managing the freeing of that memory, and I reckon we can do
better by using the scope stack to arrange freeing.  I've implemented this
on the branch zefram/smoke-me/exec_args.  It fixes the original test case
on Unix.  However, there's a bunch of platform-specific code in this area,
so this needs broader testing.  It also needs broad testing to make sure
the scope stack arrangement actually achieves correct memory management,
for example around vfork and Windows's simulated fork.

-zefram
0
zefram
12/6/2017 9:37:50 PM
perl.perl5.porters 46814 articles. 0 followers. Follow

9 Replies
13 Views

Similar Articles

[PageSpeed] 28

On 12/06/2017 04:37 PM, Zefram wrote:
> The globals that are causing this problem don't need to be global at all.
> They're only managing the freeing of that memory, and I reckon we can do
> better by using the scope stack to arrange freeing.  I've implemented this
> on the branch zefram/smoke-me/exec_args. 

For whatever benefit there might be of creating a branch for 
smoke-testing, you probably should rename it:

smoke-me/zefram/exec_args

That way (a) in the rare case of someone (i.e., TonyC) who has set up 
automated smoke-testing set up for non-blead branches, it gets 
recognized and run; and (b) its results get tabulated at 
perl.develop-help.com (e.g., 
http://perl.develop-help.com/?b=smoke-me%2Fkhw-locale).

Thank you very much.
Jim Keenan
0
jkeenan
12/7/2017 2:40:15 AM
James E Keenan wrote:
>For whatever benefit there might be of creating a branch for smoke-testing,
>you probably should rename it:

Really?  I had got the impression that the "smoke-me" segment could be
anywhere in the name.  I see that perlgit(1) doesn't actually say what the
rules are.  Could someone authoritative please give us a regexp defining
what constitutes a smoke-me branch name?  And put it in perlgit(1).

-zefram
0
zefram
12/7/2017 7:52:53 PM
On 12/07/2017 02:52 PM, Zefram wrote:
> James E Keenan wrote:
>> For whatever benefit there might be of creating a branch for smoke-testing,
>> you probably should rename it:
> 
> Really?  I had got the impression that the "smoke-me" segment could be
> anywhere in the name.  I see that perlgit(1) doesn't actually say what the
> rules are.  Could someone authoritative please give us a regexp defining
> what constitutes a smoke-me branch name?  And put it in perlgit(1).
> 

Zefram:

I've had a commit bit since 2012.  How many more years do I have to 
serve before you consider me "authoritative"?

For what it's worth, all three of the examples of a smoke-me branch 
presented in perlgit follow the "smoke-me/<committer>/<branch_name>" 
convention.

In addition, if you go to http://perl.develop-help.com/, click on the 
drop-down that says 'blead', then click on "I want an older branch" you 
will see that all the branches with Tony tracks on that site begin with 
'blead', 'maint' or 'smoke-me'.  The <committer> part appears to be 
optional, but 'smoke-me' always appears first.

Thank you very much.
Jim Keenan
0
jkeenan
12/8/2017 3:44:18 AM
James E Keenan wrote:
>I've had a commit bit since 2012.  How many more years do I have to serve
>before you consider me "authoritative"?

By "authoritative" I meant someone who maintains the smoke-me automation,
and so can look at the code and tell us first-hand what the said
automation actually does.  It's about the role one plays, not about
expertise, seniority, or other qualities.

-zefram
0
zefram
12/8/2017 5:31:43 AM
--94eb2c197e0a4e8328055fdce87e
Content-Type: text/plain; charset="UTF-8"

On Thu, Dec 7, 2017 at 11:31 PM, Zefram <zefram@fysh.org> wrote:

> James E Keenan wrote:
> >I've had a commit bit since 2012.  How many more years do I have to serve
> >before you consider me "authoritative"?
>
> By "authoritative" I meant someone who maintains the smoke-me automation,
> and so can look at the code and tell us first-hand what the said
> automation actually does.  It's about the role one plays, not about
> expertise, seniority, or other qualities.
>
> -zefram
>

I use this command on my systems:
git for-each-ref --count=3 --sort=-committerdate refs/heads/smoke-me
--format='%(refname:short)'

--94eb2c197e0a4e8328055fdce87e
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_extra"><div class=3D"gmail_quote">On T=
hu, Dec 7, 2017 at 11:31 PM, Zefram <span dir=3D"ltr">&lt;<a href=3D"mailto=
:zefram@fysh.org" target=3D"_blank">zefram@fysh.org</a>&gt;</span> wrote:<b=
r><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;borde=
r-left:1px solid rgb(204,204,204);padding-left:1ex">James E Keenan wrote:<b=
r>
&gt;I&#39;ve had a commit bit since 2012.=C2=A0 How many more years do I ha=
ve to serve<br>
&gt;before you consider me &quot;authoritative&quot;?<br>
<br>
By &quot;authoritative&quot; I meant someone who maintains the smoke-me aut=
omation,<br>
and so can look at the code and tell us first-hand what the said<br>
automation actually does.=C2=A0 It&#39;s about the role one plays, not abou=
t<br>
expertise, seniority, or other qualities.<br>
<span class=3D"gmail-HOEnZb"><font color=3D"#888888"><br>
-zefram<br>
</font></span></blockquote></div><br></div>I use this command on my systems=
:<br>git for-each-ref --count=3D3 --sort=3D-committerdate refs/heads/smoke-=
me --format=3D&#39;%(refname:short)&#39;<br><div><br></div></div>

--94eb2c197e0a4e8328055fdce87e--
0
carlos
12/8/2017 11:53:58 PM

On 12/08/2017 05:44 AM, James E Keenan wrote:
> On 12/07/2017 02:52 PM, Zefram wrote:
>> James E Keenan wrote:
>>> For whatever benefit there might be of creating a branch for
>>> smoke-testing,
>>> you probably should rename it:
>>
>> Really?  I had got the impression that the "smoke-me" segment could be
>> anywhere in the name.  I see that perlgit(1) doesn't actually say
>> what the
>> rules are.  Could someone authoritative please give us a regexp defining
>> what constitutes a smoke-me branch name?  And put it in perlgit(1).
>>
>
> Zefram:
>
> I've had a commit bit since 2012.  How many more years do I have to
> serve before you consider me "authoritative"?

I think the intention here is for "definitive," as in "What does the
darn regexp looks like, so we can know for sure."

Funny story: I asked my brother for his car's code. His partner gave me
a different code. He jumped up and said "No, that's the wrong code. You
swapped two digits!" She replied with "This is the number I use every
day." And it so happens that both of the numbers indeed work.[1]

The regexp could be /^smoke-me/ or /smoke-me/. Either case, it would be
good to know which it is. Still, I support your concern for having
uniformity, regardless of where you put the "smoke-me".
0
xsawyerx
12/11/2017 12:59:57 PM
On Mon, Dec 11, 2017 at 6:59 AM, Sawyer X <xsawyerx@gmail.com> wrote:
>
> On 12/08/2017 05:44 AM, James E Keenan wrote:
>> On 12/07/2017 02:52 PM, Zefram wrote:
>>> I had got the impression that the "smoke-me" segment could be
>>> anywhere in the name.  I see that perlgit(1) doesn't actually say
>>> what the
>>> rules are.  Could someone authoritative please give us a regexp defining
>>> what constitutes a smoke-me branch name?  And put it in perlgit(1).

> The regexp could be /^smoke-me/ or /smoke-me/. Either case, it would be
> good to know which it is. Still, I support your concern for having
> uniformity, regardless of where you put the "smoke-me".

As far as I know the automatic selection of what branch or branches to
smoke is external to Test::Smoke and the use of "smoke-me" in the name
is just a convention to be used in whatever fashion the implementor of
a smoke set-up sees fit.  It's not even necessarily implemented
exactly the same way in every smoke-me set-up (of which there have
never been more than a couple, I think).  And of course there are a
number of smokers that only do blead or only blead and maint and don't
do the smoke-me branches.  I would be happy to discover that there is
more consistency and ready-to-use code for automatic branch selection
than I am aware of, but this is my impression of where we are now.

That said, I've always assumed the convention was that the branch
should start with "smoke-me" and the one example in perlgit does that.
Eyeballing the lengthy list of existing branches at
<https://perl5.git.perl.org/perl.git/heads>  does not turn up any
examples prior to Zefram's that puts the "smoke-me" anywhere but at
the beginning.  In the absence of better information, I'd say we
already have a convention and this is it: "smoke-me" at the beginning.
0
craig
12/11/2017 6:29:54 PM
Carlos Guevara wrote:
>I use this command on my systems:
>git for-each-ref --count=3 --sort=-committerdate refs/heads/smoke-me

Thanks, that makes it clear.  I've renamed my branch to
"smoke-me/zefram/exec_args", and pushed a patch for perlgit.pod.

-zefram
0
zefram
12/11/2017 9:27:08 PM

On 12/11/2017 08:29 PM, Craig A. Berry wrote:
> On Mon, Dec 11, 2017 at 6:59 AM, Sawyer X <xsawyerx@gmail.com> wrote:
>> On 12/08/2017 05:44 AM, James E Keenan wrote:
>>> On 12/07/2017 02:52 PM, Zefram wrote:
>>>> I had got the impression that the "smoke-me" segment could be
>>>> anywhere in the name.  I see that perlgit(1) doesn't actually say
>>>> what the
>>>> rules are.  Could someone authoritative please give us a regexp defining
>>>> what constitutes a smoke-me branch name?  And put it in perlgit(1).
>> The regexp could be /^smoke-me/ or /smoke-me/. Either case, it would be
>> good to know which it is. Still, I support your concern for having
>> uniformity, regardless of where you put the "smoke-me".
> [...]
>
> That said, I've always assumed the convention was that the branch
> should start with "smoke-me" and the one example in perlgit does that.
> Eyeballing the lengthy list of existing branches at
> <https://perl5.git.perl.org/perl.git/heads>  does not turn up any
> examples prior to Zefram's that puts the "smoke-me" anywhere but at
> the beginning.  In the absence of better information, I'd say we
> already have a convention and this is it: "smoke-me" at the beginning.

Agreed.
0
xsawyerx
12/12/2017 9:15:38 AM
Reply: