Uploaded image for project: 'Couchbase Kafka Connector'
  1. Couchbase Kafka Connector
  2. KAFKAC-169

SINK: In rare circumstances, documents with same ID can be written to Couchbase in wrong order

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Major
    • 4.0.0-dp.3
    • None
    • None
    • 1

    Description

      In CouchbaseSinkTask.put, the flapMap operation processes the upserts in parallel in non-deterministic order. If the batch of records contains duplicate IDs, it's possible for them to be written out of order.

      This issue surfaced as a DocumentConcurrentlyModified exception when using persist_to=REPLICA

      Caused by: com.couchbase.client.core.DocumentConcurrentlyModifiedException: The CAS on the active node changed for ID “t_hist:9202:2018:20190209:10:10:EUR:9202”, indicating it has been modified in the meantime.
             at com.couchbase.client.core.message.observe.ObserveViaCAS$ObserveItem.<init>(ObserveViaCAS.java:295)
             at com.couchbase.client.core.message.observe.ObserveViaCAS$5.call(ObserveViaCAS.java:80)
             at com.couchbase.client.core.message.observe.ObserveViaCAS$5.call(ObserveViaCAS.java:77)
             at rx.internal.operators.OnSubscribeMap$MapSubscriber.onNext(OnSubscribeMap.java:69)
             ... 25 more
      Caused by: rx.exceptions.OnErrorThrowable$OnNextValue: OnError while emitting onNext value: com.couchbase.client.core.message.kv.ObserveResponse.class
             at rx.exceptions.OnErrorThrowable.addValueAsLastCause(OnErrorThrowable.java:118)
             at rx.internal.operators.OnSubscribeMap$MapSubscriber.onNext(OnSubscribeMap.java:73)
             ... 25 more
      

      Attachments

        Activity

          People

            david.nault David Nault
            david.nault David Nault
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              PagerDuty