boot2podman / machine

Apache License 2.0
120 stars 16 forks source link

Bug: Error: client must use upgraded connection to attach #16

Closed cmoulliard closed 4 years ago

cmoulliard commented 5 years ago

Issue

When we execute the following podman-remote command to run a busybox container, we get this error

podman-remote run busybox echo hello world
ERRO[0000] unable to make temp dir /run/user/-1
Error: client must use upgraded connection to attach

Info

podman-remote -v
podman-remote version 1.4.5-dev
afbjorklund commented 5 years ago

I saw this myself, but I have no idea what error is or how to fix ? Maybe upgrading varlink would help ?

Anyway, this seems like upstream issue. It works fine over regular ssh.

afbjorklund commented 4 years ago

Upgrading didn't help, unfortunately.

Error: client must use upgraded connection to attach

Seems to be an upstream limitation?

tc@box:~$ varlink --version
18

$ podman-remote version
Client:
Version:            1.6.0-dev
RemoteAPI Version:  1
Go Version:         go1.12.10
OS/Arch:            linux/amd64

Service:
Version:            1.6.0-dev
RemoteAPI Version:  1
Go Version:         go1.12.10
OS/Arch:            linux/amd64
cmoulliard commented 4 years ago

We still get the same error even using podman-version version 1.6.0

podman-remote -v
podman-remote version 1.6.0-dev
podman-remote run busybox echo hello world
Error: client must use upgraded connection to attach

I can't yet locally upgrade podman as brew cask is still pointing to 1.5.1 - https://github.com/Homebrew/homebrew-cask/blob/master/Casks/podman.rb

afbjorklund commented 4 years ago

I opened up https://github.com/containers/libpod/issues/4138 with some more details.

Basically I think it only works over ssh (not bridge), and it seems like the syntax is wrong on Windows (but haven’t tested that part myself)

cmoulliard commented 4 years ago

As the ticket is closed on containers/libpod, what do you then suggest to do for mac users to resolve this issue ?

afbjorklund commented 4 years ago

As far as I know, the issue still remains (upstream). I fixed the variables and stuff, but haven’t revisited the main issue here...

The workaround is to use ssh, rather than try to use interactive varlink.

afbjorklund commented 4 years ago

Tested with the new 0.25 release (podman 1.7.1-dev)

There is some difference in how varlink is being called.

This works (podman-machine env):

  Connection: ssh -p 40164 -T -i /home/anders/.local/machine/machines/box/id_rsa -q
    -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@127.0.0.1 --
    varlink -A \'podman --log-level=debug varlink \\\$VARLINK_ADDRESS\' bridge
$ podman-remote run -it busybox
/ #

This does not (podman-machine env --varlink)

  Connection: /usr/bin/ssh -F /dev/null -o ConnectionAttempts=3 -o ConnectTimeout=10
    -o ControlMaster=no -o ControlPath=none -o LogLevel=quiet -o PasswordAuthentication=no
    -o ServerAliveInterval=60 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null
    tc@127.0.0.1 -o IdentitiesOnly=yes -i /home/anders/.local/machine/machines/box/id_rsa
    -p 40164 sudo varlink bridge
$ podman-remote run -it busybox
Error: client must use upgraded connection to attach

Maybe we can pass that -A parameter ?

afbjorklund commented 4 years ago

Yes, adding the -A parameter did the trick.

Fixed in 23fdcc2d4905193c1e31807f783087c0918c7517

afbjorklund commented 4 years ago

Closed in v0.17