[ 
https://issues.apache.org/jira/browse/KNOX-3171?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Adam Binford updated KNOX-3171:
-------------------------------
    Description: 
Spark UI is not fully functional in 4.0.0 when viewed through the YARN UI proxy 
due to the rewrite rules for proxying adding a trailing slash. Somehow this 
seems to not have caused a problem until now, but there is a new inline script 
that does not function correctly

Original code:
```
                <div class="col-12">
                    <div id="active-executors"></div>
                    <script type="module" 
src="/proxy/application_1753390029632_0001/static/utils.js"></script>
                    <script type="module" 
src="/proxy/application_1753390029632_0001/static/executorspage.js"></script>
                    <script type="module">
                        import {setThreadDumpEnabled, setHeapHistogramEnabled} 
from "/proxy/application_1753390029632_0001/static/executorspage.js";

                        setThreadDumpEnabled(true);
                        setHeapHistogramEnabled(true)
                    </script>
                </div>
```

Knox rewrite:
```
            <div class="col-12">
              <div id="active-executors"></div>
              <script type="module" 
src="https://localhost:8443/gateway/sandbox/yarn/proxy/application_1753390029632_0001/static/utils.js/";></script>
              <script type="module" 
src="https://localhost:8443/gateway/sandbox/yarn/proxy/application_1753390029632_0001/static/executorspage.js/";></script>
              <script type="module">
                import {setThreadDumpEnabled, setHeapHistogramEnabled} from 
"https://localhost:8443/gateway/sandbox/yarn/proxy/application_1753390029632_0001/static/executorspage.js";;

                setThreadDumpEnabled(true);
                setHeapHistogramEnabled(true);
              /</script>
            </div>
```

This leads to two errors in the browser console:
```
GET 
https://localhost:8443/gateway/sandbox/yarn/proxy/application_1753390683205_0007/static/executorspage.js/utils.js
 net::ERR_ABORTED 404 (Not Found)Understand this error
executors/:62 Uncaught SyntaxError: Unexpected end of input (at executors/:62:2)
```

The first is because `executorspage.js` has a import from `./utils.js`, so some 
part of that import gets messed up with the trailing slash. The second is 
because of the `/` right before the `</script>` tag that the rewrite rule seems 
to erroneously add. Either way the trailing slashes don't really make sense and 
shouldn't be needed.


  was:
Spark UI is not fully functional when viewed through the YARN UI proxy due to 
the rewrite rules for proxying adding a trailing slash. Somehow this seems to 
not have caused a problem until now, but there is a new inline script that does 
not function correctly

Original code:
```
                <div class="col-12">
                    <div id="active-executors"></div>
                    <script type="module" 
src="/proxy/application_1753390029632_0001/static/utils.js"></script>
                    <script type="module" 
src="/proxy/application_1753390029632_0001/static/executorspage.js"></script>
                    <script type="module">
                        import {setThreadDumpEnabled, setHeapHistogramEnabled} 
from "/proxy/application_1753390029632_0001/static/executorspage.js";

                        setThreadDumpEnabled(true);
                        setHeapHistogramEnabled(true)
                    </script>
                </div>
```

Knox rewrite:
```
            <div class="col-12">
              <div id="active-executors"></div>
              <script type="module" 
src="https://localhost:8443/gateway/sandbox/yarn/proxy/application_1753390029632_0001/static/utils.js/";></script>
              <script type="module" 
src="https://localhost:8443/gateway/sandbox/yarn/proxy/application_1753390029632_0001/static/executorspage.js/";></script>
              <script type="module">
                import {setThreadDumpEnabled, setHeapHistogramEnabled} from 
"https://localhost:8443/gateway/sandbox/yarn/proxy/application_1753390029632_0001/static/executorspage.js";;

                setThreadDumpEnabled(true);
                setHeapHistogramEnabled(true);
              /</script>
            </div>
```

This leads to two errors in the browser console:
```
GET 
https://localhost:8443/gateway/sandbox/yarn/proxy/application_1753390683205_0007/static/executorspage.js/utils.js
 net::ERR_ABORTED 404 (Not Found)Understand this error
executors/:62 Uncaught SyntaxError: Unexpected end of input (at executors/:62:2)
```

The first is because `executorspage.js` has a import from `./utils.js`, so some 
part of that import gets messed up with the trailing slash. The second is 
because of the `/` right before the `</script>` tag that the rewrite rule seems 
to erroneously add. Either way the trailing slashes don't really make sense and 
shouldn't be needed.



> YARN proxy rewrite causes issues for Spark 4.0.0 UI
> ---------------------------------------------------
>
>                 Key: KNOX-3171
>                 URL: https://issues.apache.org/jira/browse/KNOX-3171
>             Project: Apache Knox
>          Issue Type: Bug
>            Reporter: Adam Binford
>            Priority: Major
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Spark UI is not fully functional in 4.0.0 when viewed through the YARN UI 
> proxy due to the rewrite rules for proxying adding a trailing slash. Somehow 
> this seems to not have caused a problem until now, but there is a new inline 
> script that does not function correctly
> Original code:
> ```
>                 <div class="col-12">
>                     <div id="active-executors"></div>
>                     <script type="module" 
> src="/proxy/application_1753390029632_0001/static/utils.js"></script>
>                     <script type="module" 
> src="/proxy/application_1753390029632_0001/static/executorspage.js"></script>
>                     <script type="module">
>                         import {setThreadDumpEnabled, 
> setHeapHistogramEnabled} from 
> "/proxy/application_1753390029632_0001/static/executorspage.js";
>                         setThreadDumpEnabled(true);
>                         setHeapHistogramEnabled(true)
>                     </script>
>                 </div>
> ```
> Knox rewrite:
> ```
>             <div class="col-12">
>               <div id="active-executors"></div>
>               <script type="module" 
> src="https://localhost:8443/gateway/sandbox/yarn/proxy/application_1753390029632_0001/static/utils.js/";></script>
>               <script type="module" 
> src="https://localhost:8443/gateway/sandbox/yarn/proxy/application_1753390029632_0001/static/executorspage.js/";></script>
>               <script type="module">
>                 import {setThreadDumpEnabled, setHeapHistogramEnabled} from 
> "https://localhost:8443/gateway/sandbox/yarn/proxy/application_1753390029632_0001/static/executorspage.js";;
>                 setThreadDumpEnabled(true);
>                 setHeapHistogramEnabled(true);
>               /</script>
>             </div>
> ```
> This leads to two errors in the browser console:
> ```
> GET 
> https://localhost:8443/gateway/sandbox/yarn/proxy/application_1753390683205_0007/static/executorspage.js/utils.js
>  net::ERR_ABORTED 404 (Not Found)Understand this error
> executors/:62 Uncaught SyntaxError: Unexpected end of input (at 
> executors/:62:2)
> ```
> The first is because `executorspage.js` has a import from `./utils.js`, so 
> some part of that import gets messed up with the trailing slash. The second 
> is because of the `/` right before the `</script>` tag that the rewrite rule 
> seems to erroneously add. Either way the trailing slashes don't really make 
> sense and shouldn't be needed.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to