如何检测Python中的gRPC服务器绑定失败?
问题描述:
在Python中,当运行server.start()
如果一个端口无法绑定我得到一个错误消息stderr
---但在Python中没有例外。如何检测Python中的gRPC服务器绑定失败?
我们如何以编程方式检测Python中gRPC服务器中的绑定错误?
实例错误消息:
E1020 09:26:44.299467934 4160 server_chttp2.c:38] {"created":"@1508506004.299423794","description":"No address added out of total 1 resolved","file":"src/core/ext/transport/chttp2/server/chttp2_server.c","file_line":245,"referenced_errors":[{"created":"@1508506004.299421071","description":"Failed to add any wildcard listeners","file":"src/core/lib/iomgr/tcp_server_posix.c","file_line":338,"referenced_errors":[{"created":"@1508506004.299410944","description":"Unable to configure socket","fd":4,"file":"src/core/lib/iomgr/tcp_server_utils_posix_common.c","file_line":200,"referenced_errors":[{"created":"@1508506004.299407382","description":"OS Error","errno":98,"file":"src/core/lib/iomgr/tcp_server_utils_posix_common.c","file_line":173,"os_error":"Address already in use","syscall":"bind"}]},{"created":"@1508506004.299419953","description":"Unable to configure socket","fd":4,"file":"src/core/lib/iomgr/tcp_server_utils_posix_common.c","file_line":200,"referenced_errors":[{"created":"@1508506004.299417439","description":"OS Error","errno":98,"file":"src/core/lib/iomgr/tcp_server_utils_posix_common.c","file_line":173,"os_error":"Address already in use","syscall":"bind"}]}]}]}
答
我相信the port number returned will be 0
,但因为你提出这个问题的一个例外可能会更好。 I've filed issue 13096 to make this more clear.