Skip to content

Unhandled Redis Connection Errors #6

@sbennett33

Description

@sbennett33

Thanks for this library. Its super helpful!

We currently have nebulex_ecto configured to use the nebulex_redis_adapter and its working pretty well. The issue we're seeing currently is exceptions being thrown by the underlying redis adapter if there is a temporary disconnection. As this is a cacheing library, I'd expect the library to go to the repo if there was a problem reading the value from the cache instead of crashing my process.

Expected behavior: If there was an error trying to read data from the cache, the library should read the data from the db instead.

Observed behavior: Temporary disconnects cause nebulex_ecto to raise.

Stacktrace:

#PID<0.7956.9> running ApolloWeb.Endpoint (cowboy_protocol) terminated Server: 
apollo.fantag.live:80 (http) Request: GET / ** (exit) an exception was raised: 
** (Redix.ConnectionError) :disconnected (redix) 
lib/redix.ex:407: Redix.pipeline!/3 (nebulex_redis_adapter) 
lib/nebulex_redis_adapter.ex:358: NebulexRedisAdapter.with_ttl/4 (nebulex) 
lib/nebulex/cache/object.ex:12: Nebulex.Cache.Object.get/3 (fantag) 
lib/fantag/redis_cache.ex:2: Fantag.RedisCache.with_hooks/3 (fantag) 
lib/fantag/cacheable_repo.ex:2: Fantag.CacheableRepo.do_get/4 (fantag) 
lib/fantag/guardian.ex:16: Fantag.Guardian.resource_from_claims/1 (guardian) 
lib/guardian/plug/load_resource.ex:58: Guardian.Plug.LoadResource.resource/3 (guardian) 
lib/guardian/plug/load_resource.ex:49: Guardian.Plug.LoadResource.call/2

We are seeing the underlying redix library reconnecting automatically and subsequent requests to the cache are successful.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions