Giter VIP home page Giter VIP logo

Comments (5)

blathers-crl avatar blathers-crl commented on July 24, 2024

cc @cockroachdb/cdc

from cockroach.

blathers-crl avatar blathers-crl commented on July 24, 2024

Hi @wenyihu6, please add branch-* labels to identify which branch(es) this GA-blocker affects.

🦉 Hoot! I am a Blathers, a bot for CockroachDB. My owner is dev-inf.

from cockroach.

stevendanna avatar stevendanna commented on July 24, 2024

@wenyihu6 Is another possible fix here to change this loop:

for _, watch := range ca.spec.Watches {
if initialHighWater.IsEmpty() || watch.InitialResolved.Less(initialHighWater) {
initialHighWater = watch.InitialResolved
}
spans = append(spans, watch.Span)
}

to make sure that it returns 0 when there is a 0 timestamp anywhere in the watches? I haven't read carefully, but it seems to me that loop is incorrect in the case where, say ca.spec.Watches contains some series of spans with an empty timestamp, but then the last span has a non-empty timestamp.

We had a similar bug in PCR: #110085

from cockroach.

wenyihu6 avatar wenyihu6 commented on July 24, 2024

I agree that this could be another possible fix as far as I can tell. But I still want to read the code more to see how it plays along with other changefeeds and backfill since this is legacy code from

for _, watch := range spec.Watches {
if initialHighWater.IsEmpty() || watch.InitialResolved.Less(initialHighWater) {
initialHighWater = watch.InitialResolved
}
}
. If we go with this fix, we would allow a mixed of empty and non-empty initial resolved timestamps during initial scans, and I want to double check if breaking this condition is fine at other places.

from cockroach.

rharding6373 avatar rharding6373 commented on July 24, 2024

Reopening since we've found that although disabling shutdown checkpointing / drain watcher reduces the likelihood of hitting this issue, this issue pre-exists that feature.

from cockroach.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.