Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bug: error related to mounted config.yaml in standalone mode (v3.8.0) #541

Open
kayx23 opened this issue Jan 16, 2024 · 9 comments
Open

Comments

@kayx23
Copy link
Member

kayx23 commented Jan 16, 2024

Current State

With the new 3.8.0-debian image, I was unable to access route defined in the apisix.yaml:

standalone-not-working

Note that:

  1. the problem goes away if I do not mount config.yaml. In other words, if I just mount apisix.yaml with a route config, I could access the route successfully.
  2. this was not an issue in 3.5.0 (unable to test with 3.6.0 and 3.7.0 due to sed error), so something may have changed. See screenshot below:

350-no-issue

Therefore, this looks like an error related to mounting config.yaml.

Logs

2024/01/16 14:11:04 [error] 35#35: *6 [lua] config_yaml.lua:211: failed to check item data of [routes] err:allOf 1 failed: value should match only one schema, but matches none ,val: {"priority":0,"status":1}, context: init_worker_by_lua*
2024/01/16 14:11:04 [warn] 39#39: *5 [lua] plugin.lua:255: load_stream(): new plugins: {"limit-conn":true,"ip-restriction":true,"syslog":true,"mqtt-proxy":true}, context: init_worker_by_lua*
2024/01/16 14:11:04 [error] 38#38: *2 [lua] config_yaml.lua:211: failed to check item data of [routes] err:allOf 1 failed: value should match only one schema, but matches none ,val: {"priority":0,"status":1}, context: init_worker_by_lua*
2024/01/16 14:11:04 [warn] 41#41: *8 [lua] plugin.lua:255: load_stream(): new plugins: {"limit-conn":true,"ip-restriction":true,"syslog":true,"mqtt-proxy":true}, context: init_worker_by_lua*
2024/01/16 14:11:04 [error] 39#39: *5 [lua] config_yaml.lua:211: failed to check item data of [routes] err:allOf 1 failed: value should match only one schema, but matches none ,val: {"priority":0,"status":1}, context: init_worker_by_lua*
2024/01/16 14:11:04 [error] 41#41: *8 [lua] config_yaml.lua:211: failed to check item data of [routes] err:allOf 1 failed: value should match only one schema, but matches none ,val: {"priority":0,"status":1}, context: init_worker_by_lua*
2024/01/16 14:11:04 [warn] 46#46: *9 [lua] plugin.lua:255: load_stream(): new plugins: {"limit-conn":true,"ip-restriction":true,"syslog":true,"mqtt-proxy":true}, context: init_worker_by_lua*
2024/01/16 14:11:04 [error] 46#46: *9 [lua] config_yaml.lua:211: failed to check item data of [routes] err:allOf 1 failed: value should match only one schema, but matches none ,val: {"priority":0,"status":1}, context: init_worker_by_lua*
@kayx23
Copy link
Member Author

kayx23 commented Jan 16, 2024

@jingzhao-self I remembered you said your fix worked so it might or might not related to your change. When you are available, could you please test with the new image 3.8.0-debian to see if you could reproduce this issue? Thanks.

cc: @monkeyDluffy6017 @shreemaan-abhishek

@github-actions github-actions bot added the stale label Feb 16, 2024
@kayx23 kayx23 removed the stale label Feb 16, 2024
@fvilla-netnix
Copy link

This issue is caused by docker-entrypoint.sh https://github.com/apache/apisix-docker/blob/2ddd3045bcc3a6f54116bf7559fa5918892423d8/debian/docker-entrypoint.sh#L23C1-L45C6

When in standalone mode this script tries to create the config.yaml file or update it's keys.
I'm not quite sure why this done as we are able to provide ourselves a valid config.yaml when working in standalone mode.

I suggest removing the file update part. This way if the provided file is invalid the deployment would simply fail, but if it is not provided the script would create it for us.

@fvilla-netnix
Copy link

I've come up with a simple fix to bypass the issue.

When working with the Docker image I override the entrypoint with bash and set the command as -c "/usr/bin/apisix init && exec /usr/local/openresty/bin/openresty -p /usr/local/apisix -g 'daemon off;'"

This will start the gateway and forgo the entrypoint config file initialization.

@kayx23
Copy link
Member Author

kayx23 commented Mar 11, 2024

Thanks, will you be opening a PR?

@fvilla-netnix
Copy link

Yeah, sure. I can try that.

@fvilla-netnix
Copy link

I've opened the pull request (#547).
Hope we can fix it.

@apache apache deleted a comment from github-actions bot Apr 7, 2024
@Jacky-Law
Copy link

apache/apisix:3.9.0出现同样问题,volume配置文件没有效果

@kayx23
Copy link
Member Author

kayx23 commented Apr 12, 2024

yep, it's not fixed yet...

Copy link

This issue has been marked as stale due to 30 days of inactivity. It will be closed in 2 weeks if no further activity occurs. If this issue is still relevant, please simply write any comment. Even if closed, you can still revive the issue at any time or discuss it on the dev@apisix.apache.org list. Thank you for your contributions.

@github-actions github-actions bot added the stale label May 12, 2024
@kayx23 kayx23 removed the stale label May 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants