Mikhail Petrov created IGNITE-21023:
---------------------------------------

             Summary: [Control Utility] Authorization errors are propagated to 
user as a task execution exception
                 Key: IGNITE-21023
                 URL: https://issues.apache.org/jira/browse/IGNITE-21023
             Project: Ignite
          Issue Type: Task
            Reporter: Mikhail Petrov


If the control utility command authorization fails, the user output will 
contain only an illegible stack trace of the exception associated with the 
execution of the internal task. In some cases it is impossible to determine the 
root caused command to fail.

As an example you can execute `--cache clear --caches DEFAULT_CACHE_NAME` on 
behalf of the user with no "CACHE_REMOVE" permission granted. As a result you 
will get something like that 


{code:java}
Command [CACHE] finished with code: 4
Error stack trace:
class org.apache.ignite.internal.client.GridClientException: Failed to reduce 
job results due to undeclared user exception 
[task=org.apache.ignite.internal.processors.cache.ClearCachesTask@63acb0d2, 
err=class org.apache.ignite.compute.ComputeUserUndeclaredException: Failed to 
execute job due to unexpected runtime exception 
[jobId=5e5ecaa3c81-3ea239af-6e36-4bde-bc0b-121aca800000, ses=GridJobSessionImpl 
[ses=GridTaskSessionImpl 
[taskName=org.apache.ignite.internal.processors.cache.ClearCachesTask, 
dep=GridDeployment [ts=1701791460030, depMode=SHARED, 
clsLdr=sun.misc.Launcher$AppClassLoader@18b4aac2, 
clsLdrId=4e5ecaa3c81-3ea239af-6e36-4bde-bc0b-121aca800000, userVer=0, loc=true, 
sampleClsName=org.apache.ignite.internal.processors.cache.ClearCachesTask, 
pendingUndeploy=false, undeployed=false, usage=2], 
taskClsName=org.apache.ignite.internal.processors.cache.ClearCachesTask, 
sesId=3e5ecaa3c81-3ea239af-6e36-4bde-bc0b-121aca800000, 
startTime=1701791460020, endTime=9223372036854775807, 
taskNodeId=3ea239af-6e36-4bde-bc0b-121aca800000, 
clsLdr=sun.misc.Launcher$AppClassLoader@18b4aac2, closed=false, cpSpi=null, 
failSpi=null, loadSpi=null, usage=1, fullSup=false, internal=true, 
topPred=null, mapFut=IgniteFuture [orig=GridFutureAdapter 
[ignoreInterrupts=false, state=INIT, res=null, hash=972210139]], execName=null, 
secCtx=TestSecurityContext{subject=TestSecuritySubject{id=26ddd492-a139-4dff-8d6d-27c412101dcc,
 type=REMOTE_CLIENT, login=no-permissions-login}}], 
jobId=5e5ecaa3c81-3ea239af-6e36-4bde-bc0b-121aca800000], err=class 
org.apache.ignite.IgniteCheckedException: Remote job threw exception.]]
        at 
org.apache.ignite.internal.client.impl.connection.GridClientNioTcpConnection.handleClientResponse(GridClientNioTcpConnection.java:634)
        at 
org.apache.ignite.internal.client.impl.connection.GridClientNioTcpConnection.handleResponse(GridClientNioTcpConnection.java:565)
        at 
org.apache.ignite.internal.client.impl.connection.GridClientConnectionManagerAdapter$NioListener.onMessage(GridClientConnectionManagerAdapter.java:691)
        at 
org.apache.ignite.internal.util.nio.GridNioFilterChain$TailFilter.onMessageReceived(GridNioFilterChain.java:279)
        at 
org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:109)
        at 
org.apache.ignite.internal.util.nio.GridNioCodecFilter.onMessageReceived(GridNioCodecFilter.java:116)
        at 
org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:109)
        at 
org.apache.ignite.internal.util.nio.GridNioServer$HeadFilter.onMessageReceived(GridNioServer.java:3753)
        at 
org.apache.ignite.internal.util.nio.GridNioFilterChain.onMessageReceived(GridNioFilterChain.java:175)
        at 
org.apache.ignite.internal.util.nio.GridNioServer$ByteBufferNioClientWorker.processRead(GridNioServer.java:1211)
        at 
org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.processSelectedKeysOptimized(GridNioServer.java:2527)
        at 
org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.bodyInternal(GridNioServer.java:2282)
        at 
org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.body(GridNioServer.java:1911)
        at 
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125)
        at java.lang.Thread.run(Thread.java:750)

{code}




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

Reply via email to