sasa1977 / con_cache

ets based key/value cache with row level isolated writes and ttl support
MIT License
910 stars 71 forks source link

(EXIT) time out when calling a get_or_store #69

Open Teifion opened 1 year ago

Teifion commented 1 year ago

I've had the following error happen a few times. At first I assumed it was the server under high load but it's happened under moderate/low load.

** (stop) exited in: GenServer.call(#PID<0.4240.0>, {:lock, 31185, #Reference<0.3051168309.1385955342.117529>}, 5000)
    ** (EXIT) time out
    (elixir 1.14.3) lib/gen_server.ex:1038: GenServer.call/3
    (con_cache 1.0.0) lib/con_cache/lock.ex:22: ConCache.Lock.exec/4
    (central 0.1.0) lib/teiserver/protocols/spring/spring_out.ex:485: Teiserver.Protocols.SpringOut.do_reply/2

The call that triggers this is ultimately a ConCache.get_or_store call. It's one of our more commonly called functions (converting a userid to a username) if that helps.

What would be the most appropriate way to deal with this, debug it and the like?

aerosol commented 4 days ago

What is the function argument doing? (store_fun)