spacewander commented on a change in pull request #27:
URL:
https://github.com/apache/apisix-python-plugin-runner/pull/27#discussion_r694443853
##########
File path: apisix/runner/server/server.py
##########
@@ -28,33 +28,36 @@
logger = NewServerLogger()
-def _threaded(conn: socket):
+def _threaded(conn: socket.socket):
while True:
- buffer = conn.recv(4)
- protocol = NewServerProtocol(buffer, 0)
- err = protocol.decode()
- if err.code != RESP_STATUS_CODE_OK:
- logger.error(err.message)
+ try:
+ buffer = conn.recv(4)
+ protocol = NewServerProtocol(buffer, 0)
+ err = protocol.decode()
+ if err.code != RESP_STATUS_CODE_OK:
+ logger.error(err.message)
+ break
+
+ logger.info("request type:{}, len:{}", protocol.type,
protocol.length)
+
+ buffer = conn.recv(protocol.length)
+ handler = NewServerHandle(protocol.type, buffer)
+ response = handler.dispatch()
+ if response.code != RESP_STATUS_CODE_OK:
+ logger.error(response.message)
+
+ protocol = NewServerProtocol(response.data, response.type)
+ protocol.encode()
+
+ logger.info("response type:{}, len:{}", protocol.type,
protocol.length)
+
+ conn.sendall(protocol.buffer)
+ except socket.timeout as e:
+ logger.info("connection timout: {}", e.args.__str__())
Review comment:
The error message is strange. The runner acts as a server.
##########
File path: apisix/runner/server/server.py
##########
@@ -28,33 +28,36 @@
logger = NewServerLogger()
-def _threaded(conn: socket):
+def _threaded(conn: socket.socket):
while True:
- buffer = conn.recv(4)
- protocol = NewServerProtocol(buffer, 0)
- err = protocol.decode()
- if err.code != RESP_STATUS_CODE_OK:
- logger.error(err.message)
+ try:
Review comment:
Is it possible to add a test to cover the network issue?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]