hashicorp/go-plugin

Revision 1b0 onward fails to work with vault plugin system

broamski opened this issue · 8 comments

Hey there! When authoring a Vault plugin, if I vendor with any recent version of vault and with revision 1b0f542 or onward of this plugin, the plugin fails to properly communicate with vault.

You can test this by cloning https://github.com/hashicorp/vault-auth-plugin-example, removing the existing vendoring (vendor and Gopkg*) and starting from scratch with this Gopkg.toml:

[[constraint]]
  name = "github.com/hashicorp/vault"
  version = "=1.0.1"

[[override]]
  name = "github.com/hashicorp/go-plugin"
  revision = "1b0f5429182b3157c6f22301a77fde89bab6dbd7"

Failing back to any previous revision and the plugin works as expected. It would appear that the Dial function is failing in:

return nil, fmt.Errorf("timeout waiting for connection info")

I'm starting here in the event it's not strictly related to vault. Thanks!

HI. I've come to this issue on my project as well. Looks like some weird dependency problem.

I've managed to work this around by running
cp -Rf $GOPATH/src/github.com/hashicorp/vault/vendor/github.com/hashicorp/go-plugin vendor/github.com/hashicorp/ in plugin project workdir after dep ensure. The repository at GOPATH has release 679c09e60f9a9dd91718cbca5db171acd3d93931.

@jbardin is it expected after your recent refactoring that current go-plugin would be incompatible with prior versions?

Nope, it wasn't expected, as we did the same in terraform.

There however was some unexpected issues with the proto namespacing which was being discussed, though nothing has landed from that in the plugin package. I'll take a look into it.

@broamski @Albibek can you test with #97 ?

It works on my side now.

@jefferai @Albibek do I understand correctly that #97 fixed this bug, thus this ticket can be closed?

Not sure, what solved it, but it did.

Great, thanks!