[
https://issues.apache.org/jira/browse/IGNITE-27230?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18042482#comment-18042482
]
Pavel Tupitsyn commented on IGNITE-27230:
-----------------------------------------
https://github.com/apache/ignite-3/commit/b210c57e6c77c66ea35673cac214f5ec5ef683b5
> .NET: Add separator for Java stack trace
> ----------------------------------------
>
> Key: IGNITE-27230
> URL: https://issues.apache.org/jira/browse/IGNITE-27230
> Project: Ignite
> Issue Type: Improvement
> Components: platforms ai3
> Reporter: Pavel Tupitsyn
> Assignee: Pavel Tupitsyn
> Priority: Major
> Labels: ignite-3
> Fix For: 3.2
>
> Time Spent: 20m
> Remaining Estimate: 0h
>
> When *sendServerExceptionStackTraceToClient* is enabled, we put Java stack
> trace into the message of *InnerExption*. With long stack traces it is
> difficult to tell where Java stack trace starts and ends.
> Add "--- End of server-side stack trace ---" separator to improve this.
> {code}
> Apache.Ignite.Sql.SqlException : Unable to compile expression
> ----> Apache.Ignite.IgniteException : org.apache.ignite.sql.SqlException:
> IGN-CMN-65535 Unable to compile expression TraceId:c13d9e6e
> at
> org.apache.ignite.internal.lang.SqlExceptionMapperUtil.mapToPublicSqlException(SqlExceptionMapperUtil.java:65)
> at
> org.apache.ignite.internal.sql.engine.exec.TxAwareAsyncCursor.wrapIfNecessary(TxAwareAsyncCursor.java:152)
> at
> org.apache.ignite.internal.sql.engine.exec.TxAwareAsyncCursor.handleError(TxAwareAsyncCursor.java:127)
> at
> org.apache.ignite.internal.sql.engine.exec.TxAwareAsyncCursor.lambda$requestNextAsync$2(TxAwareAsyncCursor.java:60)
> at
> java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:934)
> at
> java.base/java.util.concurrent.CompletableFuture$UniHandle.tryFire(CompletableFuture.java:911)
> at
> java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)
> at
> java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2162)
> at
> org.apache.ignite.internal.sql.engine.exec.rel.AsyncRootNode.lambda$closeAsync$0(AsyncRootNode.java:169)
> at
> java.base/java.util.concurrent.ConcurrentLinkedQueue.forEachFrom(ConcurrentLinkedQueue.java:1037)
> at
> java.base/java.util.concurrent.ConcurrentLinkedQueue.forEach(ConcurrentLinkedQueue.java:1054)
> at
> org.apache.ignite.internal.sql.engine.exec.rel.AsyncRootNode.closeAsync(AsyncRootNode.java:169)
> at
> org.apache.ignite.internal.sql.engine.exec.rel.AsyncRootNode.onError(AsyncRootNode.java:123)
> at
> org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl$DistributedQueryManager.lambda$acknowledgeFragment$1(ExecutionServiceImpl.java:1119)
> at
> java.base/java.util.concurrent.CompletableFuture.uniAcceptNow(CompletableFuture.java:757)
> at
> java.base/java.util.concurrent.CompletableFuture.uniAcceptStage(CompletableFuture.java:735)
> at
> java.base/java.util.concurrent.CompletableFuture.thenAccept(CompletableFuture.java:2182)
> at
> org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl$DistributedQueryManager.acknowledgeFragment(ExecutionServiceImpl.java:1118)
> at
> org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl.onMessage(ExecutionServiceImpl.java:758)
> at
> org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl.lambda$start$3(ExecutionServiceImpl.java:350)
> at
> org.apache.ignite.internal.sql.engine.message.MessageServiceImpl.onMessageInternal(MessageServiceImpl.java:163)
> at
> org.apache.ignite.internal.sql.engine.message.MessageServiceImpl.lambda$onMessage$2(MessageServiceImpl.java:129)
> at
> org.apache.ignite.internal.sql.engine.exec.QueryTaskExecutorImpl.lambda$execute$0(QueryTaskExecutorImpl.java:93)
> at
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
> at
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
> at java.base/java.lang.Thread.run(Thread.java:833)
> Caused by: org.apache.ignite.lang.IgniteException: IGN-CMN-65535 Unable to
> compile expression TraceId:c13d9e6e
> at
> org.apache.ignite.internal.lang.IgniteExceptionMapperUtil.lambda$mapToPublicException$2(IgniteExceptionMapperUtil.java:80)
> at
> org.apache.ignite.internal.lang.IgniteExceptionMapperUtil.mapCheckingResultIsPublic(IgniteExceptionMapperUtil.java:133)
> at
> org.apache.ignite.internal.lang.IgniteExceptionMapperUtil.mapToPublicException(IgniteExceptionMapperUtil.java:129)
> at
> org.apache.ignite.internal.lang.IgniteExceptionMapperUtil.mapToPublicException(IgniteExceptionMapperUtil.java:80)
> at
> org.apache.ignite.internal.lang.SqlExceptionMapperUtil.mapToPublicSqlException(SqlExceptionMapperUtil.java:55)
> ... 25 more
> Caused by: org.apache.ignite.internal.lang.IgniteInternalException:
> IGN-CMN-65535 Unable to compile expression TraceId:c13d9e6e
> at
> org.apache.ignite.internal.sql.engine.util.Commons.compile(Commons.java:406)
> at
> org.apache.ignite.internal.sql.engine.exec.exp.PredicateImplementor.implementInternal(PredicateImplementor.java:118)
> at
> org.apache.ignite.internal.sql.engine.exec.exp.PredicateImplementor.lambda$implement$0(PredicateImplementor.java:71)
> at
> com.github.benmanes.caffeine.cache.BoundedLocalCache.lambda$doComputeIfAbsent$14(BoundedLocalCache.java:2704)
> at
> java.base/java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1916)
> at
> com.github.benmanes.caffeine.cache.BoundedLocalCache.doComputeIfAbsent(BoundedLocalCache.java:2702)
> at
> com.github.benmanes.caffeine.cache.BoundedLocalCache.computeIfAbsent(BoundedLocalCache.java:2684)
> at
> com.github.benmanes.caffeine.cache.LocalCache.computeIfAbsent(LocalCache.java:112)
> at
> com.github.benmanes.caffeine.cache.LocalManualCache.get(LocalManualCache.java:63)
> at
> org.apache.ignite.internal.sql.engine.util.cache.CaffeineCacheFactory$CaffeineCacheToCacheAdapter.get(CaffeineCacheFactory.java:133)
> at
> org.apache.ignite.internal.sql.engine.exec.exp.PredicateImplementor.implement(PredicateImplementor.java:71)
> at
> org.apache.ignite.internal.sql.engine.exec.exp.ExpressionFactoryImpl.predicate(ExpressionFactoryImpl.java:122)
> at
> org.apache.ignite.internal.sql.engine.exec.LogicalRelImplementor.visit(LogicalRelImplementor.java:571)
> at
> org.apache.ignite.internal.sql.engine.exec.LogicalRelImplementor.visit(LogicalRelImplementor.java:166)
> at
> org.apache.ignite.internal.sql.engine.rel.IgniteTableScan.accept(IgniteTableScan.java:186)
> at
> org.apache.ignite.internal.sql.engine.exec.LogicalRelImplementor.visit(LogicalRelImplementor.java:1119)
> at
> org.apache.ignite.internal.sql.engine.exec.LogicalRelImplementor.visit(LogicalRelImplementor.java:1177)
> at
> org.apache.ignite.internal.sql.engine.exec.LogicalRelImplementor.visit(LogicalRelImplementor.java:240)
> at
> org.apache.ignite.internal.sql.engine.exec.LogicalRelImplementor.visit(LogicalRelImplementor.java:166)
> at
> org.apache.ignite.internal.sql.engine.rel.IgniteSender.accept(IgniteSender.java:101)
> at
> org.apache.ignite.internal.sql.engine.exec.LogicalRelImplementor.visit(LogicalRelImplementor.java:1119)
> at
> org.apache.ignite.internal.sql.engine.exec.LogicalRelImplementor.go(LogicalRelImplementor.java:1260)
> at
> org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl$DistributedQueryManager.executeFragment(ExecutionServiceImpl.java:1150)
> at
> org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl$DistributedQueryManager.submitFragment(ExecutionServiceImpl.java:1237)
> at
> org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl.submitFragment(ExecutionServiceImpl.java:838)
> at
> org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl.onMessage(ExecutionServiceImpl.java:739)
> at
> org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl.lambda$start$2(ExecutionServiceImpl.java:349)
> at
> org.apache.ignite.internal.sql.engine.message.MessageServiceImpl.onMessageInternal(MessageServiceImpl.java:163)
> at
> org.apache.ignite.internal.sql.engine.message.MessageServiceImpl.lambda$onMessage$1(MessageServiceImpl.java:127)
> ... 4 more
> Caused by: org.codehaus.commons.compiler.InternalCompilerException: Cannot
> load simple types
> at org.codehaus.janino.IClassLoader.postConstruct(IClassLoader.java:189)
> at
> org.codehaus.janino.ClassLoaderIClassLoader.<init>(ClassLoaderIClassLoader.java:51)
> at org.codehaus.janino.SimpleCompiler.cook(SimpleCompiler.java:263)
> at org.codehaus.janino.ClassBodyEvaluator.cook(ClassBodyEvaluator.java:303)
> at org.codehaus.janino.ClassBodyEvaluator.cook2(ClassBodyEvaluator.java:297)
> at org.codehaus.janino.ClassBodyEvaluator.cook(ClassBodyEvaluator.java:273)
> at org.codehaus.janino.ClassBodyEvaluator.cook(ClassBodyEvaluator.java:267)
> at org.codehaus.commons.compiler.Cookable.cook(Cookable.java:52)
> at
> org.codehaus.janino.ClassBodyEvaluator.createInstance(ClassBodyEvaluator.java:413)
> at
> org.apache.ignite.internal.sql.engine.util.Commons.compile(Commons.java:404)
> ... 32 more
> Caused by: java.lang.NullPointerException: Cannot invoke
> "java.lang.ClassLoader.loadClass(String)" because "this.classLoader" is null
> at
> org.codehaus.janino.ClassLoaderIClassLoader.findIClass(ClassLoaderIClassLoader.java:75)
> at org.codehaus.janino.IClassLoader.loadIClass(IClassLoader.java:317)
> at org.codehaus.janino.IClassLoader.requireType(IClassLoader.java:198)
> at org.codehaus.janino.IClassLoader.postConstruct(IClassLoader.java:134)
> ... 41 more
> at Apache.Ignite.Internal.ClientSocket.DoOutInOpAsyncInternal(ClientOp
> clientOp, PooledArrayBuffer request, Boolean expectNotifications,
> CancellationToken cancellationToken) in
> /opt/buildagent/work/20b0d84335ec07af/gridgain-9/modules/platforms/dotnet/Apache.Ignite/Internal/ClientSocket.cs:line
> 706
> at Apache.Ignite.Internal.ClientSocket.DoOutInOpAsyncInternal(ClientOp
> clientOp, PooledArrayBuffer request, Boolean expectNotifications,
> CancellationToken cancellationToken) in
> /opt/buildagent/work/20b0d84335ec07af/gridgain-9/modules/platforms/dotnet/Apache.Ignite/Internal/ClientSocket.cs:line
> 709
> at
> Apache.Ignite.Internal.ClientFailoverSocket.<>c.<<DoOutInOpAndGetSocketAsync>b__27_1>d.MoveNext()
> in
> /opt/buildagent/work/20b0d84335ec07af/gridgain-9/modules/platforms/dotnet/Apache.Ignite/Internal/ClientFailoverSocket.cs:line
> 210
> --- End of stack trace from previous location ---
> at
> Apache.Ignite.Internal.ClientFailoverSocket.DoWithRetryAsync[T,TArg](TArg
> arg, Func`3 opFunc, Func`3 func, PreferredNode preferredNode, IRetryPolicy
> retryPolicyOverride) in
> /opt/buildagent/work/20b0d84335ec07af/gridgain-9/modules/platforms/dotnet/Apache.Ignite/Internal/ClientFailoverSocket.cs:line
> 249
> at
> Apache.Ignite.Internal.ClientFailoverSocket.DoOutInOpAndGetSocketAsync(ClientOp
> clientOp, Transaction tx, PooledArrayBuffer request, PreferredNode
> preferredNode, IRetryPolicy retryPolicyOverride, Boolean expectNotifications,
> CancellationToken cancellationToken) in
> /opt/buildagent/work/20b0d84335ec07af/gridgain-9/modules/platforms/dotnet/Apache.Ignite/Internal/ClientFailoverSocket.cs:line
> 205
> at Apache.Ignite.Internal.Sql.Sql.ExecuteAsyncInternal[T](ITransaction
> transaction, SqlStatement statement, RowReaderFactory`1 rowReaderFactory,
> ICollection`1 args, CancellationToken cancellationToken) in
> /opt/buildagent/work/20b0d84335ec07af/gridgain-9/modules/platforms/dotnet/Apache.Ignite/Internal/Sql/Sql.cs:line
> 230
> at
> Apache.Ignite.Internal.Linq.IgniteQueryExecutor.ExecuteResultSetInternalAsync[T](QueryModel
> queryModel) in
> /opt/buildagent/work/20b0d84335ec07af/gridgain-9/modules/platforms/dotnet/Apache.Ignite/Internal/Linq/IgniteQueryExecutor.cs:line
> 125
> at
> Apache.Ignite.Internal.Linq.IgniteQueryExecutor.ExecuteSingleInternalAsync[T](QueryModel
> queryModel, ExecutionOptions options) in
> /opt/buildagent/work/20b0d84335ec07af/gridgain-9/modules/platforms/dotnet/Apache.Ignite/Internal/Linq/IgniteQueryExecutor.cs:line
> 146
> at
> Apache.Ignite.Internal.Linq.IgniteQueryExecutor.ExecuteSingle[T](QueryModel
> queryModel, Boolean returnDefaultWhenEmpty) in
> /opt/buildagent/work/20b0d84335ec07af/gridgain-9/modules/platforms/dotnet/Apache.Ignite/Internal/Linq/IgniteQueryExecutor.cs:line
> 65
> at
> Apache.Ignite.Internal.Linq.IgniteQueryExecutor.ExecuteScalar[T](QueryModel
> queryModel) in
> /opt/buildagent/work/20b0d84335ec07af/gridgain-9/modules/platforms/dotnet/Apache.Ignite/Internal/Linq/IgniteQueryExecutor.cs:line
> 61
> at
> Remotion.Linq.Clauses.StreamedData.StreamedScalarValueInfo.ExecuteScalarQueryModel[T](QueryModel
> queryModel, IQueryExecutor executor)
> at
> Remotion.Linq.Clauses.StreamedData.StreamedScalarValueInfo.ExecuteQueryModel(QueryModel
> queryModel, IQueryExecutor executor)
> at Remotion.Linq.QueryModel.Execute(IQueryExecutor executor)
> at Apache.Ignite.Internal.Linq.IgniteQueryProvider.Execute(Expression
> expression) in
> /opt/buildagent/work/20b0d84335ec07af/gridgain-9/modules/platforms/dotnet/Apache.Ignite/Internal/Linq/IgniteQueryProvider.cs:line
> 155
> at
> Apache.Ignite.Internal.Linq.IgniteQueryProvider.Execute[TResult](Expression
> expression) in
> /opt/buildagent/work/20b0d84335ec07af/gridgain-9/modules/platforms/dotnet/Apache.Ignite/Internal/Linq/IgniteQueryProvider.cs:line
> 84
> at
> Apache.Ignite.Tests.Linq.LinqTests.<>c.<TestAggregateNullableAllTypes>b__16_2(IQueryable`1
> q) in
> /opt/buildagent/work/20b0d84335ec07af/gridgain-9/modules/platforms/dotnet/Apache.Ignite.Tests/Linq/LinqTests.Aggregate.cs:line
> 212
> at
> Apache.Ignite.Tests.Linq.LinqTests.<TestAggregateNullableAllTypes>g__Test|16_7[T](Func`2
> sumFunc) in
> /opt/buildagent/work/20b0d84335ec07af/gridgain-9/modules/platforms/dotnet/Apache.Ignite.Tests/Linq/LinqTests.Aggregate.cs:line
> 223
> at Apache.Ignite.Tests.Linq.LinqTests.TestAggregateNullableAllTypes() in
> /opt/buildagent/work/20b0d84335ec07af/gridgain-9/modules/platforms/dotnet/Apache.Ignite.Tests/Linq/LinqTests.Aggregate.cs:line
> 212
> at System.RuntimeMethodHandle.InvokeMethod(Object target, Void**
> arguments, Signature sig, Boolean isConstructor)
> at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj,
> BindingFlags invokeAttr)
> --IgniteException
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)