Hi! I have a problem with reloading my application while using memcached.
During ./init.sh reload boss_load:reload_all/0 is invoked,
which just purges all modules and loads them back.
First reload doesn't do any harm, but second reload kills most of the processes running old code.
Unfortunately, erlmc is not OTP compliant and it is not supervised.
Internally, it uses ETS table, which after second reload is gone.
15:39:31.294 [error] gen_server <0.119.0> terminated with reason: bad argument in call to ets:select(erlmc_continuum, [{{'$1','_','_'},[{'>','$1',249027110089995543861851459230841118197}],['$1']}], 1) in erlmc:find_next_largest/1 line 401
15:39:31.295 [error] CRASH REPORT Process <0.119.0> with 0 neighbours exited with reason: bad argument in call to ets:select(erlmc_continuum, [{{'$1','_','_'},[{'>','$1',249027110089995543861851459230841118197}],['$1']}], 1) in erlmc:find_next_largest/1 line 401 in gen_server:terminate/6 line 744
15:39:31.295 [error] Supervisor {<0.118.0>,poolboy_sup} had child boss_cache_controller started with {boss_cache_controller,start_link,undefined} at <0.119.0> exit with reason bad argument in call to ets:select(erlmc_continuum, [{{'$1','_','_'},[{'>','$1',249027110089995543861851459230841118197}],['$1']}], 1) in erlmc:find_next_largest/1 line 401 in context child_terminated
Do you know any stable, OTP compliant memcached client? I am more than happy to dig into boss_db
and add supervision for it.