Uploaded image for project: 'bgpcep'
  1. bgpcep
  2. BGPCEP-875

ConcurrentModificationException in pcep.topology.provider

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Medium Medium
    • Sodium, Neon SR2
    • Neon SR1, Sodium
    • PCEP
    • None

      https://logs.opendaylight.org/releng/vex-yul-odl-jenkins-1/bgpcep-csit-1node-throughpcep-all-sodium/215/odl_1/odl1_karaf.log.gz is showing:

      2019-07-01T15:26:51,544 | WARN  | pool-24-thread-1 | TopologyStatsProviderImpl        | 259 - org.opendaylight.bgpcep.pcep-topology-stats - 0.12.0 | Failed to prepare Tx for BGP stats update
      java.util.ConcurrentModificationException: null
      	at java.util.HashMap$HashIterator.nextNode(HashMap.java:1445) ~[?:?]
      	at java.util.HashMap$ValueIterator.next(HashMap.java:1474) ~[?:?]
      	at java.util.AbstractCollection.toArray(AbstractCollection.java:141) ~[?:?]
      	at com.google.common.collect.ImmutableList.copyOf(ImmutableList.java:258) ~[36:com.google.guava:27.1.0.jre]
      	at org.opendaylight.bgpcep.pcep.topology.provider.AbstractTopologySessionListener.getDelegatedLspsCount(AbstractTopologySessionListener.java:596) ~[?:?]
      	at org.opendaylight.bgpcep.pcep.topology.provider.session.stats.SessionStateImpl.getDelegatedLspsCount(SessionStateImpl.java:177) ~[?:?]
      	at org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.stats.rev171113.pcep.session.state.grouping.PcepSessionStateBuilder.<init>(PcepSessionStateBuilder.java:53) ~[248:org.opendaylight.bgpcep.pcep-api:0.12.0]
      	at org.opendaylight.bgpcep.pcep.topology.stats.provider.TopologyStatsProviderImpl.updatePcepStats(TopologyStatsProviderImpl.java:84) [259:org.opendaylight.bgpcep.pcep-topology-stats:0.12.0]
      	at org.opendaylight.bgpcep.pcep.topology.stats.provider.TopologyStatsProviderImpl.access$000(TopologyStatsProviderImpl.java:45) [259:org.opendaylight.bgpcep.pcep-topology-stats:0.12.0]
      	at org.opendaylight.bgpcep.pcep.topology.stats.provider.TopologyStatsProviderImpl$1.run(TopologyStatsProviderImpl.java:69) [259:org.opendaylight.bgpcep.pcep-topology-stats:0.12.0]
      	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
      	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [?:?]
      	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [?:?]
      	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [?:?]
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
      	at java.lang.Thread.run(Thread.java:748) [?:?]
      

      which renders the task unusable by causing:

      2019-07-01T16:00:18,462 | ERROR | epollEventLoopGroup-6-1 | PCEPSessionImpl                  | 253 - org.opendaylight.bgpcep.pcep-impl - 0.12.0 | Exception captured for session PCEPSessionImpl{channel=[id: 0xdffe1b85, L:/10.30.170.119:4189 ! R:/10.30.170.62:46855], localOpen=Open{_deadTimer=120, _keepalive=30, _sessionId=0, _tlvs=Tlvs{augmentation=[Tlvs1{_srPceCapability=SrPceCapability{_msd=0, augmentation=[]}}, Tlvs1{_stateful=Stateful{_lspUpdateCapability=true, augmentation=[Stateful1{_deltaLspSyncCapability=true, _includeDbVersion=true, _triggeredInitialSync=true, _triggeredResync=true}, Stateful1{_initiation=true}]}}]}, augmentation=[]}, remoteOpen=Open{_deadTimer=120, _keepalive=30, _sessionId=0, _tlvs=Tlvs{augmentation=[Tlvs1{}, Tlvs1{_stateful=Stateful{_lspUpdateCapability=true, augmentation=[Stateful1{}, Stateful1{_initiation=true}]}}, Tlvs3{_lspDbVersion=LspDbVersion{_lspDbVersionValue=65535, augmentation=[]}}]}, _version=ProtocolVersion{_value=1}, _ignore=false, _processingRule=false, augmentation=[]}}, closing session.
      java.lang.IllegalStateException: Transaction chain org.opendaylight.mdsal.dom.spi.PingPongTransactionChain@53f52a28 has failed due to transaction PingPongTransaction{delegate=DOMBrokerReadWriteTransaction{identifier=DOM-CHAIN-3-6, running=true}} being canceled
      	at org.opendaylight.mdsal.dom.spi.PingPongTransactionChain.slowAllocateTransaction(PingPongTransactionChain.java:164) ~[356:org.opendaylight.mdsal.dom-spi:4.0.2]
      	at org.opendaylight.mdsal.dom.spi.PingPongTransactionChain.allocateTransaction(PingPongTransactionChain.java:185) ~[356:org.opendaylight.mdsal.dom-spi:4.0.2]
      	at org.opendaylight.mdsal.dom.spi.PingPongTransactionChain.newReadWriteTransaction(PingPongTransactionChain.java:432) ~[356:org.opendaylight.mdsal.dom-spi:4.0.2]
      	at org.opendaylight.mdsal.dom.spi.PingPongTransactionChain.newWriteOnlyTransaction(PingPongTransactionChain.java:466) ~[356:org.opendaylight.mdsal.dom-spi:4.0.2]
      	at org.opendaylight.mdsal.binding.dom.adapter.BindingDOMTransactionChainAdapter.createTransaction(BindingDOMTransactionChainAdapter.java:122) ~[330:org.opendaylight.mdsal.binding-dom-adapter:4.0.2]
      	at org.opendaylight.mdsal.binding.dom.adapter.BindingDOMTransactionChainAdapter.newWriteOnlyTransaction(BindingDOMTransactionChainAdapter.java:68) ~[330:org.opendaylight.mdsal.binding-dom-adapter:4.0.2]
      	at org.opendaylight.bgpcep.pcep.topology.stats.provider.TopologyStatsProviderImpl.unbind(TopologyStatsProviderImpl.java:148) ~[259:org.opendaylight.bgpcep.pcep-topology-stats:0.12.0]
      	at Proxy4e6faa0b_0003_461c_aa10_ce8d2c672d1b.unbind(Unknown Source) ~[?:?]
      	at Proxy4e0cffd3_26c5_427b_9f68_fe392a006e87.unbind(Unknown Source) ~[?:?]
      	at org.opendaylight.bgpcep.pcep.topology.provider.ServerSessionManager.unbind(ServerSessionManager.java:272) ~[257:org.opendaylight.bgpcep.pcep-topology-provider:0.12.0]
      	at org.opendaylight.bgpcep.pcep.topology.provider.AbstractTopologySessionListener.clearNodeState(AbstractTopologySessionListener.java:325) ~[257:org.opendaylight.bgpcep.pcep-topology-provider:0.12.0]
      	at org.opendaylight.bgpcep.pcep.topology.provider.AbstractTopologySessionListener.tearDown(AbstractTopologySessionListener.java:221) ~[257:org.opendaylight.bgpcep.pcep-topology-provider:0.12.0]
      	at org.opendaylight.bgpcep.pcep.topology.provider.AbstractTopologySessionListener.onSessionDown(AbstractTopologySessionListener.java:262) ~[257:org.opendaylight.bgpcep.pcep-topology-provider:0.12.0]
      	at org.opendaylight.protocol.pcep.impl.PCEPSessionImpl.endOfInput(PCEPSessionImpl.java:277) ~[253:org.opendaylight.bgpcep.pcep-impl:0.12.0]
      	at org.opendaylight.protocol.pcep.impl.PCEPSessionImpl.channelInactive(PCEPSessionImpl.java:408) ~[253:org.opendaylight.bgpcep.pcep-impl:0.12.0]
      	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:242) [67:io.netty.transport:4.1.34.Final]
      	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:228) [67:io.netty.transport:4.1.34.Final]
      	at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:221) [67:io.netty.transport:4.1.34.Final]
      	at io.netty.handler.codec.ByteToMessageDecoder.channelInputClosed(ByteToMessageDecoder.java:390) [62:io.netty.codec:4.1.34.Final]
      	at io.netty.handler.codec.ByteToMessageDecoder.channelInactive(ByteToMessageDecoder.java:355) [62:io.netty.codec:4.1.34.Final]
      	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:242) [67:io.netty.transport:4.1.34.Final]
      	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:228) [67:io.netty.transport:4.1.34.Final]
      	at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:221) [67:io.netty.transport:4.1.34.Final]
      	at io.netty.handler.codec.ByteToMessageDecoder.channelInputClosed(ByteToMessageDecoder.java:390) [62:io.netty.codec:4.1.34.Final]
      	at io.netty.handler.codec.ByteToMessageDecoder.channelInactive(ByteToMessageDecoder.java:355) [62:io.netty.codec:4.1.34.Final]
      	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:242) [67:io.netty.transport:4.1.34.Final]
      	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:228) [67:io.netty.transport:4.1.34.Final]
      	at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:221) [67:io.netty.transport:4.1.34.Final]
      	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelInactive(DefaultChannelPipeline.java:1403) [67:io.netty.transport:4.1.34.Final]
      	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:242) [67:io.netty.transport:4.1.34.Final]
      	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:228) [67:io.netty.transport:4.1.34.Final]
      	at io.netty.channel.DefaultChannelPipeline.fireChannelInactive(DefaultChannelPipeline.java:912) [67:io.netty.transport:4.1.34.Final]
      	at io.netty.channel.AbstractChannel$AbstractUnsafe$8.run(AbstractChannel.java:827) [67:io.netty.transport:4.1.34.Final]
      	at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163) [64:io.netty.common:4.1.34.Final]
      	at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404) [64:io.netty.common:4.1.34.Final]
      	at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:333) [68:io.netty.transport-native-epoll:4.1.34.Final]
      	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:905) [64:io.netty.common:4.1.34.Final]
      	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [64:io.netty.common:4.1.34.Final]
      	at java.lang.Thread.run(Thread.java:748) [?:?]
      Caused by: java.util.concurrent.CancellationException: Transaction DOMBrokerReadWriteTransaction{identifier=DOM-CHAIN-3-6, running=true} canceled
      	at org.opendaylight.mdsal.dom.spi.PingPongTransactionChain.cancelTransaction(PingPongTransactionChain.java:362) ~[356:org.opendaylight.mdsal.dom-spi:4.0.2]
      	at org.opendaylight.mdsal.dom.spi.PingPongTransactionChain$4.cancel(PingPongTransactionChain.java:451) ~[356:org.opendaylight.mdsal.dom-spi:4.0.2]
      	at org.opendaylight.mdsal.binding.dom.adapter.BindingDOMWriteTransactionAdapter.cancel(BindingDOMWriteTransactionAdapter.java:76) ~[330:org.opendaylight.mdsal.binding-dom-adapter:4.0.2]
      	at org.opendaylight.bgpcep.pcep.topology.stats.provider.TopologyStatsProviderImpl.updatePcepStats(TopologyStatsProviderImpl.java:102) ~[259:org.opendaylight.bgpcep.pcep-topology-stats:0.12.0]
      	at org.opendaylight.bgpcep.pcep.topology.stats.provider.TopologyStatsProviderImpl.access$000(TopologyStatsProviderImpl.java:45) ~[259:org.opendaylight.bgpcep.pcep-topology-stats:0.12.0]
      	at org.opendaylight.bgpcep.pcep.topology.stats.provider.TopologyStatsProviderImpl$1.run(TopologyStatsProviderImpl.java:69) ~[259:org.opendaylight.bgpcep.pcep-topology-stats:0.12.0]
      	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:?]
      	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) ~[?:?]
      	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) ~[?:?]
      	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) ~[?:?]
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:?]
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:?]
      	... 1 more
      

            rovarga Robert Varga
            rovarga Robert Varga
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: