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)