Uploaded image for project: 'netconf'
  1. netconf
  2. NETCONF-479

OptimisticLockFailedException on controller-config when both odl-netconf-connector-ssh and odl-netconf-clustered-topology are installed

    XMLWordPrintable

Details

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

    • 9307

    Description

      This happens only rarely, but this can make autorelease build fail, by failing SingleFeatureTest on some Distribution feature.

      Distribution knows the two features are incompatible when running on 3 node cluster, but this is failing in 1 node tests. Nevertheless, both features are pulled into odl-integration-compatible-with-all in current Oxygen builds:
      odl-netconf-connector-ssh is pulled in by odl-unimgr,
      odl-netconf-clustered-topology is pulled in by odl-vbd.

      Looking at the log [0] from the SFT failure, we see this (after removing lines from unrelated features):

      2017-10-17 05:36:00,548 | INFO | on-dispatcher-54 | NetconfTopologyUtils | 448 - org.opendaylight.netconf.topology-singleton - 1.4.0 | RemoteDevice

      {controller-config} : using the default directory cache/schema
      2017-10-17 05:36:00,564 | INFO | lt-dispatcher-22 | NetconfTopologyContext | 448 - org.opendaylight.netconf.topology-singleton - 1.4.0 | Master was selected: IpAddress [_ipv4Address=Ipv4Address [_value=127.0.0.1]]
      2017-10-17 05:36:00,583 | INFO | on-dispatcher-50 | AbstractNetconfTopology | 194 - netconf-topology-config - 1.4.0 | Connecting RemoteDevice{Uri [_value=controller-config]} , with config Node{getNodeId=Uri [_value=controller-config], augmentations={interface org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode=NetconfNode{getActorResponseWaitTime=5, getBetweenAttemptsTimeoutMillis=2000, getConcurrentRpcLimit=0, getConnectionTimeoutMillis=20000, getCredentials=LoginPassword{getPassword=admin, getUsername=admin, augmentations={}}, getDefaultRequestTimeoutMillis=60000, getHost=Host [_ipAddress=IpAddress [_ipv4Address=Ipv4Address [_value=127.0.0.1]]], getKeepaliveDelay=120, getMaxConnectionAttempts=0, getPort=PortNumber [_value=1830], getSchemaCacheDirectory=schema, getSleepFactor=1.5, isReconnectOnChangedSchema=true, isSchemaless=false, isTcpOnly=false}}}
      2017-10-17 05:36:00,654 | INFO | lt-dispatcher-22 | RemoteDeviceConnectorImpl | 448 - org.opendaylight.netconf.topology-singleton - 1.4.0 | RemoteDevice{controller-config}

      : Adding keepalive facade.
      2017-10-17 05:36:00,697 | WARN | on-dispatcher-50 | AbstractNetconfTopology | 194 - netconf-topology-config - 1.4.0 | Adding keepalive facade, for device Uri [_value=controller-config]
      2017-10-17 05:36:00,701 | WARN | rd-dispatcher-41 | ShardDataTree | 354 - org.opendaylight.controller.sal-distributed-datastore - 1.7.0 | member-1-shard-topology-operational: Store Tx member-1-datastore-operational-fe-0-chn-11-txn-0-0: Conflicting modification for path /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[

      {(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=topology-netconf}

      ]/node/node[

      {(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=controller-config}

      ].

      which ultimately leads to:
      2017-10-17 05:36:00,792 | ERROR | ime-limited test | SingleFeatureTest | 75 - PAXEXAM-PROBE-2f9f5f86-a820-45e5-b6ef-75e8a38bd5d0 - 0.0.0 | installFeature() failed
      java.lang.IllegalStateException: RemoteDevice

      {controller-config}

      Transaction(init) not committed correctly
      at org.opendaylight.netconf.sal.connect.netconf.sal.NetconfDeviceTopologyAdapter$1.onFailure(NetconfDeviceTopologyAdapter.java:244)[443:org.opendaylight.netconf.sal-netconf-connector:1.7.0]
      at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1228)[77:com.google.guava:22.0.0]
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)[:1.8.0_141]
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)[:1.8.0_141]
      at java.lang.Thread.run(Thread.java:748)[:1.8.0_141]

      Can Netconf make the two features compatible, or should Distribution split their test features and fail if 1-node Netconf feature is found in 3-node Distribution feature tree, and vice versa?

      [0] https://logs.opendaylight.org/releng/jenkins092/autorelease-release-oxygen/19/integration/distribution/features/singles/odl-integration-compatible-with-all/target/surefire-reports/org.opendaylight.odlparent.featuretest.SingleFeatureTest-output.txt.gz

      Attachments

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

        Activity

          People

            JMorvay Jakub Morvay
            vrpolak Vratko Polak
            Votes:
            1 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: