From 8c503039c99e55a633a28ddc1b0b7841e65c3079 Mon Sep 17 00:00:00 2001 From: Yufu Zhao Date: Mon, 6 May 2024 16:05:15 +0800 Subject: [PATCH] fix(cmd): do not override `kong.conf` if `--db-timeout` is not passed (#12761) explicitly MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Prior to this fix, if the gateway was started using the kong cli, the final `pg_timeout` would be overridden to `60s` instead of the value specified in `kong.conf`, even if `--db-timeout` was not explicitly passed in. This was fixed by making cli args `--db-timeout` optional, so that only explicitly passed in arguments would override the `pg_timeout` otherwise the value specified in `kong.conf` would continue to be used. Co-authored-by: Hans Hübner --- changelog/unreleased/kong/fix-cli-db-timeout-overrides.yml | 5 +++++ kong/cmd/migrations.lua | 6 +++--- kong/cmd/restart.lua | 2 +- kong/cmd/start.lua | 6 +++--- 4 files changed, 12 insertions(+), 7 deletions(-) create mode 100644 changelog/unreleased/kong/fix-cli-db-timeout-overrides.yml diff --git a/changelog/unreleased/kong/fix-cli-db-timeout-overrides.yml b/changelog/unreleased/kong/fix-cli-db-timeout-overrides.yml new file mode 100644 index 000000000000..3db26988e38d --- /dev/null +++ b/changelog/unreleased/kong/fix-cli-db-timeout-overrides.yml @@ -0,0 +1,5 @@ +message: | + Fixed an issue where the `pg_timeout` was overridden to `60s` even if `--db-timeout` + was not explicitly passed in CLI arguments. +type: bugfix +scope: CLI Command diff --git a/kong/cmd/migrations.lua b/kong/cmd/migrations.lua index 3eca305bcd99..41e8bbdba96f 100644 --- a/kong/cmd/migrations.lua +++ b/kong/cmd/migrations.lua @@ -148,7 +148,7 @@ Options: With 'migrate-community-to-enterprise' it disables the workspace entities check. - --db-timeout (default 60) Timeout, in seconds, for all database + --db-timeout (optional number) Timeout, in seconds, for all database operations. @@ -188,7 +188,7 @@ end local function execute(args) - args.db_timeout = args.db_timeout * 1000 + args.db_timeout = args.db_timeout and (args.db_timeout * 1000) or nil args.lock_timeout = args.lock_timeout if args.quiet then @@ -201,7 +201,7 @@ local function execute(args) package.path = conf.lua_package_path .. ";" .. package.path - conf.pg_timeout = args.db_timeout -- connect + send + read + conf.pg_timeout = args.db_timeout or conf.pg_timeout -- connect + send + read assert(prefix_handler.prepare_prefix(conf, args.nginx_conf, true)) diff --git a/kong/cmd/restart.lua b/kong/cmd/restart.lua index 53e1e971c62a..4c2384821e36 100644 --- a/kong/cmd/restart.lua +++ b/kong/cmd/restart.lua @@ -54,7 +54,7 @@ Options: -p,--prefix (optional string) prefix at which Kong should be running --nginx-conf (optional string) custom Nginx configuration template --run-migrations (optional boolean) optionally run migrations on the DB - --db-timeout (default 60) + --db-timeout (optional number) --lock-timeout (default 60) --nginx-conf-flags (optional string) flags that can be used to control how Nginx configuration templates are rendered diff --git a/kong/cmd/start.lua b/kong/cmd/start.lua index 944a3f4fb150..5ab48a1dcda8 100644 --- a/kong/cmd/start.lua +++ b/kong/cmd/start.lua @@ -114,14 +114,14 @@ local function cleanup_dangling_unix_sockets(prefix) end local function execute(args) - args.db_timeout = args.db_timeout * 1000 + args.db_timeout = args.db_timeout and (args.db_timeout * 1000) or nil args.lock_timeout = args.lock_timeout local conf = assert(conf_loader(args.conf, { prefix = args.prefix }, { starting = true })) - conf.pg_timeout = args.db_timeout -- connect + send + read + conf.pg_timeout = args.db_timeout or conf.pg_timeout -- connect + send + read assert(not kill.is_running(conf.nginx_pid), "Kong is already running in " .. conf.prefix) @@ -212,7 +212,7 @@ Options: --run-migrations (optional boolean) Run migrations before starting. - --db-timeout (default 60) Timeout, in seconds, for all database + --db-timeout (optional number) Timeout, in seconds, for all database operations. --lock-timeout (default 60) When --run-migrations is enabled, timeout,