git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* Re: [BUG] More on t5562 hangs randomly in subtests 6,8 and 13 in 2.21.0-rc0
@ 2019-02-13 15:16 randall.s.becker
  2019-02-13 17:40 ` Max Kirillov
  0 siblings, 1 reply; 6+ messages in thread
From: randall.s.becker @ 2019-02-13 15:16 UTC (permalink / raw)
  To: 'Git List'; +Cc: max

On 2019-02-13, Max Kirillov, wrote:
>On Mon, Feb 11, 2019 at 11:59:00AM -0500, Randall S. Becker wrote:
>> Hi All,
>> 
>> I have localized the hang in t5562 (previous thread) to the
>> invoke-with-content-length.pl script.
>
>I have yet to look at it more closely, but there have been
>one case of misbehavior due to unintended reuse of output file (see
>https://public-inbox.org/git/20181119101535.16538-1-carenas@gmail.com/ )
>Could your case be somehow related to it?

I don't think the lack of curl is an issue (one thing mentioned in the
thread), as curl works fine. We are on 7.57.0.

As far as the unintended reuse of the output file, and issues with pipes,
yes, the NonStop is very sensitive to complex use of pipes and much of the
compatibility issues we have had relate to those (usually Linux-specific
pipe assumptions). That is where I have been looking when trying to debug
this situation (not yet found anything). This could very well be directly
related.

Regards,
Randall


^ permalink raw reply	[flat|nested] 6+ messages in thread
* [BUG] More on t5562 hangs randomly in subtests 6,8 and 13 in 2.21.0-rc0
@ 2019-02-11 16:59 Randall S. Becker
  2019-02-13  4:30 ` Max Kirillov
  0 siblings, 1 reply; 6+ messages in thread
From: Randall S. Becker @ 2019-02-11 16:59 UTC (permalink / raw)
  To: git; +Cc: max

Hi All,

I have localized the hang in t5562 (previous thread) to the
invoke-with-content-length.pl script. At least on NonStop, what happens is
that the perl process hangs waiting for close($out) to complete whether
explicitly or implicitly (if the call is removed). The trace for the perl
process shows it hung at Perl_io_close (the platform's trace anyway). My
interpretation is that the reading process is still around but is no longer
reading on that pipe. If any of the processes hanging around are killed, the
structure unwinds. However, when some of the tests are run, git-http-backend
remains running after subtest 6 and/or 8 runs even if that subtest does not
hang. The presence of other git-http-backend processes seems to interfere
with subsequent tests, and if you run tests individually, subtests 6,8, and
13 consistently pass. Strangely, if a bunch of print statements are added to
another terminal explicitly, the test works consistently, so this is
sounding a bit either like a race condition or flushes are not being handled
consistently although the code appears to handle the latter case.

Simply killing old git-http-backend and/or perl processes does not make a
difference so the race may involve test contents, but I can't make that
determination. There is no correlation with system load.

That's as far as I have been able to analyze the situation at this stage.
I've CC'd the author to see whether there might be some perspective that can
come in here to help out.

This test has broken our CI process for git on NonStop, because of the hang,
so it's rather important to us to get this resolved before the official
2.21.0.

Still hoping for help on this issue,
Randall



^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2019-02-18 20:14 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-13 15:16 [BUG] More on t5562 hangs randomly in subtests 6,8 and 13 in 2.21.0-rc0 randall.s.becker
2019-02-13 17:40 ` Max Kirillov
2019-02-13 18:20   ` Randall S. Becker
2019-02-18 20:14   ` Johannes Schindelin
  -- strict thread matches above, loose matches on Subject: below --
2019-02-11 16:59 Randall S. Becker
2019-02-13  4:30 ` Max Kirillov

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).