[
https://issues.apache.org/jira/browse/KNOX-2915?focusedWorklogId=864417&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-864417
]
ASF GitHub Bot logged work on KNOX-2915:
----------------------------------------
Author: ASF GitHub Bot
Created on: 08/Jun/23 11:04
Start Date: 08/Jun/23 11:04
Worklog Time Spent: 10m
Work Description: smolnar82 opened a new pull request, #760:
URL: https://github.com/apache/knox/pull/760
## What changes were proposed in this pull request?
Descriptors are reloaded before topology redeployment at startup. Thus, Knox
will have the up-to-date version of the XML topology files generated from the
JSON descriptor before it's deployed as a web app in Knox.
## How was this patch tested?
Manually tested in a secure (i.e. Kerberos-enabled) cluster with high demand
on getting a Knox Token using a topology with HadoopAuth authentication in
place. Before my changes, the token generation failed 99% of the time. After
the fix went in, all tokens were acquired properly.
Issue Time Tracking
-------------------
Worklog Id: (was: 864417)
Remaining Estimate: 0h
Time Spent: 10m
> Knox should update topologies before deploying them
> ---------------------------------------------------
>
> Key: KNOX-2915
> URL: https://issues.apache.org/jira/browse/KNOX-2915
> Project: Apache Knox
> Issue Type: Bug
> Components: Server
> Affects Versions: 2.0.0, 1.6.0, 1.6.1
> Reporter: Sandor Molnar
> Assignee: Sandor Molnar
> Priority: Critical
> Fix For: 2.1.0
>
> Time Spent: 10m
> Remaining Estimate: 0h
>
> During the gateway startup, Knox executes the following steps (among others)
> in this order:
> # reloads/redeploys topologies
> # triggers descriptors reload to trigger service discovery (see KNOX-2301)
> The problem with this approach is, that in the case of dynamic Kerberos
> settings (variable keytab path and principal name), Knox may deploy a
> topology with old settings that are no longer valid, and only a couple of
> seconds later (in my test environment it was between 10-20 seconds for a
> particular topology) it redeploys the topology with up-to-date configuration.
> This might be irrelevant if that topology is not used in that small time
> window, however, there is a chance that Knox will fail to serve the request
> with an error message similar to this:
> {noformat}
> 2023-06-06 19:33:00,756 9ee494e4-4ede-4a81-962e-77334bfd80b8 ERROR
> knox.gateway (AbstractGatewayFilter.java:doFilter(60)) - Failed to execute
> filter: javax.servlet.ServletException: javax.servlet.ServletException:
> javax.servlet.ServletException: Keytab does not exist:
> /$DYNAMIC_KEYTAB_PATH//knox.keytab
> 2023-06-06 19:33:00,757 9ee494e4-4ede-4a81-962e-77334bfd80b8 ERROR
> knox.gateway (GatewayFilter.java:doFilter(197)) - Gateway processing failed:
> javax.servlet.ServletException: javax.servlet.ServletException:
> javax.servlet.ServletException: Keytab does not exist:
> /$DYNAMIC_KEYTAB_PATH//knox.keytab
> javax.servlet.ServletException: javax.servlet.ServletException:
> javax.servlet.ServletException: Keytab does not exist:
> /$DYNAMIC_KEYTAB_PATH/knox.keytab
> {noformat}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)