[ 
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)

Reply via email to