Giter Site home page Giter Site logo

[BUG] Crash when eviction fails about keydb HOT 6 OPEN

keithchew avatar keithchew commented on August 18, 2024
[BUG] Crash when eviction fails

from keydb.

Comments (6)

JohnSully avatar JohnSully commented on August 18, 2024

Do you have repro steps to trigger?

We will need to add a new test since I finally have all tests passing in the async_flash branch

from keydb.

keithchew avatar keithchew commented on August 18, 2024

No I don't, but currently reviewing the code to see if I can pin point the issue. I know that removeCachedValue() properly removes the cache key, but for some reason removeAllCachedValues() is not. Will post here if I find anything useful.

from keydb.

JohnSully avatar JohnSully commented on August 18, 2024

That line above, “failed to evict keys, falling back to flushing keys” is likely the problem or closely related to it.

Make sure we are setting m_numexpires to 0 when we clear out the cache. Its only supposed to track cached expires.

from keydb.

keithchew avatar keithchew commented on August 18, 2024

Interesting, in server.cpp serverCron, I tried to call removeAllCachedValues() once cache count is > 5000 (in my setup, evictions happen at around 100K), it is clearing up the cached just fine. I have also tried calling removeAllCachedValues() in evict.cpp every time a key is evicted, and the cache is cleared fine as well.

Based on the above, I believe the actual bug could be somewhere else and the crash was just the trigger point that highlighted the symptoms. Perhaps there is a race between expire.cpp and evict.cpp, I will look into this a bit more...

from keydb.

JohnSully avatar JohnSully commented on August 18, 2024

That emergency deleting all cached values is pretty rare (we don't run in situations that would hit that). So my money is on the bug being related to ir.

from keydb.

keithchew avatar keithchew commented on August 18, 2024

I had a closer look at the logs, and it appears that when the master started the fast sync with the replica, it went past the 1.0 mem limit level (fast sync never completed, and I reverted the replica to use RDB). I did not restart the master and mem level was stuck around 1.15-1.18 range until the crash. So, likely something to do with the fast sync corrupting the structure of the cache when under memory pressure. I have reverted the master back to RBD for now to see if I can reproduce the crash.

from keydb.

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.