Uploaded image for project: 'Geode'
  1. Geode
  2. GEODE-2297

AlertAppender.append should avoid synchronizing on InternalDistributedSystem

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.0.0-incubating.M1, 1.0.0-incubating.M2, 1.0.0-incubating.M3, 1.0.0-incubating
    • Fix Version/s: 1.1.0
    • Component/s: logging, management
    • Labels:

      Description

      AlertAppender.append should avoid synchronizing on InternalDistributedSystem for two reasons:
      1) risks deadlock
      2) impacts performance

      "Pooled High Priority Message Processor 3" daemon prio=10 tid=0x00007f1cd4009000 nid=0x1e31 waiting for monitor entry [0x00007f1d5d965000]
         java.lang.Thread.State: BLOCKED (on object monitor)
              at com.gemstone.gemfire.distributed.internal.InternalDistributedSystem.getConnectedInstance(InternalDistributedSystem.java:316)
              - waiting to lock <0x00000005cf476e10> (a java.lang.Object)
              at com.gemstone.gemfire.internal.logging.log4j.AlertAppender.append(AlertAppender.java:101)
              at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:99)
              at org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:430)
              at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:409)
              at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:412)
              at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:412)
              at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:367)
              at org.apache.logging.log4j.core.Logger.logMessage(Logger.java:112)
              at org.apache.logging.log4j.spi.ExtendedLoggerWrapper.logMessage(ExtendedLoggerWrapper.java:127)
              at org.apache.logging.log4j.spi.AbstractLogger.logIfEnabled(AbstractLogger.java:685)
              at org.apache.logging.log4j.spi.AbstractLogger.warn(AbstractLogger.java:899)
              at com.gemstone.gemfire.internal.tcp.Connection.createSender(Connection.java:1078)
              at com.gemstone.gemfire.internal.tcp.ConnectionTable.handleNewPendingConnection(ConnectionTable.java:358)
              at com.gemstone.gemfire.internal.tcp.ConnectionTable.getUnorderedOrConserveSockets(ConnectionTable.java:474)
              at com.gemstone.gemfire.internal.tcp.ConnectionTable.get(ConnectionTable.java:664)
              at com.gemstone.gemfire.internal.tcp.TCPConduit.getConnection(TCPConduit.java:977)
              at com.gemstone.gemfire.distributed.internal.direct.DirectChannel.getConnections(DirectChannel.java:638)
              at com.gemstone.gemfire.distributed.internal.direct.DirectChannel.sendToMany(DirectChannel.java:396)
              at com.gemstone.gemfire.distributed.internal.direct.DirectChannel.sendToOne(DirectChannel.java:310)
              at com.gemstone.gemfire.distributed.internal.direct.DirectChannel.send(DirectChannel.java:696)
              at com.gemstone.gemfire.distributed.internal.membership.jgroup.JGroupMembershipManager.directChannelSend(JGroupMembershipManager.java:2930)
              at com.gemstone.gemfire.distributed.internal.membership.jgroup.JGroupMembershipManager.send(JGroupMembershipManager.java:3164)
              at com.gemstone.gemfire.distributed.internal.DistributionChannel.send(DistributionChannel.java:79)
              at com.gemstone.gemfire.distributed.internal.DistributionManager.sendOutgoing(DistributionManager.java:3913)
              at com.gemstone.gemfire.distributed.internal.DistributionManager.sendMessage(DistributionManager.java:3954)
              at com.gemstone.gemfire.distributed.internal.DistributionManager.putOutgoing(DistributionManager.java:1957)
              at com.gemstone.gemfire.distributed.internal.StartupMessage.process(StartupMessage.java:321)
              at com.gemstone.gemfire.distributed.internal.DistributionMessage.scheduleAction(DistributionMessage.java:386)
              at com.gemstone.gemfire.distributed.internal.DistributionMessage$1.run(DistributionMessage.java:457)
              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              klund Kirk Lund
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: