Uploaded image for project: 'yangtools'
  1. yangtools
  2. YANGTOOLS-374

Continuous WARN logs org.opendaylight.yangtools.yang-data-impl - 0.7.0.SNAPSHOT | Invocation of inefficient entrySet

    XMLWordPrintable

Details

    • Bug
    • Status: Resolved
    • Resolution: Done
    • None
    • None
    • None
    • None
    • Operating System: All
      Platform: All

    • 2401

    Description

      When doing a simple neutron stack, I see endless logs entries that look
      like this [1]. Log is pretty much non-useable with all the noise generated.

      I suspect that this issue is related to this commit:

      $ grep -lr "Invocation of inefficient entrySet" *
      yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/nodes/UnmodifiableChildrenMap.java
      [Flavios-MacBook-Pro:yangtools.git]$
      [Flavios-MacBook-Pro:yangtools.git]$ git log yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/nodes/UnmodifiableChildrenMap.java
      commit 59d197fc60bccd1fef2e3bef39c859f12a9c1ae8
      Author: Robert Varga <rovarga@cisco.com>
      Date: Thu Nov 13 14:47:26 2014 +0100

      BUG-2377: introduce internal UnmodifiableChildrenMap

      This new class acts a replacement of java.util.Collection's version of
      the same. Unlike the standard class, this one does not retain cached
      versions of keySet and entrySet, since those are unused anyway. We can
      also perform an instanceof check, which should speed up operations.
      Finally, we check for map emptiness and use Collections.emptyMap()
      when possible.

      Change-Id: I84c8ac428d6b207fafccf8cc898f0555b104a4ee
      Signed-off-by: Robert Varga <rovarga@cisco.com>

      [1]: https://gist.github.com/c674afa3f930e7c36358

      2014-11-18 11:22:52,813 | WARN | ds-oper-thread-0 | UnmodifiableChildrenMap | 253 - org.opendaylight.yangtools.yang-data-impl - 0.7.0.SNAPSHOT | Invocation of inefficient entrySet()
      java.lang.Throwable
      at org.opendaylight.yangtools.yang.data.impl.schema.nodes.UnmodifiableChildrenMap.entrySet(UnmodifiableChildrenMap.java:118)[253:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at java.util.HashMap.putAllForCreate(HashMap.java:554)[:1.7.0_67]
      at java.util.HashMap.<init>(HashMap.java:298)[:1.7.0_67]
      at org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.AbstractImmutableDataContainerNodeBuilder.checkDirty(AbstractImmutableDataContainerNodeBuilder.java:65)[253:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.AbstractImmutableDataContainerNodeBuilder.withChild(AbstractImmutableDataContainerNodeBuilder.java:81)[253:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.AbstractImmutableDataContainerNodeAttrBuilder.withChild(AbstractImmutableDataContainerNodeAttrBuilder.java:55)[253:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableMapEntryNodeBuilder.withChild(ImmutableMapEntryNodeBuilder.java:89)[253:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableMapEntryNodeBuilder.withChild(ImmutableMapEntryNodeBuilder.java:22)[253:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.AbstractImmutableDataContainerNodeBuilder.addChild(AbstractImmutableDataContainerNodeBuilder.java:102)[253:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableMapEntryNodeBuilder.addChild(ImmutableMapEntryNodeBuilder.java:22)[253:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.AbstractImmutableDataContainerNodeBuilder.addChild(AbstractImmutableDataContainerNodeBuilder.java:21)[253:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.tree.NormalizedNodeContainerModificationStrategy.mutateChildren(NormalizedNodeContainerModificationStrategy.java:127)[253:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.tree.NormalizedNodeContainerModificationStrategy.applySubtreeChange(NormalizedNodeContainerModificationStrategy.java:154)[253:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.tree.DataNodeContainerModificationStrategy$ListEntryModificationStrategy.applySubtreeChange(DataNodeContainerModificationStrategy.java:133)[253:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.tree.NormalizedNodeContainerModificationStrategy.applyMerge(NormalizedNodeContainerModificationStrategy.java:142)[253:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.apply(SchemaAwareApplyOperation.java:213)[253:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.tree.NormalizedNodeContainerModificationStrategy.mutateChildren(NormalizedNodeContainerModificationStrategy.java:123)[253:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.tree.NormalizedNodeContainerModificationStrategy.applySubtreeChange(NormalizedNodeContainerModificationStrategy.java:154)[253:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.tree.NormalizedNodeContainerModificationStrategy$UnorderedMapModificationStrategy.applySubtreeChange(NormalizedNodeContainerModificationStrategy.java:312)[253:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.tree.NormalizedNodeContainerModificationStrategy.applyMerge(NormalizedNodeContainerModificationStrategy.java:142)[253:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.apply(SchemaAwareApplyOperation.java:213)[253:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.tree.NormalizedNodeContainerModificationStrategy.mutateChildren(NormalizedNodeContainerModificationStrategy.java:123)[253:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.tree.NormalizedNodeContainerModificationStrategy.applySubtreeChange(NormalizedNodeContainerModificationStrategy.java:154)[253:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.tree.DataNodeContainerModificationStrategy$AugmentationModificationStrategy.applySubtreeChange(DataNodeContainerModificationStrategy.java:96)[253:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.apply(SchemaAwareApplyOperation.java:209)[253:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTreeModification.resolveSnapshot(InMemoryDataTreeModification.java:124)[253:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTreeModification.readNode(InMemoryDataTreeModification.java:107)[253:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.controller.md.sal.dom.store.impl.SnapshotBackedWriteTransaction.readSnapshotNode(SnapshotBackedWriteTransaction.java:129)[313:org.opendaylight.controller.sal-inmemory-datastore:1.2.0.SNAPSHOT]
      at org.opendaylight.controller.md.sal.dom.store.impl.SnapshotBackedReadWriteTransaction.read(SnapshotBackedReadWriteTransaction.java:49)[313:org.opendaylight.controller.sal-inmemory-datastore:1.2.0.SNAPSHOT]
      at org.opendaylight.controller.md.sal.dom.broker.impl.DOMForwardedReadWriteTransaction.read(DOMForwardedReadWriteTransaction.java:47)[307:org.opendaylight.controller.sal-broker-impl:1.2.0.SNAPSHOT]
      at org.opendaylight.controller.md.sal.binding.impl.AbstractForwardedTransaction.doRead(AbstractForwardedTransaction.java:63)[310:org.opendaylight.controller.sal-binding-broker-impl:1.2.0.SNAPSHOT]
      at org.opendaylight.controller.md.sal.binding.impl.BindingDataReadWriteTransactionImpl.read(BindingDataReadWriteTransactionImpl.java:31)[310:org.opendaylight.controller.sal-binding-broker-impl:1.2.0.SNAPSHOT]
      at org.opendaylight.controller.md.statistics.manager.impl.StatListenCommitFlow$1.applyOperation(StatListenCommitFlow.java:148)[339:org.opendaylight.controller.md.statistics-manager:1.2.0.SNAPSHOT]
      at org.opendaylight.controller.md.statistics.manager.impl.StatisticsManagerImpl.run(StatisticsManagerImpl.java:196)[339:org.opendaylight.controller.md.statistics-manager:1.2.0.SNAPSHOT]
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)[:1.7.0_67]
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)[:1.7.0_67]
      at java.lang.Thread.run(Thread.java:745)[:1.7.0_67]

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              rovarga Robert Varga
              flavio@flaviof.com Flavio Fernandes
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: