-
Notifications
You must be signed in to change notification settings - Fork 12
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
Current Behavior
When running adc sync after successfully converting a valid OpenAPI 3.0 document (based on the example given in the docs), ADC reaches the end of the sync process, performs all operations (deleting and recreating services/routes), but throws a fatal Error: undefined.
The configuration is still applied, but ADC crashes and reports failure.
Exxpected Behavior
ADC should complete the sync cleanly without crashing, or at least return a meaningful error.
No crash should occur if all changes were successfully applied.
Steps to Reproduce
- Create this OpenAPI file (openapi.yaml):
openapi: 3.1.0
info:
title: httpbin API
description: httpbin API for the API7 Enterprise Getting Started guides.
version: 1.0.0
servers:
- url: 'http://httpbin.org:80'
x-adc-labels:
server: production
api: httpbin
x-adc-plugins:
key-auth:
_meta:
disable: false
paths:
/anything/*:
get:
summary: Returns anything that is passed into the request.
x-adc-name: test
x-adc-service-defaults:
path_prefix: /api/
x-adc-upstream-defaults:
timeout:
connect: 10
send: 10
read: 10
responses:
'200':
description: Successful Response
content:
application/json:
schema:
type: string- Convert and sync:
adc convert openapi -f /adc/openapi.yaml -o /adc/adc.yaml
adc sync -f /adc/adc.yaml- Observe that:
- Route and service are deleted and recreated
- Then Error: undefined is thrown at the end
Environment
- APISIX version: 3.12.0
- Operating system (run
uname -a): Linux d97b6eacbe2e 5.15.167.4-microsoft-standard-WSL2 SMP Tue Nov 5 00:21:55 UTC 2024 x86_64 GNU/Linux
Logs :
# adc convert openapi -f /adc/openapi.yaml -o /adc/adc2.yaml
[9:57:59 AM] [ADC] › ▶ start Convert OpenAPI document "/adc/openapi.yaml"
[9:57:59 AM] [ADC] › ▶ start Validate OpenAPI document
[9:57:59 AM] [ADC] › ✔ success Validate OpenAPI document
[9:57:59 AM] [ADC] › ▶ start Generate main service
[9:57:59 AM] [ADC] › ✔ success Generate main service
[9:57:59 AM] [ADC] › ▶ start Generate routes
[9:57:59 AM] [ADC] › ✔ success Generate routes
[9:57:59 AM] [ADC] › ✔ success Convert OpenAPI document "/adc/openapi.yaml"
[9:57:59 AM] [ADC] › ▶ start Write converted OpenAPI file
[9:57:59 AM] [ADC] › ✔ success Converted OpenAPI file to "/adc/adc2.yaml" successfully
[9:57:59 AM] [ADC] › ★ star All is well, see you next time!
# adc sync -f /adc/adc2.yaml
Apache APISIX backend is experimental!
[9:58:04 AM] [ADC] › ▶ start Load local configuration
[9:58:04 AM] [ADC] › ▶ start Load /adc/adc2.yaml
[9:58:04 AM] [ADC] › ✔ success Load /adc/adc2.yaml
[9:58:04 AM] [ADC] › ▶ start Merge local configurations
[9:58:04 AM] [ADC] › ✔ success Merge local configurations
[9:58:04 AM] [ADC] › ▶ start Resolve value variables
[9:58:04 AM] [ADC] › ✔ success Resolve value variables
[9:58:04 AM] [ADC] › ✔ success Load local configuration
[9:58:04 AM] [ADC] › ▶ start Lint configuration
[9:58:04 AM] [ADC] › ✔ success Lint configuration
[9:58:04 AM] [ADC] › ▶ start Load remote configuration
[9:58:04 AM] [ADC] › ▶ start Fetch all configuration
[9:58:04 AM] [APISIX] › ▶ start Fetch services
[9:58:04 AM] [APISIX] › ✔ success Fetch services
[9:58:04 AM] [APISIX] › ▶ start Fetch stream_routes
[9:58:04 AM] [APISIX] › ✔ success Fetch stream_routes
[9:58:04 AM] [APISIX] › ▶ start Fetch routes
[9:58:04 AM] [APISIX] › ✔ success Fetch routes
[9:58:04 AM] [APISIX] › ▶ start Fetch consumers
[9:58:04 AM] [APISIX] › ✔ success Fetch consumers
[9:58:04 AM] [APISIX] › ▶ start Fetch ssls
[9:58:04 AM] [APISIX] › ✔ success Fetch ssls
[9:58:04 AM] [APISIX] › ▶ start Fetch global_rules
[9:58:04 AM] [APISIX] › ✔ success Fetch global_rules
[9:58:04 AM] [APISIX] › ▶ start Fetch upstreams
[9:58:04 AM] [APISIX] › ✔ success Fetch upstreams
[9:58:04 AM] [APISIX] › ▶ start Fetch plugin_configs
[9:58:04 AM] [APISIX] › ✔ success Fetch plugin_configs
[9:58:04 AM] [APISIX] › ▶ start Fetch plugin_metadata
[9:58:04 AM] [APISIX] › ✔ success Fetch plugin_metadata
[9:58:04 AM] [ADC] › ✔ success Fetch all configuration
[9:58:04 AM] [ADC] › ✔ success Load remote configuration
[9:58:04 AM] [ADC] › ▶ start Diff configuration
[9:58:04 AM] [ADC] › ✔ success Diff configuration
[9:58:04 AM] [ADC] › ▶ start Sync configuration
[9:58:04 AM] [APISIX] › ▶ start Update route: "httpbin-anything"
[9:58:04 AM] [APISIX] › ✔ success Update route: "httpbin-anything"
[9:58:04 AM] [APISIX] › ▶ start Update service: "httpbin-API_anything*_get"
[9:58:04 AM] [APISIX] › ✔ success Update service: "httpbin-API_anything*_get"
[9:58:04 AM] [ADC] › ✖ error Sync configuration
[9:58:04 AM] [ADC] › ✖ fatal Error: Error: undefined,
at dist/apps/cli/main.js:101633:27
at dist/apps/cli/main.js:27264:51
at OperatorSubscriber._this._error (dist/apps/cli/main.js:23041:21)
at OperatorSubscriber.Subscriber.error (dist/apps/cli/main.js:22217:18)
at OperatorSubscriber.Subscriber._error (dist/apps/cli/main.js:22241:30)
at OperatorSubscriber.Subscriber.error (dist/apps/cli/main.js:22217:18)
at dist/apps/cli/main.js:29759:28
at OperatorSubscriber._this._error (dist/apps/cli/main.js:23041:21)
at OperatorSubscriber.Subscriber.error (dist/apps/cli/main.js:22217:18)
at dist/apps/cli/main.js:24881:47
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working