Coder Social home page Coder Social logo

Comments (5)

engelsanchez avatar engelsanchez commented on July 18, 2024

I have confirmed that this happened to me because I was running in the Erlang shell and by chance happened to make a typo at just the right moment in the sequence of commands. The typo caused an exception, which the shell didn't catch. The shell fakes a lot of things, trying to make the shell process seem persistent. In fact, the process died and was faked to look like it stayed around. Since the original process that opened the "efile" port and cached it in the process dictionary died, the port went away, leaving us in this state.

This is very unlikely to happen in Riak, as making that port go away would require something catastrophic. Yet, it might be a good idea to do away with this hack anyway.

from bitcask.

engelsanchez avatar engelsanchez commented on July 18, 2024

A fix for this issue here #189

from bitcask.

slfritchie avatar slfritchie commented on July 18, 2024

Hrm, I disagree with Bitcask using any operation that gets redirected to file_server_2: it sucks, plain and simple. Any other OTP app can send a spew of requests to it, then Bitcask's requests get stuck behind it, and we're back in the same serialized pickle.

I agree that noodling around in the shell can cause problems with the port "cache" in the process dictionary. However, AFAIK, any exception that invalidates the cached port will also kill the owning vnode process, so the problem effectively doesn't happen. Having said that, #189 is a good bit of paranoia.

from bitcask.

slfritchie avatar slfritchie commented on July 18, 2024

#189 has been merged, closing

from bitcask.

engelsanchez avatar engelsanchez commented on July 18, 2024

Agree. In the end I just detected the stale cached port and reloaded. This will likely only help people playing with Bitcask on a shell, but paranoia is good.

from bitcask.

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.