Code of Conduct
Search before asking
Describe the bug
kyuubi.server.info.provider set in kyuubi-defaults.conf is silently ignored — KyuubiSessionImpl#getInfo always behaves as if the value were the default ENGINE; every TGetInfo call therefore waits for an engine to launch and is forwarded to it.
Root cause
SERVER_INFO_PROVIDER is marked .serverOnly. KyuubiSessionManager#openSession builds the per-session conf via getConf.getUserDefaults(user), which unsets every serverOnly entry before returning. As a result, sessionConf.get(SERVER_INFO_PROVIDER) in KyuubiSessionImpl#getInfo always returns the hard-coded default "ENGINE", regardless of kyuubi-defaults.conf.
It only appears to work in tests because they pass the value as a per-session overlay (withSessionConf(...)), which is re-applied after getUserDefaults.
Steps to reproduce
- Set
kyuubi.server.info.provider=SERVER in kyuubi-defaults.conf.
- Connect via JDBC/beeline without overriding it per-session.
- A
GetInfo call still waits for an engine and the call is forwarded to it, instead of the server returning its own info directly.
Expected vs Actual
- Expected: server-level
SERVER setting takes effect; getInfo returns Kyuubi server info immediately.
- Actual: server-level setting is dropped;
getInfo always takes the ENGINE branch.
Suggested fix
Read SERVER_INFO_PROVIDER from the server-level conf, while still letting an explicit per-session override win:
val provider = sessionConf.getOption(SERVER_INFO_PROVIDER.key)
.getOrElse(sessionManager.getConf.get(SERVER_INFO_PROVIDER))
Making the entry non-serverOnly would also fix it, but would change the semantics for all other usages and would let clients flip the mode, so the targeted fix is preferred.
Affects Version(s)
1.11.1
Kyuubi Server Log Output
N/A — no error is logged. The bug is a silent fallback to the default value.
Kyuubi Engine Log Output
Kyuubi Server Configurations
kyuubi.server.info.provider=SERVER
Kyuubi Engine Configurations
# N/A — engine-side config does not affect this bug.
Additional context
No response
Are you willing to submit PR?
Code of Conduct
Search before asking
Describe the bug
kyuubi.server.info.providerset inkyuubi-defaults.confis silently ignored —KyuubiSessionImpl#getInfoalways behaves as if the value were the defaultENGINE; everyTGetInfocall therefore waits for an engine to launch and is forwarded to it.Root cause
SERVER_INFO_PROVIDERis marked.serverOnly.KyuubiSessionManager#openSessionbuilds the per-session conf viagetConf.getUserDefaults(user), which unsets everyserverOnlyentry before returning. As a result,sessionConf.get(SERVER_INFO_PROVIDER)inKyuubiSessionImpl#getInfoalways returns the hard-coded default"ENGINE", regardless ofkyuubi-defaults.conf.It only appears to work in tests because they pass the value as a per-session overlay (
withSessionConf(...)), which is re-applied aftergetUserDefaults.Steps to reproduce
kyuubi.server.info.provider=SERVERinkyuubi-defaults.conf.GetInfocall still waits for an engine and the call is forwarded to it, instead of the server returning its own info directly.Expected vs Actual
SERVERsetting takes effect;getInforeturns Kyuubi server info immediately.getInfoalways takes theENGINEbranch.Suggested fix
Read
SERVER_INFO_PROVIDERfrom the server-level conf, while still letting an explicit per-session override win:Making the entry non-
serverOnlywould also fix it, but would change the semantics for all other usages and would let clients flip the mode, so the targeted fix is preferred.Affects Version(s)
1.11.1
Kyuubi Server Log Output
Kyuubi Engine Log Output
Kyuubi Server Configurations
kyuubi.server.info.provider=SERVERKyuubi Engine Configurations
# N/A — engine-side config does not affect this bug.Additional context
No response
Are you willing to submit PR?