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

SFc Project broken due to recent controller/yangtools commit

    XMLWordPrintable

Details

    • Bug
    • Status: Resolved
    • Resolution: Done
    • None
    • None
    • None
    • None
    • Operating System: Mac OS
      Platform: PC

    • 1604
    • Highest

    Description

      The scenario is a complete overwrite of a datastore element. During OndataChanged() I spawn an executor to overwrite the data that triggered onDataChanged() itself.

      Meaning, an element with a certain key already exists and I'm overwriting it with new values.

      This has always worked until 24hrs ago.

      On 8/22/14 9:54 AM, Reinaldo Penno wrote:
      > Hi,
      >
      > I think a controller/Yangtools commit broke SFC project in the last 24 hrs.
      >
      > Something that always worked until the last 24 hrs, stopped working. Basically this operation
      >
      > writeTx.put(LogicalDatastoreType.CONFIGURATION,
      > sfpIID, newServiceFunctionPath, true);
      >
      >
      > Now gives me:
      >
      > at com.google.common.base.Preconditions.checkArgument(Preconditions.java:76)
      > at org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeStreamWriter.startOrderedMapNode(ImmutableNormalizedNodeStreamWriter.java:188)
      > at org.opendaylight.yangtools.binding.data.codec.impl.BindingToNormalizedStreamWriter.startOrderedMapNode(BindingToNormalizedStreamWriter.java:173)
      > at org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sfp.rev140701.service.function.paths.ServiceFunctionPath$StreamWriter.serialize(DataObjectSerializerPrototype.java)
      > at org.opendaylight.yangtools.binding.data.codec.impl.BindingNormalizedNodeCodecRegistry$DataObjectSerializerProxy.serialize(BindingNormalizedNodeCodecRegistry.java:180)
      > at org.opendaylight.yangtools.binding.data.codec.impl.BindingNormalizedNodeCodecRegistry.toNormalizedNode(BindingNormalizedNodeCodecRegistry.java:91)
      > at org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec.toNormalizedNode(BindingToNormalizedNodeCodec.java:54)
      > at org.opendaylight.controller.md.sal.binding.impl.AbstractWriteTransaction.put(AbstractWriteTransaction.java:46)
      > at org.opendaylight.sfc.provider.SfcProviderServicePathAPI.createServiceFunctionPathEntry(SfcProviderServicePathAPI.java:317)
      > ... 8 more
      >
      >

      What I noticed is that in OnDataChanged() instead of getting an actual object (as I used to) I'm getting a LazyDataObject and the data is Immutable.

      h =

      {org.opendaylight.yangtools.binding.data.codec.impl.LazyDataObject@12331}

      cachedData =

      {java.util.concurrent.ConcurrentHashMap@12332}

      size = 5
      data =

      {org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableMapEntryNodeBuilder$ImmutableMapEntryNode@12333}

      "ImmutableMapEntryNode{nodeIdentifier=(urn:cisco:params:xml:ns:yang:sfc-sfp?revision=2014-07-01)service-function-path[

      {(urn:cisco:params:xml:ns:yang:sfc-sfp?revision=2014-07-01)name=Path-2-SFC1}

      ], value=[ImmutableLeafNode{nodeIdentifier=(urn:cisco:params:...
      context =

      {org.opendaylight.yangtools.binding.data.codec.impl.ListNodeCodecContext@11961}

      "ListNodeCodecContext [interface org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sfp.rev140701.service.function.paths.ServiceFunctionPath]"
      cachedAugmentations =

      {com.google.common.collect.EmptyImmutableBiMap@11962}

      size = 0
      cachedHashcode = null

      > The scenario is a complete overwrite of a datastore element. Meaning, an element with a certain key already exists and I'm overwriting it with new values.
      >
      > Anybody knows what this could be?

      Attachments

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

        Activity

          People

            tony.tkacik@gmail.com Tony Tkacik
            repenno Reinaldo Penno
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: