taoensso / carmine

Redis client + message queue for Clojure
https://www.taoensso.com/carmine
Eclipse Public License 1.0
1.15k stars 130 forks source link

Error when GETting a map #238

Closed st closed 1 year ago

st commented 4 years ago

I have randomly an error when trying to get a REDIS value. I am not able to systematically reproduce this issue. It seems related to the map type (integer or string are retrievable). On Mac OS X, no problem. However, on two VMs, here is what I observed:

OSes VM 1) Linux blah-test 4.15.0-88-generic #88-Ubuntu SMP Tue Feb 11 20:11:34 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux VM 2) Linux blah-test 4.15.0-72-generic #81-Ubuntu SMP Tue Nov 26 12:20:02 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Java versions VM 1) openjdk version "11.0.6" 2020-01-14 OpenJDK Runtime Environment (build 11.0.6+10-post-Ubuntu-1ubuntu118.04.1) OpenJDK 64-Bit Server VM (build 11.0.6+10-post-Ubuntu-1ubuntu118.04.1, mixed mode, sharing)

VM 2) openjdk version "1.8.0_242" OpenJDK Runtime Environment (build 1.8.0_242-8u242-b08-0ubuntu3~18.04-b08) OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode)

Carmine versions (identical on both VMs) [com.taoensso/carmine "2.19.1"] [com.taoensso/nippy "2.14.0"] [net.jpountz.lz4/lz4 "1.3"] [org.iq80.snappy/snappy "0.4"] [org.tukaani/xz "1.6"] [commons-codec "1.11"] [org.apache.commons/commons-pool2 "2.4.2"]

Stack trace blah is my namespace.

clojure.lang.ExceptionInfo: Bad reply data: Thaw failed: Decryption/decompression failure, or data unfrozen/damaged. {:message "Thaw failed: Decryption/decompression failure, or data unfrozen/damaged."} at taoensso.carmine.protocol$get_unparsed_reply.invokeStatic(protocol.clj:187) at taoensso.carmine.protocol$get_unparsed_reply.invoke(protocol.clj:106) at taoensso.carmine.protocol$fn__17699$get_parsed_reply__17700.invoke(protocol.clj:198) at taoensso.carmine.protocol$execute_requests.invokeStatic(protocol.clj:320) at taoensso.carmine.protocol$execute_requests.invoke(protocol.clj:284) at taoensso.carmine.protocol$_with_replies.invokeStatic(protocol.clj:342) at taoensso.carmine.protocol$_with_replies.invoke(protocol.clj:328) at blah.util.redis$fetch$fn__201.invoke(redis.clj:19) at blah.util.redis$fetch.invokeStatic(redis.clj:19) at blah.util.redis$fetch.invoke(redis.clj:16) at blah.util.redis$fetch_stats.invokeStatic(redis.clj:28) at blah.util.redis$fetch_stats.invoke(redis.clj:25) at blah.model.player$http_stats.invokeStatic(player.clj:133) at blah.model.player$http_stats.invoke(player.clj:131) at blah.handler$fn__378.invokeStatic(handler.clj:51) at blah.handler$fn__378.invoke(handler.clj:51) at compojure.core$wrap_response$fn__20669.invoke(core.clj:158) at compojure.core$wrap_route_middleware$fn__20653.invoke(core.clj:128) at compojure.core$wrap_route_info$fn__20658.invoke(core.clj:137) at compojure.core$wrap_route_matches$fn__20662.invoke(core.clj:146) at compojure.core$routing$fn__20677.invoke(core.clj:185) at clojure.core$some.invokeStatic(core.clj:2701) at clojure.core$some.invoke(core.clj:2692) at compojure.core$routing.invokeStatic(core.clj:185) at compojure.core$routing.doInvoke(core.clj:182) at clojure.lang.RestFn.applyTo(RestFn.java:139) at clojure.core$apply.invokeStatic(core.clj:667) at clojure.core$apply.invoke(core.clj:660) at compojure.core$routes$fn__20681.invoke(core.clj:192) at clojure.lang.Var.invoke(Var.java:384) at blah.middleware.body_json$wrap_body_json$fn__684.invoke(body_json.clj:39) at ring.middleware.flash$wrap_flash$fn__20802.invoke(flash.clj:39) at ring.middleware.session$wrap_session$fn__21787.invoke(session.clj:108) at ring.middleware.keyword_params$wrap_keyword_params$fn__21825.invoke(keyword_params.clj:53) at ring.middleware.nested_params$wrap_nested_params$fn__21875.invoke(nested_params.clj:89) at ring.middleware.multipart_params$wrap_multipart_params$fn__22097.invoke(multipart_params.clj:173) at ring.middleware.params$wrap_params$fn__22113.invoke(params.clj:67) at ring.middleware.cookies$wrap_cookies$fn__9248.invoke(cookies.clj:214) at ring.middleware.absolute_redirects$wrap_absolute_redirects$fn__22216.invoke(absolute_redirects.clj:47) at ring.middleware.resource$wrap_resource_prefer_resources$fn__22121.invoke(resource.clj:25) at ring.middleware.content_type$wrap_content_type$fn__22180.invoke(content_type.clj:34) at ring.middleware.default_charset$wrap_default_charset$fn__22196.invoke(default_charset.clj:31) at ring.middleware.not_modified$wrap_not_modified$fn__22169.invoke(not_modified.clj:61) at ring.middleware.x_headers$wrap_x_header$fn__20773.invoke(x_headers.clj:22) at ring.middleware.x_headers$wrap_x_header$fn__20773.invoke(x_headers.clj:22) at ring.middleware.x_headers$wrap_x_header$fn__20773.invoke(x_headers.clj:22) at blah.middleware.logger$wrap_logger$fn__655.invoke(logger.clj:20) at blah.middleware.exception$wrap_exception$fn__663.invoke(exception.clj:8) at aleph.http.server$handle_request$fn__13391$f__662__auto____13392.invoke(server.clj:158) at clojure.lang.AFn.run(AFn.java:22) at io.aleph.dirigiste.Executor$Worker$1.run(Executor.java:62) at manifold.executor$thread_factory$reify__554$f__555.invoke(executor.clj:44) at clojure.lang.AFn.run(AFn.java:22) at java.base/java.lang.Thread.run(Thread.java:834) Caused by: clojure.lang.ExceptionInfo: Thaw failed: Decryption/decompression failure, or data unfrozen/damaged. {:opts {:compressor :auto, :encryptor :auto}} at taoensso.nippy$thaw$ex__17475.invoke(nippy.clj:1319) at taoensso.nippy$thaw$fn__17496.invoke(nippy.clj:1370) at taoensso.nippy$thaw$thaw_data__17477.invoke(nippy.clj:1345) at taoensso.nippy$thaw.invokeStatic(nippy.clj:1369) at taoensso.nippy$thaw.invoke(nippy.clj:1292) at taoensso.nippy.tools$thaw.invokeStatic(tools.clj:46) at taoensso.nippy.tools$thaw.invoke(tools.clj:40) at taoensso.carmine.protocol$get_unparsed_reply.invokeStatic(protocol.clj:160) ... 53 more Caused by: clojure.lang.ExceptionInfo: Thaw failed against type-id: 112 {:type-id 112} at taoensso.nippy$thaw_from_in_BANG_.invokeStatic(nippy.clj:1241) at taoensso.nippy$thaw_from_in_BANG_.invoke(nippy.clj:1108) at taoensso.nippy$thaw$thaw_data__17477.invoke(nippy.clj:1343) ... 58 more Caused by: java.lang.ClassCastException: class taoensso.encore$reduce_n cannot be cast to class clojure.lang.IFn$OOLO (taoensso.encore$reduce_n and clojure.lang.IFn$OOLO are in unnamed module of loader 'app') at taoensso.nippy$read_kvs_into.invokeStatic(nippy.clj:1048) at taoensso.nippy$read_kvs_into.invokePrim(nippy.clj) at taoensso.nippy$thaw_from_in_BANG_.invokeStatic(nippy.clj:1177) ... 60 more

ptaoussanis commented 1 year ago

Hi there! Is this issue still relevant?

If so, would kindly request that you try get this down to a reproducible example please - otherwise it'd be very difficult for me (or anyone else) to assist.

st commented 1 year ago

Hi,

This is no longer relevant.

Thanks.

ptaoussanis commented 1 year ago

Thanks for the response 👍