Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Help debug message: "received EOF, stopping recv loop" #143

Open
zlesnr opened this issue Apr 29, 2020 · 4 comments · May be fixed by #204
Open

Help debug message: "received EOF, stopping recv loop" #143

zlesnr opened this issue Apr 29, 2020 · 4 comments · May be fixed by #204

Comments

@zlesnr
Copy link

zlesnr commented Apr 29, 2020

Good day,

I'm working on a python plugin that I've been able to verify works as a grpc server to a python client, completely outside of the go-plugin framework.

The issue I'm running into is that before I make any calls against the plugin RPC service, I see the following warning.

[WARN]  stdio: received EOF, stopping recv loop: err="rpc error: code = Unimplemented desc = Method not found!"

However, I've no indication what method is being attempted to know what is not implemented. How can I debug this.

Also note, that even though I see this message, later in my code, I'm able to call the two RCP methods that I expect to work, and they do indeed return the desired results. I though this might be due to health checking against the python plugin, but I implemented it as written in the python example.

Can you give clues as to why this message is showing up or how to debug this? If code samples are required for understanding, I can provide some samples.

@zlesnr zlesnr changed the title Help DEBUG message: "received EOF, stopping recv loop" Help debug message: "received EOF, stopping recv loop" Apr 29, 2020
@liangyuanpeng
Copy link

liangyuanpeng commented May 24, 2020

I also encountered this problem, It confused me

And i just got the b'world'

[root@normal11 grpc]# ./kv put hello world
2020-05-24T20:40:12.437+0800 [DEBUG] plugin: starting plugin: path=/usr/bin/sh args="[sh -c python3 plugin-python/plugin.py]"
2020-05-24T20:40:12.437+0800 [DEBUG] plugin: plugin started: path=/usr/bin/sh pid=25120
2020-05-24T20:40:12.437+0800 [DEBUG] plugin: waiting for RPC address: path=/usr/bin/sh
2020-05-24T20:40:12.765+0800 [DEBUG] plugin: using plugin: version=1
2020-05-24T20:40:12.766+0800 [TRACE] plugin.stdio: waiting for stdio data
2020-05-24T20:40:12.767+0800 [WARN ] plugin.stdio: received EOF, stopping recv loop: err="rpc error: code = Unimplemented desc = Method not found!"

[root@normal11 grpc]# ./kv get hello
2020-05-24T20:40:24.772+0800 [DEBUG] plugin: starting plugin: path=/usr/bin/sh args="[sh -c python3 plugin-python/plugin.py]"
2020-05-24T20:40:24.773+0800 [DEBUG] plugin: plugin started: path=/usr/bin/sh pid=25647
2020-05-24T20:40:24.773+0800 [DEBUG] plugin: waiting for RPC address: path=/usr/bin/sh
2020-05-24T20:40:25.107+0800 [DEBUG] plugin: using plugin: version=1
2020-05-24T20:40:25.109+0800 [TRACE] plugin.stdio: waiting for stdio data
2020-05-24T20:40:25.110+0800 [WARN ] plugin.stdio: received EOF, stopping recv loop: err="rpc error: code = Unimplemented desc = Method not found!"
b'world'

Written from plugin-python


[root@normal11 grpc]# python3 --version
Python 3.6.1

@tzahifadida
Copy link

tzahifadida commented Jul 2, 2020

the python side does not implement
type GRPCStdio_StreamStdioClient interface {
Recv() (*StdioData, error)
grpc.ClientStream
}
Because there is no example of how to do that.
It continues to work though even so.

If someone could provide an example of how to do that on python that would be great

@zlesnr
Copy link
Author

zlesnr commented Jul 2, 2020

I can't remember if we ever overcame this, but I think you'll want to make sure your grpc and protoc are updated to whatever TF is expecting here.

@whybeyoung whybeyoung linked a pull request Jul 20, 2022 that will close this issue
@SSSOCPaulCote
Copy link

the python side does not implement
type GRPCStdio_StreamStdioClient interface {

@tzahifadida isn't the plugin the server and not the client? Does it need to implement that interface?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants