git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Randall S. Becker" <rsbecker@nexbridge.com>
To: "'Junio C Hamano'" <gitster@pobox.com>
Cc: "'Torsten Bögershausen'" <tboegi@web.de>, git@vger.kernel.org
Subject: RE: [PATCH v2 0/6] Force pipes to flush immediately on NonStop platform
Date: Tue, 23 Jan 2018 15:46:18 -0500	[thread overview]
Message-ID: <007501d3948b$3b81e590$b285b0b0$@nexbridge.com> (raw)
In-Reply-To: <xmqqtvvcigui.fsf@gitster.mtv.corp.google.com>

On January 23, 2018 1:13 PM, Junio C Hamano wrote:
> "Randall S. Becker" <rsbecker@nexbridge.com> writes:
> 
> >> IOW, I do not see it explained clearly why this change is needed on
> >> any single platform---so "that issue may be shared by others, too"
> >> is a bit premature thing for me to listen to and understand, as "that
> >> issue" is quite unclear to me.
> >
> > v4 might be a little better. The issue seems to be specific to NonStop
> > that it's PIPE mechanism needs to have setbuf(pipe,NULL) called for
> > git to be happy.  The default behaviour appears to be different on
> > NonStop from other platforms from our testing. We get hung up waiting
> > on pipes unless this is done.
> 
> I am afraid that that is not a "diagnosis" enough to allow us moving forward.
> We get hung up because...?  When the process that has the other end of
> pipe open exits, NonStop does not close the pipe properly?  Or NonStop
> does not flush the data buffered in the pipe?
> Would it help if a compat wrapper that does setbuf(fd, NULL) immediately
> before closing the fd, or some other more targetted mechanism, is used only
> on NonStop, for example?  Potentially megabytes of data can pass thru a
> pipe, and if the platform bug affects only at the tail end of the transfer,
> marking the pipe not to buffer at all at the beginning is too big a hammer to
> work it around.  With the explanation given so far, this still smells more like
> "we have futzed around without understanding why, and this happens to
> work."  It may be good enough for your purpose of making progress (after
> all, I'd imagine that you'd need to work this around one way or another to
> hunt for and fix more issues on the platform), but it does not sound like "we
> know what the problem is, and this is the best workaround for that", which is
> what we want if it wants to become part of the official codebase.

I am retesting without setbuf(NULL) but this is unlikely to be enlightening. The test cases do not adequately simulate the configuration in which my team originally encountered the problem. This requires a guarantee of the source and destination coming through different logical CPUs. We never encountered the issue in the test suite, only when end users got hold of it. We had two distinct problems, one which was the revent=0 related hang (already solved) and other was a stream flush problem. The two are related but distinct. The platform support group insisted that we should have the setbuf(NULL) in place for interprocess communications in the form used here - I'm worried about losing this, but completely aware that this is far too heavy for other platforms (hence the __TANDEM guard in wrapper.c). If the form of the wrapper should be different, I would be happy to comply.

I have a much longer explanation about the platform message stack structure, but that doesn't belong here. Happy to respond privately if requested.

Cheers,
Randall

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




  reply	other threads:[~2018-01-23 20:46 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-19 17:33 [PATCH v2 0/6] Force pipes to flush immediately on NonStop platform randall.s.becker
2018-01-19 17:34 ` [PATCH v2 0/6] Cover Letter for NonStop Port Patches randall.s.becker
2018-01-19 17:34 ` [PATCH v2 1/6] Bypass GCC attributes on NonStop platform where used randall.s.becker
2018-01-19 19:25   ` Stefan Beller
2018-01-19 20:28   ` Ramsay Jones
2018-01-19 21:20     ` Jeff King
2018-01-19 22:43       ` Ramsay Jones
2018-01-19 22:53         ` Randall S. Becker
2018-01-19 17:34 ` [PATCH v2 2/6] Add tar extract install options override in installation processing randall.s.becker
2018-01-20 12:30   ` René Scharfe
2018-01-20 13:44     ` Randall S. Becker
2018-01-20 14:24       ` René Scharfe
2018-01-20 15:35         ` Randall S. Becker
2018-01-20 20:34           ` Ævar Arnfjörð Bjarmason
2018-01-20 20:52             ` Randall S. Becker
2018-01-19 17:34 ` [PATCH v2 3/6] Define config options required for the HPE NonStop NSX and NSE platforms randall.s.becker
2018-01-19 17:34 ` [PATCH v2 4/6] Force test suite traps to be cleared for NonStop ksh randall.s.becker
2018-01-19 19:55   ` Stefan Beller
2018-01-19 21:27   ` Jeff King
2018-01-19 22:29     ` Randall S. Becker
2018-01-19 23:29       ` Randall S. Becker
2018-01-21  4:07       ` Randall S. Becker
2018-01-19 17:34 ` [PATCH v2 5/6] Bring NonStop platform definitions up to date in git-compat-util.h randall.s.becker
2018-01-19 17:34 ` [PATCH v2 6/6] Add intptr_t and uintptr_t to regcomp.c for NonStop platform randall.s.becker
2018-01-19 19:34 ` [PATCH v2 0/6] Force pipes to flush immediately on " Stefan Beller
2018-01-20 11:10 ` Torsten Bögershausen
2018-01-20 13:23   ` Randall S. Becker
2018-01-22 22:36   ` Junio C Hamano
2018-01-22 22:43     ` Randall S. Becker
2018-01-23 18:13       ` Junio C Hamano
2018-01-23 20:46         ` Randall S. Becker [this message]
2018-01-25  3:42         ` Randall S. Becker

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='007501d3948b$3b81e590$b285b0b0$@nexbridge.com' \
    --to=rsbecker@nexbridge.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=tboegi@web.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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 NNTP newsgroup(s).