Skip to content

bug: update plugin config for route does not take effect #2870

Description

@nic-chen

Issue description

Update the plugin config for route, and then access to the route, the plugin config is not updated.

Environment

  • apisix version (cmd: apisix version): master source
  • OS: macOS

Minimal test code / Steps to reproduce the issue

  1. create route
$ curl http://127.0.0.1:9180/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -i -d '
{
    "uri": "/opentracing",
    "plugins": {
        "http-logger": {
            "uri": "http://172.16.238.20:1982/hello",
            "batch_max_size": 1,
            "max_retry_count": 1,
            "retry_delay": 2,
            "buffer_duration": 2,
            "inactive_timeout": 2,
            "name": "http logger",
            "timeout": 3,
            "concat_method": "json"
        }
    },
    "upstream": {
        "type": "roundrobin",
        "nodes": [{
            "host": "172.16.238.20",
            "port": 1981,
            "weight": 1
        }]
    }
}'
  1. access the route
$ curl http://127.0.0.1:9080/opentracing
  1. update the route
$ curl http://127.0.0.1:9180/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -i -d '
{
    "uri": "/opentracing",
    "plugins": {
        "http-logger": {
            "uri": "http://172.16.238.20:8888/hello",
            "batch_max_size": 1,
            "max_retry_count": 1,
            "retry_delay": 2,
            "buffer_duration": 2,
            "inactive_timeout": 2,
            "name": "http logger",
            "timeout": 3,
            "concat_method": "json"
        }
    },
    "upstream": {
        "type": "roundrobin",
        "nodes": [{
            "host": "172.16.238.20",
            "port": 1980,
            "weight": 1
        }]
    }
}'
  1. access the route again
$ curl http://127.0.0.1:9080/opentracing

What's the actual result? (including assertion message & call stack if applicable)

upstream has changed to 172.16.238.20:1980

but log is still pushed to http://172.16.238.20:1982/hello

What's the expected result?

log should push to http://172.16.238.20:8888/hello

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingplugin

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions