apache / apisix

The Cloud-Native API Gateway
https://apisix.apache.org/blog/
Apache License 2.0
14.46k stars 2.52k forks source link

bug: apache/apisix:3.7.0-debian Docker 镜像启动后一直报错:failed to start a etcd instance #10587

Closed ldcsaa closed 10 months ago

ldcsaa commented 10 months ago

Current Behavior

apache/apisix:3.7.0-debian Docker 镜像创建的容器启动后一直报错,提示:failed to load the configuration: failed to start a etcd instance: /usr/local/openresty/lualib/resty/grpc.lua:102: The gRPC client engine is not initialized. Need to ensure the grpc engine exist in the defined NGX_GRPC_CLI_ENGINE_PATH. And the Nginx configuration contains 'thread_pool grpc-client-nginx-module'. And this library can not be loaded in the init phase.

(注:apache/apisix:3.5.0-debian Docker 镜像不会报这个错误)

Expected Behavior

不要报错

Error Logs

bruce@bruce-22-x64:~/Internal-Docker$ docker logs -f apisix
/usr/local/openresty//luajit/bin/luajit ./apisix/cli/apisix.lua init
/usr/local/openresty//luajit/bin/luajit ./apisix/cli/apisix.lua init_etcd
2023/12/04 10:22:52 [error] 1#1: [lua] init.lua:99: http_init(): failed to load the configuration: failed to start a etcd instance: /usr/local/openresty/lualib/resty/grpc.lua:102: The gRPC client engine is not initialized. Need to ensure the grpc engine exist in the defined NGX_GRPC_CLI_ENGINE_PATH. And the Nginx configuration contains 'thread_pool grpc-client-nginx-module'. And this library can not be loaded in the init phase.
nginx: [error] [lua] init.lua:99: http_init(): failed to load the configuration: failed to start a etcd instance: /usr/local/openresty/lualib/resty/grpc.lua:102: The gRPC client engine is not initialized. Need to ensure the grpc engine exist in the defined NGX_GRPC_CLI_ENGINE_PATH. And the Nginx configuration contains 'thread_pool grpc-client-nginx-module'. And this library can not be loaded in the init phase.
2023/12/04 10:22:52 [warn] 50#50: *2 [lua] plugin.lua:205: load(): new plugins: {"traffic-split":true,"serverless-post-function":true,"proxy-control":true,"csrf":true,"tencent-cloud-cls":true,"authz-casdoor":true,"udp-logger":true,"openwhisk":true,"cas-auth":true,"loggly":true,"google-cloud-logging":true,"prometheus":true,"datadog":true,"hmac-auth":true,"grpc-web":true,"key-auth":true,"gzip":true,"kafka-logger":true,"opa":true,"dubbo-proxy":true,"body-transformer":true,"splunk-hec-logging":true,"authz-keycloak":true,"serverless-pre-function":true,"elasticsearch-logger":true,"server-info":true,"wolf-rbac":true,"kafka-proxy":true,"sls-logger":true,"syslog":true,"openfunction":true,"clickhouse-logger":true,"client-control":true,"ldap-auth":true,"api-breaker":true,"response-rewrite":true,"cors":true,"aws-lambda":true,"inspect":true,"echo":true,"ext-plugin-post-req":true,"real-ip":true,"mocking":true,"example-plugin":true,"ext-plugin-post-resp":true,"file-logger":true,"rocketmq-logger":true,"limit-conn":true,"zipkin":true,"basic-auth":true,"ext-plugin-pre-req":true,"azure-functions":true,"ua-restriction":true,"public-api":true,"node-status":true,"openid-connect":true,"http-logger":true,"ip-restriction":true,"proxy-cache":true,"authz-casbin":true,"workflow":true,"tcp-logger":true,"request-id":true,"proxy-mirror":true,"proxy-rewrite":true,"forward-auth":true,"skywalking-logger":true,"grpc-transcode":true,"degraphql":true,"request-validation":true,"uri-blocker":true,"referer-restriction":true,"ai":true,"consumer-restriction":true,"jwt-auth":true,"redirect":true,"limit-req":true,"limit-count":true,"fault-injection":true}, context: init_worker_by_lua*
2023/12/04 10:22:52 [warn] 49#49: *1 [lua] plugin.lua:205: load(): new plugins: {"traffic-split":true,"serverless-post-function":true,"proxy-control":true,"csrf":true,"tencent-cloud-cls":true,"authz-casdoor":true,"udp-logger":true,"openwhisk":true,"cas-auth":true,"loggly":true,"google-cloud-logging":true,"prometheus":true,"datadog":true,"hmac-auth":true,"grpc-web":true,"key-auth":true,"gzip":true,"kafka-logger":true,"opa":true,"dubbo-proxy":true,"body-transformer":true,"splunk-hec-logging":true,"authz-keycloak":true,"serverless-pre-function":true,"elasticsearch-logger":true,"server-info":true,"wolf-rbac":true,"kafka-proxy":true,"sls-logger":true,"syslog":true,"openfunction":true,"clickhouse-logger":true,"client-control":true,"ldap-auth":true,"api-breaker":true,"response-rewrite":true,"cors":true,"aws-lambda":true,"inspect":true,"echo":true,"ext-plugin-post-req":true,"real-ip":true,"mocking":true,"example-plugin":true,"ext-plugin-post-resp":true,"file-logger":true,"rocketmq-logger":true,"limit-conn":true,"zipkin":true,"basic-auth":true,"ext-plugin-pre-req":true,"azure-functions":true,"ua-restriction":true,"public-api":true,"node-status":true,"openid-connect":true,"http-logger":true,"ip-restriction":true,"proxy-cache":true,"authz-casbin":true,"workflow":true,"tcp-logger":true,"request-id":true,"proxy-mirror":true,"proxy-rewrite":true,"forward-auth":true,"skywalking-logger":true,"grpc-transcode":true,"degraphql":true,"request-validation":true,"uri-blocker":true,"referer-restriction":true,"ai":true,"consumer-restriction":true,"jwt-auth":true,"redirect":true,"limit-req":true,"limit-count":true,"fault-injection":true}, context: init_worker_by_lua*
2023/12/04 10:22:52 [warn] 53#53: *3 [lua] plugin.lua:205: load(): new plugins: {"traffic-split":true,"serverless-post-function":true,"proxy-control":true,"csrf":true,"tencent-cloud-cls":true,"authz-casdoor":true,"udp-logger":true,"openwhisk":true,"cas-auth":true,"loggly":true,"google-cloud-logging":true,"prometheus":true,"datadog":true,"hmac-auth":true,"grpc-web":true,"key-auth":true,"gzip":true,"kafka-logger":true,"opa":true,"dubbo-proxy":true,"body-transformer":true,"splunk-hec-logging":true,"authz-keycloak":true,"serverless-pre-function":true,"elasticsearch-logger":true,"server-info":true,"wolf-rbac":true,"kafka-proxy":true,"sls-logger":true,"syslog":true,"openfunction":true,"clickhouse-logger":true,"client-control":true,"ldap-auth":true,"api-breaker":true,"response-rewrite":true,"cors":true,"aws-lambda":true,"inspect":true,"echo":true,"ext-plugin-post-req":true,"real-ip":true,"mocking":true,"example-plugin":true,"ext-plugin-post-resp":true,"file-logger":true,"rocketmq-logger":true,"limit-conn":true,"zipkin":true,"basic-auth":true,"ext-plugin-pre-req":true,"azure-functions":true,"ua-restriction":true,"public-api":true,"node-status":true,"openid-connect":true,"http-logger":true,"ip-restriction":true,"proxy-cache":true,"authz-casbin":true,"workflow":true,"tcp-logger":true,"request-id":true,"proxy-mirror":true,"proxy-rewrite":true,"forward-auth":true,"skywalking-logger":true,"grpc-transcode":true,"degraphql":true,"request-validation":true,"uri-blocker":true,"referer-restriction":true,"ai":true,"consumer-restriction":true,"jwt-auth":true,"redirect":true,"limit-req":true,"limit-count":true,"fault-injection":true}, context: init_worker_by_lua*
2023/12/04 10:22:52 [warn] 49#49: *1 [lua] plugin.lua:255: load_stream(): new plugins: {"limit-conn":true,"prometheus":true,"mqtt-proxy":true,"ip-restriction":true,"syslog":true}, context: init_worker_by_lua*
2023/12/04 10:22:53 [error] 49#49: *5 [lua] init.lua:328: sync_local_conf_to_etcd(): failed to get current plugins: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc', context: ngx.timer
2023/12/04 10:22:52 [warn] 50#50: *2 [lua] plugin.lua:255: load_stream(): new plugins: {"limit-conn":true,"prometheus":true,"mqtt-proxy":true,"ip-restriction":true,"syslog":true}, context: init_worker_by_lua*
2023/12/04 10:22:52 [warn] 53#53: *3 [lua] plugin.lua:255: load_stream(): new plugins: {"limit-conn":true,"prometheus":true,"mqtt-proxy":true,"ip-restriction":true,"syslog":true}, context: init_worker_by_lua*
2023/12/04 10:22:53 [error] 50#50: *10 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/protos]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/protos, context: ngx.timer
2023/12/04 10:22:53 [error] 50#50: *11 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/plugin_metadata]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/plugin_metadata, context: ngx.timer
2023/12/04 10:22:53 [error] 49#49: *7 [lua] server-info.lua:167: failed to fetch etcd version: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc', context: ngx.timer
2023/12/04 10:22:53 [error] 49#49: *13 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/protos]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/protos, context: ngx.timer
2023/12/04 10:22:53 [error] 49#49: *14 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/plugin_metadata]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/plugin_metadata, context: ngx.timer
2023/12/04 10:22:53 [error] 49#49: *15 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/routes]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/routes, context: ngx.timer
2023/12/04 10:22:53 [error] 49#49: *16 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/ssls]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/ssls, context: ngx.timer
2023/12/04 10:22:53 [error] 49#49: *17 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/services]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/services, context: ngx.timer
2023/12/04 10:22:53 [error] 49#49: *18 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/plugin_configs]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/plugin_configs, context: ngx.timer
2023/12/04 10:22:53 [error] 49#49: *19 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/consumers]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/consumers, context: ngx.timer
2023/12/04 10:22:53 [error] 49#49: *20 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/consumer_groups]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/consumer_groups, context: ngx.timer
2023/12/04 10:22:53 [error] 49#49: *21 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/secrets]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/secrets, context: ngx.timer
2023/12/04 10:22:53 [error] 49#49: *22 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/global_rules]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/global_rules, context: ngx.timer
2023/12/04 10:22:53 [error] 49#49: *23 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/upstreams]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/upstreams, context: ngx.timer
2023/12/04 10:22:53 [error] 50#50: *12 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/routes]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/routes, context: ngx.timer
2023/12/04 10:22:53 [error] 50#50: *24 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/ssls]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/ssls, context: ngx.timer
2023/12/04 10:22:53 [error] 50#50: *25 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/services]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/services, context: ngx.timer
2023/12/04 10:22:53 [error] 50#50: *26 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/plugin_configs]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/plugin_configs, context: ngx.timer
2023/12/04 10:22:53 [error] 50#50: *27 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/consumers]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/consumers, context: ngx.timer
2023/12/04 10:22:53 [error] 50#50: *28 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/consumer_groups]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/consumer_groups, context: ngx.timer
2023/12/04 10:22:53 [error] 50#50: *29 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/secrets]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/secrets, context: ngx.timer
2023/12/04 10:22:53 [error] 50#50: *30 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/global_rules]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/global_rules, context: ngx.timer
2023/12/04 10:22:53 [error] 50#50: *31 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/upstreams]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/upstreams, context: ngx.timer
2023/12/04 10:22:53 [error] 53#53: *34 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/protos]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/protos, context: ngx.timer
2023/12/04 10:22:53 [error] 53#53: *35 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/plugin_metadata]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/plugin_metadata, context: ngx.timer
2023/12/04 10:22:53 [error] 53#53: *36 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/routes]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/routes, context: ngx.timer
2023/12/04 10:22:53 [error] 53#53: *37 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/ssls]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/ssls, context: ngx.timer
2023/12/04 10:22:53 [error] 53#53: *38 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/services]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/services, context: ngx.timer
2023/12/04 10:22:53 [error] 53#53: *39 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/plugin_configs]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/plugin_configs, context: ngx.timer
2023/12/04 10:22:53 [error] 53#53: *40 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/consumers]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/consumers, context: ngx.timer
2023/12/04 10:22:53 [error] 53#53: *41 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/consumer_groups]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/consumer_groups, context: ngx.timer
2023/12/04 10:22:53 [error] 53#53: *42 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/secrets]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/secrets, context: ngx.timer
2023/12/04 10:22:53 [error] 53#53: *43 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/global_rules]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/global_rules, context: ngx.timer
2023/12/04 10:22:53 [error] 53#53: *44 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/upstreams]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/upstreams, context: ngx.timer
2023/12/04 10:22:58 [error] 53#53: *241 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/plugin_metadata]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/plugin_metadata, context: ngx.timer
2023/12/04 10:22:58 [error] 50#50: *245 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/consumer_groups]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/consumer_groups, context: ngx.timer
2023/12/04 10:22:58 [error] 53#53: *246 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/global_rules]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/global_rules, context: ngx.timer
2023/12/04 10:22:58 [error] 50#50: *252 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/protos]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/protos, context: ngx.timer
2023/12/04 10:22:58 [error] 53#53: *254 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/routes]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/routes, context: ngx.timer
2023/12/04 10:22:58 [error] 49#49: *255 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/secrets]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/secrets, context: ngx.timer
2023/12/04 10:22:58 [error] 50#50: *256 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/plugin_configs]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/plugin_configs, context: ngx.timer
2023/12/04 10:22:58 [error] 53#53: *257 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/secrets]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/secrets, context: ngx.timer
2023/12/04 10:22:58 [error] 49#49: *272 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/routes]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/routes, context: ngx.timer
2023/12/04 10:22:58 [error] 53#53: *275 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/protos]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/protos, context: ngx.timer
2023/12/04 10:22:58 [error] 49#49: *283 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/upstreams]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/upstreams, context: ngx.timer
2023/12/04 10:22:58 [error] 49#49: *284 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/services]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/services, context: ngx.timer
2023/12/04 10:22:59 [error] 50#50: *290 [lua] config_etcd.lua:868: failed to fetch data from etcd: /usr/local/apisix/apisix/core/config_etcd.lua:806: failed to create etcd instance for key [/apisix/secrets]: /usr/local/openresty/lualib/resty/core/base.lua:80: loop or previous error loading module 'resty.grpc'
stack traceback:
    [C]: in function 'error'
    /usr/local/apisix/apisix/core/config_etcd.lua:806: in function </usr/local/apisix/apisix/core/config_etcd.lua:802>
    [C]: in function 'xpcall'
    /usr/local/apisix/apisix/core/config_etcd.lua:802: in function </usr/local/apisix/apisix/core/config_etcd.lua:780>,  etcd key: /apisix/secrets, context: ngx.timer

Steps to Reproduce

  1. 启动容器
  2. 用 docker logs -f 查看输出日志

Environment

dyrnq commented 10 months ago

etcd是容器吗?确保在apisix容器启动之前,etcd对外提供的2379端口可用啊。

注:我也用apache/apisix:3.7.0-debian的镜像启动过,并没有遇到这个问题

ldcsaa commented 10 months ago

etcd是容器吗?确保在apisix容器启动之前,etcd对外提供的2379端口可用啊。

注:我也用apache/apisix:3.7.0-debian的镜像启动过,并没有遇到这个问题

是etcd,其它环境不变。分别用 apisix:3.5.0,apisix:3.6.0,apisix:3.7.0 镜像测试。其中 3.5.0 不报错,3.6.0和3.7.0都报上述错误。

ldcsaa commented 10 months ago

以下是我的部分配置文件,如果把配置deployment.etcd.use_grpc设置为false则不会报错。

apisix:
  node_listen: 9080

  ssl:
    enable: true
    listen:                       # APISIX listening port in https.
      - port: 9443
        enable_http2: true
    #   - ip: 127.0.0.3           # Specific IP, If not set, the default value is `0.0.0.0`.
    #     port: 9445
    #     enable_http2: true
    #ssl_trusted_certificate: /path/to/ca-cert  # Specifies a file path with trusted CA certificates in the PEM format
                                                # used to verify the certificate when APISIX needs to do SSL/TLS handshaking
                                                # with external services (e.g. etcd)
    ssl_protocols: TLSv1.2 TLSv1.3
    ssl_ciphers: ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
    ssl_session_tickets: false              #  disable ssl_session_tickets by default for 'ssl_session_tickets' would make Perfect Forward Secrecy useless.
                                            #  ref: https://github.com/mozilla/server-side-tls/issues/135

    key_encrypt_salt:             #  If not set, will save origin ssl key into etcd.
      - edd1c9f0985e76a2          #  If set this, the key_encrypt_salt should be an array whose elements are string, and the size is also 16, and it will encrypt ssl key with AES-128-CBC
                                  #  !!! So do not change it after saving your ssl, it can't decrypt the ssl keys have be saved if you change !!
                                  #  Only use the first key to encrypt, and decrypt in the order of the array.

    fallback_sni: "hpsocket.com"      # If set this, when the client doesn't send SNI during handshake, the fallback SNI will be used instead

  enable_control: true
  control:
    ip: 0.0.0.0
    port: 9090

deployment:
  role: traditional
  role_traditional:
    config_provider: etcd

  etcd:
    host:
      - "http://etcd:2379"
    prefix: /apisix                 # configuration prefix in etcd
    use_grpc: true                  # enable the experimental configuration sync via gRPC
    timeout: 30                     # 30 seconds. Use a much higher timeout (like an hour) if the `use_grpc` is true.
    #resync_delay: 5                # when sync failed and a rest is needed, resync after the configured seconds plus 50% random jitter
    #health_check_timeout: 10       # etcd retry the unhealthy nodes after the configured seconds
    startup_retry: 2                # the number of retry to etcd during the startup, default to 2
    user: "root"                    # root username for etcd
    password: "123456"              # root password for etcd
    tls:
      # To enable etcd client certificate you need to build APISIX-Base, see
      # https://apisix.apache.org/docs/apisix/FAQ#how-do-i-build-the-apisix-base-environment
      #cert: /path/to/cert          # path of certificate used by the etcd client
      #key: /path/to/key            # path of key used by the etcd client

      verify: true                  # whether to verify the etcd endpoint certificate when setup a TLS connection to etcd,
                                    # the default value is true, e.g. the certificate will be verified strictly.
      #sni:                         # the SNI for etcd TLS requests. If missed, the host part of the URL will be used.
shreemaan-abhishek commented 10 months ago

@ldcsaa grpc support for etcd has been removed: https://github.com/apache/apisix/pull/10015

shreemaan-abhishek commented 10 months ago

Please re-open if you have more questions

ldcsaa commented 10 months ago

找到问题了,deployment.etcd.use_grpc 配置在3.6.0及其后续版本已被废除~~

image