Current Behavior
Graphql post requests have a probability of causing routing matching exception.
The larger the body, the greater the probability of routing exceptions, which may be affected by other requests in the final result.
Expected Behavior
No response
Error Logs
No response
Steps to Reproduce
- apisix configure
config.yaml
deployment:
role: data_plane
role_data_plane:
config_provider: yaml
apisix:
router:
http: radixtree_uri
nginx_config:
worker_processes: 1
apisix.yaml configure
routes:
- uri: "/hello"
hosts:
- test.com
vars:
- - "graphql_name"
- "=="
- "createAccount"
priority: 30
id: "graphql1"
upstream_id: "invalid"
- uri: "/hello"
hosts:
- test.com
plugins:
echo:
body: "test server\n"
priority: 20
id: "graphql2"
upstream_id: "invalid"
- uri: "/hello"
hosts:
- test2.com
plugins:
echo:
body: "test2\n"
priority: 20
id: "graphql3"
upstream_id: "invalid"
upstreams:
- nodes:
127.0.0.1:1999: 1
id: "invalid"
```
3. request params
```shell
➜ apisix git:(master) ✗ curl -Z http://test.com:9080/hello -H "Content-Type: application/json" -X POST -d @schema.json -Z http://test2.com:9080/hello
test2
test2
➜ apisix git:(master) ✗ curl -Z http://test.com:9080/hello -H "Content-Type: application/json" -X POST -d @schema.json -Z http://test2.com:9080/hello
test2
test server
➜ apisix git:(master) ✗ curl -Z http://test.com:9080/hello -H "Content-Type: application/json" -X POST -d @schema.json -Z http://test2.com:9080/hello
test2
test2
➜ apisix git:(master) ✗ curl -Z http://test.com:9080/hello -H "Content-Type: application/json" -X POST -d @schema.json -Z http://test2.com:9080/hello
test2
test2
Environment
- APISIX version (run
apisix version): master/3.5.0
- Operating system (run
uname -a):
- OpenResty / Nginx version (run
openresty -V or nginx -V):
- etcd version, if relevant (run
curl http://127.0.0.1:9090/v1/server_info):
- APISIX Dashboard version, if relevant:
- Plugin runner version, for issues related to plugin runners:
- LuaRocks version, for installation issues (run
luarocks --version):
Current Behavior
Graphql post requests have a probability of causing routing matching exception.
The larger the body, the greater the probability of routing exceptions, which may be affected by other requests in the final result.
expect
POST http://test.com/hello -> route a
POST http://test2.com/hello -> rout b
actual
POST http://test.com/hello -> route a
POST http://test2.com/hello -> route a
Expected Behavior
No response
Error Logs
No response
Steps to Reproduce
config.yamlapisix.yamlconfigureEnvironment
apisix version): master/3.5.0uname -a):openresty -Vornginx -V):curl http://127.0.0.1:9090/v1/server_info):luarocks --version):