diff mbox series

[Breakage] 2.22.0-rc1 - t0211-trace2-perf.sh

Message ID 019e01d50fc2$324bd400$96e37c00$@nexbridge.com (mailing list archive)
State New, archived
Headers show
Series [Breakage] 2.22.0-rc1 - t0211-trace2-perf.sh | expand

Commit Message

Randall S. Becker May 21, 2019, 10:44 a.m. UTC
Hi All,

On the NonStop platform, the entire test for t0211-trace2-perf.sh does not
work. The first case, in verbose, reports:

We get errors when the script is run:

Use of uninitialized value within @tokens in pattern match (m//) at
t0211/scrub_perf.perl line 29, <> line 1.

Initialized empty Git repository in /home/git/git/t/trash
directory.t0211-trace2-perf/.git/
expecting success:
        test_when_finished "rm trace.perf actual expect" &&
        GIT_TR2_PERF="$(pwd)/trace.perf" test-tool trace2 001return 0 &&
        perl "$TEST_DIRECTORY/t0211/scrub_perf.perl" <trace.perf >actual &&
        cat >expect <<-EOF &&
                d0|main|version|||||$V
                d0|main|start||_T_ABS_|||_EXE_ trace2 001return 0
                d0|main|cmd_name|||||trace2 (trace2)
                d0|main|exit||_T_ABS_|||code:0
                d0|main|atexit||_T_ABS_|||code:0
        EOF
        test_cmp expect actual


Our perl is v5.24.0 and this cannot be upgraded.

Thoughts?

Randall

-- Brief whoami:
 NonStop developer since approximately 211288444200000000
 UNIX developer since approximately 421664400
-- In my real life, I talk too much.

Comments

Ævar Arnfjörð Bjarmason May 21, 2019, 11:49 a.m. UTC | #1
On Tue, May 21 2019, Randall S. Becker wrote:

> Hi All,
>
> On the NonStop platform, the entire test for t0211-trace2-perf.sh does not
> work. The first case, in verbose, reports:
>
> We get errors when the script is run:
>
> Use of uninitialized value within @tokens in pattern match (m//) at
> t0211/scrub_perf.perl line 29, <> line 1.

Could you intrument that test top "cat" the raw trace.perf you get?

That's some bug in the perl side of the parsing.

But the real bug looks like the trace2 code unconditionally depending on
pthreads, even though NonStop has 'NO_PTHREADS = UnfortunatelyYes'
defined.

That's why we get this th%d:unknown stuff, the trace2/tr2_tls.c code
using pthreads is failing with whatever pthread-bizarro NonStop has.

That seems easy enough to "fix", just always fake up "main" if we don't
have pthreads, but perhaps Jeff H. has another opinion on it...

> Initialized empty Git repository in /home/git/git/t/trash
> directory.t0211-trace2-perf/.git/
> expecting success:
>         test_when_finished "rm trace.perf actual expect" &&
>         GIT_TR2_PERF="$(pwd)/trace.perf" test-tool trace2 001return 0 &&
>         perl "$TEST_DIRECTORY/t0211/scrub_perf.perl" <trace.perf >actual &&
>         cat >expect <<-EOF &&
>                 d0|main|version|||||$V
>                 d0|main|start||_T_ABS_|||_EXE_ trace2 001return 0
>                 d0|main|cmd_name|||||trace2 (trace2)
>                 d0|main|exit||_T_ABS_|||code:0
>                 d0|main|atexit||_T_ABS_|||code:0
>         EOF
>         test_cmp expect actual
>
> --- expect      2019-05-21 10:38:47 +0000
> +++ actual      2019-05-21 10:38:47 +0000
> @@ -1,5 +1,5 @@
> -d0|main|version|||||2.22.0.rc1
> -d0|main|start||_T_ABS_|||_EXE_ trace2 001return 0
> -d0|main|cmd_name|||||trace2 (trace2)
> -d0|main|exit||_T_ABS_|||code:0
> -d0|main|atexit||_T_ABS_|||code:0
> +d0|th01:unknown|version|||||2.22.0.rc1
> +d0|th02:unknown|start||_T_ABS_|||_EXE_ trace2 001return 0
> +d0|th03:unknown|cmd_name|||||trace2 (trace2)
> +d0|th04:unknown|exit||_T_ABS_|||code:0
> +d0|th06:unknown|atexit||_T_ABS_|||code:0
>
> Our perl is v5.24.0 and this cannot be upgraded.
>
> Thoughts?
>
> Randall
>
> -- Brief whoami:
>  NonStop developer since approximately 211288444200000000
>  UNIX developer since approximately 421664400
> -- In my real life, I talk too much.
Duy Nguyen May 21, 2019, 11:59 a.m. UTC | #2
On Tue, May 21, 2019 at 6:51 PM Ævar Arnfjörð Bjarmason
<avarab@gmail.com> wrote:
> But the real bug looks like the trace2 code unconditionally depending on
> pthreads, even though NonStop has 'NO_PTHREADS = UnfortunatelyYes'
> defined.
>
> That's why we get this th%d:unknown stuff, the trace2/tr2_tls.c code
> using pthreads is failing with whatever pthread-bizarro NonStop has.
>
> That seems easy enough to "fix", just always fake up "main" if we don't
> have pthreads, but perhaps Jeff H. has another opinion on it...

That's not NonStop. thread-utils.h (re)defines pthread_getspecific()
to return NULL when NO_PTHREADS, which triggers this I think.
Randall S. Becker May 21, 2019, 1:07 p.m. UTC | #3
On May 21, 2019 07:59, Duy Nguyen wrote:
> On Tue, May 21, 2019 at 6:51 PM Ævar Arnfjörð Bjarmason
> <avarab@gmail.com> wrote:
> > But the real bug looks like the trace2 code unconditionally depending
> > on pthreads, even though NonStop has 'NO_PTHREADS =
> UnfortunatelyYes'
> > defined.
> >
> > That's why we get this th%d:unknown stuff, the trace2/tr2_tls.c code
> > using pthreads is failing with whatever pthread-bizarro NonStop has.
> >
> > That seems easy enough to "fix", just always fake up "main" if we
> > don't have pthreads, but perhaps Jeff H. has another opinion on it...
> 
> That's not NonStop. thread-utils.h (re)defines pthread_getspecific() to return
> NULL when NO_PTHREADS, which triggers this I think.

The platform *is* NonStop, which has SPT and PUT pthreads, but we have never been able to make them work with git, so did not include them in the configuration.
Jeff Hostetler May 21, 2019, 4:55 p.m. UTC | #4
On 5/21/2019 9:07 AM, Randall S. Becker wrote:
> On May 21, 2019 07:59, Duy Nguyen wrote:
>> On Tue, May 21, 2019 at 6:51 PM Ævar Arnfjörð Bjarmason
>> <avarab@gmail.com> wrote:
>>> But the real bug looks like the trace2 code unconditionally depending
>>> on pthreads, even though NonStop has 'NO_PTHREADS =
>> UnfortunatelyYes'
>>> defined.
>>>
>>> That's why we get this th%d:unknown stuff, the trace2/tr2_tls.c code
>>> using pthreads is failing with whatever pthread-bizarro NonStop has.
>>>
>>> That seems easy enough to "fix", just always fake up "main" if we
>>> don't have pthreads, but perhaps Jeff H. has another opinion on it...
>>
>> That's not NonStop. thread-utils.h (re)defines pthread_getspecific() to return
>> NULL when NO_PTHREADS, which triggers this I think.
> 
> The platform *is* NonStop, which has SPT and PUT pthreads, but we have never been able to make them work with git, so did not include them in the configuration.
> 

I just reproduced this on my Mac with NO_PTHREADS defined.
I'll post a fix shortly.

Jeff
diff mbox series

Patch

--- expect      2019-05-21 10:38:47 +0000
+++ actual      2019-05-21 10:38:47 +0000
@@ -1,5 +1,5 @@ 
-d0|main|version|||||2.22.0.rc1
-d0|main|start||_T_ABS_|||_EXE_ trace2 001return 0
-d0|main|cmd_name|||||trace2 (trace2)
-d0|main|exit||_T_ABS_|||code:0
-d0|main|atexit||_T_ABS_|||code:0
+d0|th01:unknown|version|||||2.22.0.rc1
+d0|th02:unknown|start||_T_ABS_|||_EXE_ trace2 001return 0
+d0|th03:unknown|cmd_name|||||trace2 (trace2)
+d0|th04:unknown|exit||_T_ABS_|||code:0
+d0|th06:unknown|atexit||_T_ABS_|||code:0