xtechcloud-admin opened a new issue #4682:
URL: https://github.com/apache/apisix/issues/4682


   ### Issue description
   
   ### Environment
   
   Bug report without environment information will be ignored or closed.
   
   * apisix version (cmd: `apisix version`): apache/apisix:2.7-alpine (docker 
image)
   * OS (cmd: `uname -a`): Ubuntu 20.04
   * OpenResty / Nginx version (cmd: `nginx -V` or `openresty -V`):
   * etcd version, if have (cmd: run `curl 
http://127.0.0.1:9090/v1/server_info` to get the info from server-info API): 
bitnami/etcd:3.5.0 (docker images)
   * apisix-dashboard version, if have: none
   * luarocks version, if the issue is about installation (cmd: `luarocks 
--version`):
   
   ### Minimal test code / Steps to reproduce the issue
   
   Bug report without steps to reproduce will be ignored or closed.
   
   follow the document 
https://apisix.apache.org/zh/docs/apisix/plugins/grpc-transcode
   1.
   ```bash
   curl http://127.0.0.1/apisix/admin/proto/1 -H 'X-API-KEY: 
edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
   {
     "content" : "syntax = \"proto3\";
     package helloworld;
     enum Gender {
       GENDER_UNKNOWN=0;
       GENDER_MALE=1;
       GENDER_FEMALE=2;
     }
     service Greeter {
       rpc SayHello (HelloRequest) returns (HelloReply) {}
     }
     message HelloRequest {
       string name = 1;
       Gender gender = 2;
     }
     message HelloReply {
       string message = 1;
     }"
   }'
   ```
   2.
   ```bash
   curl http://127.0.0.1/apisix/admin/routes/111 -H 'X-API-KEY: 
edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
   {
       "methods": ["POST"],
       "uri": "/grpctest",
       "plugins": {
           "grpc-transcode": {
            "proto_id": "1",
            "service": "helloworld.Greeter",
            "method": "SayHello"
           }
       },
       "upstream": {
           "scheme": "grpc",
           "type": "roundrobin",
           "nodes": {
               "127.0.0.1:50051": 1
           }
       }
   }'
   ```
   3.
   ```bash
   curl -i  -X POST http://127.0.0.1/grpctest -d '{"name":"world"}'
   ```
   
   ### What's the actual result? (including assertion message & call stack if 
applicable)
   -  stdout
   ```
   HTTP/1.1 405 Not Allowed
   Date: Tue, 27 Jul 2021 10:21:43 GMT
   Content-Type: text/html; charset=utf-8
   Content-Length: 154
   Connection: close
   Server: APISIX/2.7
   
   <html>
   <head><title>405 Not Allowed</title></head>
   <body>
   <center><h1>405 Not Allowed</h1></center>
   <hr><center>openresty</center>
   </body>
   </html>
   ```
   
   - log/access.log
   ```
   10.1.0.1 - - [27/Jul/2021:10:21:43 +0000] 127.0.0.1 "POST /grpctest 
HTTP/1.1" 405 154 0.019 "-" "curl/7.68.0" - - - "http://127.0.0.1";
   ```
   
   - log/error.log
   ```
   2021/07/27 10:21:43 [error] 50#50: *125300 lua entry thread aborted: runtime 
error: stack overflow
   stack traceback:
   coroutine 0:
           [C]: in function 'req_read_body'
           /usr/local/apisix/apisix/core/request.lua:202: in function 'get_body'
           /usr/local/apisix/apisix/plugins/grpc-transcode/util.lua:57: in 
function 'get_request_table'
           /usr/local/apisix/apisix/plugins/grpc-transcode/util.lua:101: in 
function 'map_message'
           /usr/local/apisix/apisix/plugins/grpc-transcode/util.lua:104: in 
function 'map_message'
           /usr/local/apisix/apisix/plugins/grpc-transcode/util.lua:104: in 
function 'map_message'
           /usr/local/apisix/apisix/plugins/grpc-transcode/util.lua:104: in 
function 'map_message'
           /usr/local/apisix/apisix/plugins/grpc-transcode/util.lua:104: in 
function 'map_message'
           /usr/local/apisix/apisix/plugins/grpc-transcode/util.lua:104: in 
function 'map_message'
           /usr/local/apisix/apisix/plugins/grpc-transcode/util.lua:104: in 
function 'map_message'
           /usr/local/apisix/apisix/plugins/grpc-transcode/util.lua:104: in 
function 'map_message'
           /usr/local/apisix/apisix/plugins/grpc-transcode/util.lua:104: in 
function 'map_message'
           /usr/local/apisix/apisix/plugins/grpc-transcode/util.lua:104: in 
function 'map_message'
           /usr/local/apisix/apisix/plugins/grpc-transcode/util.lua:104: in 
function 'map_message'
           /usr/local/apisix/apisix/plugins/grpc-transcode/util.lua:104: in 
function 'map_message'
           /usr/local/apisix/apisix/plugins/grpc-transcode/util.lua:104: in 
function 'map_message'
           /usr/local/apisix/apisix/plugins/grpc-transcode/util.lua:104: in 
function 'map_message'
           /usr/local/apisix/apisix/plugins/grpc-transcode/util.lua:104: in 
function 'map_message'
           /usr/local/apisix/apisix/plugins/grpc-transcode/util.lua:104: in 
function 'map_message'
           /usr/local/apisix/apisix/plugins/grpc-transcode/util.lua:104: in 
function 'map_message'
           /usr/local/apisix/apisix/plugins/grpc-transcode/util.lua:104: in 
function 'map_message'
           /usr/local/apisix/apisix/plugins/grpc-transcode/util.lua:104: in 
function 'map_message'
           ..., client: 10.1.0.1, server: _, request: "POST /grpctest 
HTTP/1.1", host: "127.0.0.1"
   ```
   
   Everying is ok if i coment the enum field.
   ```
   message HelloRequest {
       string name = 1;
       //Gender gender = 2;
     }
   ```


-- 
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]


Reply via email to