Chever-John opened a new issue #76:
URL: https://github.com/apache/apisix-go-plugin-runner/issues/76


   ### Issue description
   
   ```go
   "conf":[
           {
           "name":"limit-req",
           "value":"{\"rate\":5,\"burst\":1}"
           }
   ]
   ```
   
   and add two requests
   
   ```go
   table.Entry("Test if limit-req plugin work.", tools.HttpTestCase{
                        Object:       tools.GetA6Expect(),
                        Method:       http.MethodGet,
                        Path:         "/test/go/runner/limitreq",
                        ExpectStatus: http.StatusOK,
                }),
   table.Entry("Test if limit-req plugin work.", tools.HttpTestCase{
                        Object:       tools.GetA6Expect(),
                        Method:       http.MethodGet,
                        Path:         "/test/go/runner/limitreq",
                        ExpectStatus: http.StatusOK,
                }),
   
   ```
   
   It does not work. Then I got:
   
   ```shell
   Error:
         expected status equal to:
          "200 OK"
   
         but got:
          "503 Service Unavailable"
   ```
   I tail the APISIX's log, find that "limit req rate exceeded".
   And I try to solve this problem. I found that the code of `limit-req` in 
`/apisix-go-plugin-runner/cmd/go-runner/plugins` does not work.
   
   Can someone help me?
   
   ### Environment
   
   * APISIX Go Plugin Runner's version: version latest-d3fe333-go1.18( result 
after run `APISIX_LISTEN_ADDRESS=unix:/tmp/runner.sock ./go-runner version`
   * APISIX version: run `docker-compose -f ci/docker-compose.yml up -d`
   * Go version: 1.18
   * OS (cmd: `uname -a`): Darwin Johns-MacBook-Pro.local 21.4.0 Darwin Kernel 
Version 21.4.0: Mon Feb 21 20:35:58 PST 2022; 
root:xnu-8020.101.4~2/RELEASE_ARM64_T6000 arm64
   
   ### Minimal test code / Steps to reproduce the issue
   
   1. git clone [email protected]:Chever-John/apisix-go-plugin-runner.git
   2. cd apisix-go-plugin-runner
   3. make build
   4. APISIX_LISTEN_ADDRESS=unix:/tmp/runner.sock APISIX_CONF_EXPIRE_TIME=3600 
./go-runner run &
   5. docker-compose -f ci/docker-compose.yml up -d
   6. go install github.com/onsi/ginkgo/[email protected]
   7. cd /tests/e2e
   8. You can modify the conf `tests/e2e/plugins/plugins_limit_req_test.go`
   9. ginkgo -r
   
   ### What's the actual result? (including assertion message & call stack if 
applicable)
   
   I guess the file `cmd/go-runner/plugins/limit_req.go`
   
   ### What's the expected result?
   if conf is 
   ```shell
   "conf":[{"name":"limit-req","value":"{\"rate\":0,\"burst\":1}"}]
   ```
   then 
   ```shell
   table.Entry("Test if limit-req plugin work.", tools.HttpTestCase{
                        Object:       tools.GetA6Expect(),
                        Method:       http.MethodGet,
                        Path:         "/test/go/runner/limitreq",
                        ExpectStatus: http.StatusOK,
                }),
   table.Entry("Test if limit-req plugin work.", tools.HttpTestCase{
                        Object:       tools.GetA6Expect(),
                        Method:       http.MethodGet,
                        Path:         "/test/go/runner/limitreq",
                        ExpectStatus: http.StatusServiceUnavailable,
                }),
   ```
   
   will work.


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