Details
Description
If an attempt is in FINAL_SAVING state, the RMAppAttemptBlock#createAttemptHeadRoomTable method fails with a convert error, what will results a
RFC6265 Cookie values may not contain character: [ ]
error in the UI an in the logs as well.
RM log:
... at java.lang.Thread.run(Thread.java:750) Caused by: java.lang.IllegalArgumentException: No enum constant org.apache.hadoop.yarn.api.records.YarnApplicationAttemptState.FINAL_SAVING at java.lang.Enum.valueOf(Enum.java:238) at org.apache.hadoop.yarn.api.records.YarnApplicationAttemptState.valueOf(YarnApplicationAttemptState.java:27) at org.apache.hadoop.yarn.server.resourcemanager.webapp.RMAppAttemptBlock.createAttemptHeadRoomTable(RMAppAttemptBlock.java:424) at org.apache.hadoop.yarn.server.webapp.AppAttemptBlock.render(AppAttemptBlock.java:151) at org.apache.hadoop.yarn.webapp.view.HtmlBlock.render(HtmlBlock.java:69) at org.apache.hadoop.yarn.webapp.view.HtmlBlock.renderPartial(HtmlBlock.java:79) at org.apache.hadoop.yarn.webapp.View.render(View.java:243) at org.apache.hadoop.yarn.webapp.view.HtmlPage$Page.subView(HtmlPage.java:49) at org.apache.hadoop.yarn.webapp.hamlet2.HamletImpl$EImp._v(HamletImpl.java:117) at org.apache.hadoop.yarn.webapp.hamlet2.Hamlet$TD.__(Hamlet.java:848) at org.apache.hadoop.yarn.webapp.view.TwoColumnLayout.render(TwoColumnLayout.java:71) at org.apache.hadoop.yarn.webapp.view.HtmlPage.render(HtmlPage.java:82) at org.apache.hadoop.yarn.webapp.Controller.render(Controller.java:216) at org.apache.hadoop.yarn.server.resourcemanager.webapp.RmController.appattempt(RmController.java:62) ... 63 more 2022-12-05 04:15:33,029 WARN org.eclipse.jetty.server.HttpChannel: /cluster/appattempt/appattempt_1667297151262_0247_000001 java.lang.IllegalArgumentException: RFC6265 Cookie values may not contain character: [ ] at org.eclipse.jetty.http.Syntax.requireValidRFC6265CookieValue(Syntax.java:136) ...
This bug was introduced with the YARN-1345 ticket what also caused a similar error called YARN-4411. In case of the YARN-4411 the enum mapping logic from RMAppAttemptStates to YarnApplicationAttemptState was modified like this:
- if the state is FINAL_SAVING we should represent the previous state
This error can also be occur in case of ALLOCATED_SAVING, LAUNCHED_UNMANAGED_SAVING states as well.
So we should modify the createAttemptHeadRoomTable method to be able to handle the previously mentioned 3 states just like in case of YARN-4411