plugins: don't handle signal/notify if TTY
In order to solve the "double notification" issue (see: https://github.com/docker/cli/commit/ef5e5fa03f0603f48678bfd7039c5b8121d98df1) without running the plugin process under a new pgid (see: https://github.com/moby/moby/issues/47073) we instead check if we're attached to a TTY, and if so skip signalling the plugin process since it will already be signalled. Signed-off-by: Laura Brehm <laurabrehm@hey.com>
This commit is contained in:
@@ -241,6 +241,11 @@ func tryPluginRun(dockerCli command.Cli, cmd *cobra.Command, subcommand string,
|
||||
go func() {
|
||||
retries := 0
|
||||
for range signals {
|
||||
if dockerCli.Out().IsTerminal() {
|
||||
// running attached to a terminal, so the plugin will already
|
||||
// receive signals due to sharing a pgid with the parent CLI
|
||||
continue
|
||||
}
|
||||
if conn != nil {
|
||||
if err := conn.Close(); err != nil {
|
||||
_, _ = fmt.Fprintf(dockerCli.Err(), "failed to signal plugin to close: %v\n", err)
|
||||
|
||||
Reference in New Issue
Block a user