[prev in list] [next in list] [prev in thread] [next in thread] 

List:       git
Subject:    RE: [Patch 1/3] connect.c: add nonstopssh variant to the sshVariant set.
From:       "Randall S. Becker" <rsbecker () nexbridge ! com>
Date:       2021-04-30 17:32:08
Message-ID: 012901d73de6$c25a4ff0$470eefd0$ () nexbridge ! com
[Download RAW message or body]

On April 30, 2021 1:17 PM, Elijah Newren wrote:
> On Fri, Apr 30, 2021 at 9:38 AM Randall S. Becker <rsbecker@nexbridge.com>
> wrote:
> > 
> > On April 30, 2021 12:25 PM, Elijah Newren wrote:
> > > On Fri, Apr 30, 2021 at 7:58 AM Randall S. Becker
> > > <rsbecker@nexbridge.com>
> > > wrote:
> > > > 
> > > > From ba4beb8ed0dff67ae6b95692d346adce346e2871 Mon Sep 17 00:00:00
> > > 2001
> > > > From: "Randall S. Becker" <rsbecker@nexbridge.com>
> > > > Date: Fri, 30 Apr 2021 09:56:09 -0400
> > > > Subject: [Patch 1/3] connect.c: add nonstopssh variant to the sshVariant set.
> > > > 
> > > > This enhancement allows the NonStop SSH subsystem to be supported
> > > > by git without the need of a wrapper script. The command arguments
> > > > for the platform SSH client in /G/system/zssh/sshoss are
> > > > constructed based on optional supplied environment variables
> > > > SSH2_PROCESS_NAME (system defined), SSH_SUPPRESS_QUIET, and
> SSH_SUPPRESS_BANNER.
> > > 
> > > Before introducing 3 new special environment variables, I think this
> > > commit message should explain why you can't just use
> > > 
> > > GIT_SSH_COMMAND="/G/system/zssh/sshoss -Z -Q -S"
> > 
> > No, it would be GIT_SSH_COMMAND='/G/system/zssh/sshoss -Z -Q -S $ZSSH0'
> and that does not work correctly in the current git code base.
> 
> Is the problem that $ZSSH0 may contain spaces, or that $ZSSH0 is expected to
> change over time and you don't want to have to re-run
> 
> GIT_SSH_COMMAND="/G/system/zssh/sshoss -Z -Q -S $ZSSH0"
> 
> each time?
> 
> > > particularly since GIT_SSH_COMMAND was introduced specifically so
> > > people wouldn't have to create wrapper scripts to pass to GIT_SSH.
> > 
> > Going back through the archive to why this is needed:
> > https://public-inbox.org/git/008101d4f3db$56c20410$04460c30$@nexbridge
> > .com/
> > 
> > The SSH2_PROCESS_NAME is a system environment variable, not something I
> am introducing, that specifies the name of the SSH process. It's format is
> [\NODE.]$NAME, which causes shell to blank it out. A wrapper script is currently
> mandatory on this platform.
> > 
> > I have been looking for a solution since that thread.
> 
> Ah, so it's the case that $ZSSH0 changes for you, but is set somewhere by the
> system and you don't want to have to redefine GIT_SSH_COMMAND each time
> you log into some box.
> 
> At a minimum, this explanation should be included in the commit message here,
> otherwise the problem you're trying to address won't be understood by
> reviewers.  It wasn't at all clear to me from your cover letter or this commit,
> and I even had trouble parsing it out of the other thread you linked to.  Only this
> above paragraph about SSH2_PROCESS_NAME and its value on your system
> explain it. (It's still hard to tell what from your "[\NODE.]$NAME" is literal text
> and what is meant to be replaced, though, it might be useful to have an example
> of the literal value of SSH2_PROCESS_NAME on some random node in the
> explanation as well.)

SSH2_PROCESS_NAME tends not to change much, although it is bound to a set of subnets. \
Example values are $ZSSH0 or \NODE.$ZSSH0, depending on whether the system admit \
decides to qualify the name with it's cluster host name, since you could use a \
different process on a different node. The name may change between repositories - so \
going to github.com would commonly have a different process name than a local \
enterprise server. I really would consider putting this in .gitconfig so it can be \
repository-specific, but I'd prefer to see whether this change has legs before doing \
that.

There are use cases on the platform where, from the user's perspective, this value \
may be random. It is set on an inbound SSH session by the server and provided to the \
shell in that variable. Users will either use the system supplied process (somewhat \
QoS-related) or will select their own.

Do you have suggestions about the other two settings? I don't like the environment \
variable approach, but passing switches through git seems pretty heavy to me.

I will do what I can to expand the discussion in the connect.c commit on V2.

-Randall


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic