[ 
https://issues.apache.org/jira/browse/IGNITE-28312?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18073865#comment-18073865
 ] 

Anton Laletin commented on IGNITE-28312:
----------------------------------------

Investigated logs and did not find any actual debug records in node log files.
What we do see is a Java call stack / stack trace sample (from 
diagnostics/profiling), not a log record itself.
The stack shows execution reached IgniteLoggerImpl.debug(...) and formatting 
code, which means debug was likely enabled for that logger/class at runtime 
(possibly local/per-class override).
At the same time, default JUL config still filters output at handler level,
but no real debug lines are written to standard log files because handlers are 
configured to INFO.
Since the run was done locally it is likely local/per-class runtime debug 
enablement + default INFO handlers => no visible debug logs in collected files.
So we are closing this issue.

> Heap allocations caused by debug logging that is not actually used
> ------------------------------------------------------------------
>
>                 Key: IGNITE-28312
>                 URL: https://issues.apache.org/jira/browse/IGNITE-28312
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Denis Chudov
>            Assignee: Anton Laletin
>            Priority: Major
>              Labels: ignite-3
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Usages of debug logging on hot path should be revised.
> Examples:
> {noformat}
> void java.lang.Thread.run()
> void java.lang.Thread.runWith(Object, Runnable)
> void java.util.concurrent.ThreadPoolExecutor$Worker.run()
> void 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker)
> void 
> org.apache.ignite.internal.replicator.ReplicaService$$Lambda.0x0000000800f9c228.run()
> void 
> org.apache.ignite.internal.replicator.ReplicaService.lambda$sendToReplicaRaw$6(CompletableFuture,
>  ErrorReplicaResponse)
> boolean 
> java.util.concurrent.CompletableFuture.completeExceptionally(Throwable)
> void java.util.concurrent.CompletableFuture.postComplete()
> CompletableFuture 
> java.util.concurrent.CompletableFuture$UniHandle.tryFire(int)
> boolean java.util.concurrent.CompletableFuture.uniHandle(Object, BiFunction, 
> CompletableFuture$UniHandle)
> Object 
> org.apache.ignite.internal.table.distributed.storage.InternalTableImpl$$Lambda.0x0000000801167b80.apply(Object,
>  Object)
> CompletableFuture 
> org.apache.ignite.internal.table.distributed.storage.InternalTableImpl.lambda$postEnlist$16(boolean,
>  InternalTransaction, boolean, Object, Throwable)
> CompletableFuture 
> org.apache.ignite.internal.tx.impl.ReadWriteTransactionImpl.rollbackAsync()
> CompletableFuture 
> org.apache.ignite.internal.tx.impl.ReadWriteTransactionImpl.finish(boolean, 
> HybridTimestamp, boolean, boolean)
> CompletableFuture 
> org.apache.ignite.internal.tx.impl.ReadWriteTransactionImpl.finishInternal(boolean,
>  HybridTimestamp, boolean, boolean, boolean)
> CompletableFuture java.util.concurrent.CompletableFuture.handle(BiFunction)
> CompletableFuture 
> java.util.concurrent.CompletableFuture.uniHandleStage(Executor, BiFunction)
> boolean java.util.concurrent.CompletableFuture.uniHandle(Object, BiFunction, 
> CompletableFuture$UniHandle)
> Object 
> org.apache.ignite.internal.tx.impl.ReadWriteTransactionImpl$$Lambda.0x00000008011fe3c8.apply(Object,
>  Object)
> CompletableFuture 
> org.apache.ignite.internal.tx.impl.ReadWriteTransactionImpl.lambda$finishInternal$6(boolean,
>  boolean, Void, Throwable)
> CompletableFuture 
> org.apache.ignite.internal.tx.impl.TxManagerImpl.finish(HybridTimestampTracker,
>  ZonePartitionId, boolean, boolean, boolean, boolean, Map, UUID)
> void org.apache.ignite.internal.logger.IgniteLoggerImpl.debug(String, 
> Object[])
> void 
> org.apache.ignite.internal.logger.IgniteLoggerImpl.logInternal(System$Logger$Level,
>  String, Throwable, Object[])
> String org.apache.ignite.internal.lang.IgniteStringFormatter.format(String, 
> Object[])
> void 
> org.apache.ignite.internal.lang.IgniteStringFormatter.deeplyAppendParameter(StringBuilder,
>  Object, HashSet)
> void 
> org.apache.ignite.internal.lang.IgniteStringFormatter.safeObjectAppend(StringBuilder,
>  Object)
> String java.util.concurrent.ConcurrentHashMap.toString()
> StringBuilder java.lang.StringBuilder.append(Object)
> String java.lang.String.valueOf(Object)
> String org.apache.ignite.internal.tx.PendingTxPartitionEnlistment.toString()
> String 
> org.apache.ignite.internal.tostring.IgniteToStringBuilder.toString(Class, 
> Object, String)
> String 
> org.apache.ignite.internal.tostring.IgniteToStringBuilder.toString(Class, 
> Object, String, Object)
> String 
> org.apache.ignite.internal.tostring.IgniteToStringBuilder.toString(Class, 
> Object, String, Object, boolean)
> {noformat}
>  
> {noformat}
> void java.lang.Thread.run()
> void java.lang.Thread.runWith(Object, Runnable)
> void java.util.concurrent.ThreadPoolExecutor$Worker.run()
> void 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker)
> void 
> org.apache.ignite.internal.replicator.ReplicaService$$Lambda.0x0000000800f9c228.run()
> void 
> org.apache.ignite.internal.replicator.ReplicaService.lambda$sendToReplicaRaw$6(CompletableFuture,
>  ErrorReplicaResponse)
> boolean 
> java.util.concurrent.CompletableFuture.completeExceptionally(Throwable)
> void java.util.concurrent.CompletableFuture.postComplete()
> CompletableFuture 
> java.util.concurrent.CompletableFuture$UniHandle.tryFire(int)
> boolean java.util.concurrent.CompletableFuture.uniHandle(Object, BiFunction, 
> CompletableFuture$UniHandle)
> Object 
> org.apache.ignite.internal.table.distributed.storage.InternalTableImpl$$Lambda.0x0000000801167068.apply(Object,
>  Object)
> CompletableFuture 
> org.apache.ignite.internal.table.distributed.storage.InternalTableImpl.lambda$trackingInvoke$13(int,
>  InternalTransaction, int, ReplicaRequest, PendingTxPartitionEnlistment, 
> BiPredicate, Object, Throwable)
> CompletableFuture 
> org.apache.ignite.internal.table.distributed.storage.InternalTableImpl.trackingInvoke(InternalTransaction,
>  int, Function, boolean, PendingTxPartitionEnlistment, BiPredicate, int)
> CompletableFuture 
> org.apache.ignite.internal.replicator.ReplicaService.invoke(String, 
> ReplicaRequest)
> CompletableFuture 
> org.apache.ignite.internal.replicator.ReplicaService.sendToReplica(String, 
> ReplicaRequest)
> CompletableFuture 
> org.apache.ignite.internal.replicator.ReplicaService.sendToReplicaRaw(String, 
> ReplicaRequest)
> CompletableFuture 
> org.apache.ignite.internal.network.MessagingService.invoke(String, 
> NetworkMessage, long)
> CompletableFuture 
> org.apache.ignite.internal.network.wrapper.JumpToExecutorByConsistentIdAfterSend.invoke(String,
>  ChannelType, NetworkMessage, long)
> CompletableFuture 
> org.apache.ignite.internal.network.DefaultMessagingService.invoke(String, 
> ChannelType, NetworkMessage, long)
> CompletableFuture 
> org.apache.ignite.internal.network.DefaultMessagingService.invoke0(InternalClusterNode,
>  ChannelType, NetworkMessage, long, boolean)
> void 
> org.apache.ignite.internal.network.DefaultMessagingService.sendToSelf(NetworkMessage,
>  Long)
> void 
> org.apache.ignite.internal.replicator.ReplicaManager$$Lambda.0x0000000800486c98.onReceived(NetworkMessage,
>  InternalClusterNode, Long)
> void 
> org.apache.ignite.internal.replicator.ReplicaManager.onReplicaMessageReceived(NetworkMessage,
>  InternalClusterNode, Long)
> void 
> org.apache.ignite.internal.replicator.ReplicaManager.handleReplicaRequest(ReplicaRequest,
>  InternalClusterNode, Long)
> CompletableFuture java.util.concurrent.CompletableFuture.handle(BiFunction)
> CompletableFuture 
> java.util.concurrent.CompletableFuture.uniHandleStage(Executor, BiFunction)
> boolean java.util.concurrent.CompletableFuture.uniHandle(Object, BiFunction, 
> CompletableFuture$UniHandle)
> Object 
> org.apache.ignite.internal.replicator.ReplicaManager$$Lambda.0x0000000801060438.apply(Object,
>  Object)
> Object 
> org.apache.ignite.internal.replicator.ReplicaManager.lambda$handleReplicaRequest$4(boolean,
>  ReplicaRequest, String, Long, ReplicationGroupId, ReplicaResult, Throwable)
> void 
> org.apache.ignite.internal.logger.IgniteThrottledLoggerImpl.debug(String, 
> String, Throwable, Object[])
> void 
> org.apache.ignite.internal.logger.IgniteThrottledLoggerImpl.logInternal(String,
>  Supplier, Throwable, System$Logger$Level)
> Object 
> org.apache.ignite.internal.logger.IgniteThrottledLoggerImpl$$Lambda.0x000000080148d7c8.get()
> String 
> org.apache.ignite.internal.logger.IgniteThrottledLoggerImpl.lambda$debug$10(String,
>  Object[])
> String org.apache.ignite.internal.lang.IgniteStringFormatter.format(String, 
> Object[])
> void 
> org.apache.ignite.internal.lang.IgniteStringFormatter.deeplyAppendParameter(StringBuilder,
>  Object, HashSet)
> void 
> org.apache.ignite.internal.lang.IgniteStringFormatter.safeObjectAppend(StringBuilder,
>  Object)
> String 
> org.apache.ignite.internal.partition.replicator.network.replication.ReadWriteSingleRowPkReplicaRequestImpl.toString()
> String 
> org.apache.ignite.internal.tostring.IgniteToStringBuilder.toString(Class, 
> Object)
> String 
> org.apache.ignite.internal.tostring.IgniteToStringBuilder.toStringImpl(Class, 
> StringBuilderLimitedLength, Object, Object[], Object[], boolean[], int)
> String 
> org.apache.ignite.internal.tostring.IgniteToStringBuilder.toStringImpl0(Class,
>  StringBuilderLimitedLength, Object, Object[], Object[], boolean[], int)
> void 
> org.apache.ignite.internal.tostring.IgniteToStringBuilder.toString(StringBuilderLimitedLength,
>  Class, Object)
> StringBuilderLimitedLength 
> org.apache.ignite.internal.tostring.StringBuilderLimitedLength.app(Object)
> IgniteStringBuilder 
> org.apache.ignite.internal.lang.IgniteStringBuilder.app(Object)
> StringBuilder java.lang.StringBuilder.append(Object)
> String java.lang.String.valueOf(Object)
> String java.nio.ByteBuffer.toString()
> StringBuilder java.lang.StringBuilder.append(int)
> AbstractStringBuilder java.lang.AbstractStringBuilder.append(int)
> void java.lang.AbstractStringBuilder.ensureCapacityInternal(int)
> byte[] java.util.Arrays.copyOf(byte[], int)
> {noformat}



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

Reply via email to