hi, I'm seeing a weird exception in one of our transactor logs when it's indexing (looks like an overflow). any suggestions on things I can do to prevent? ๐งต
java.lang.NegativeArraySizeException: -305583505
at datomic.impl.JavaByteUtil.to7Bit(JavaByteUtil.java:52)
at $encode_base128.invokeStatic(io.clj:267)
at $encode_base128.invoke(io.clj:265)
at $bbuf__GT_base128.invokeStatic(io.clj:277)
at $bbuf__GT_base128.invoke(io.clj:273)
at datomic.ddb_values$put_value.invokeStatic(ddb_values.clj:66)
at datomic.ddb_values$put_value.invoke(ddb_values.clj:53)
at datomic.kv_dynamo.KVDynamo$fn__30896.invoke(kv_dynamo.clj:56)
at datomic.kv_dynamo.KVDynamo.put(kv_dynamo.clj:55)
at datomic.kv_cluster.KVCluster$doit__10679$fn__10683$fn__10684.invoke(kv_cluster.clj:154)
at datomic.kv_cluster$retry_fn$fn__10656.invoke(kv_cluster.clj:77)
at datomic.kv_cluster$retry_fn.invokeStatic(kv_cluster.clj:77)
at datomic.kv_cluster$retry_fn.invoke(kv_cluster.clj:51)
at clojure.lang.AFn.applyToHelper(AFn.java:178)
at clojure.lang.AFn.applyTo(AFn.java:144)
at clojure.core$apply.invokeStatic(core.clj:673)
at clojure.core$partial$fn__5914.doInvoke(core.clj:2660)
at clojure.lang.RestFn.invoke(RestFn.java:421)
at datomic.kv_cluster.KVCluster$doit__10679$fn__10683.invoke(kv_cluster.clj:153)
at datomic.kv_cluster.KVCluster$doit__10679.invoke(kv_cluster.clj:150)
at clojure.core$binding_conveyor_fn$fn__5823.invoke(core.clj:2047)
at datomic.future$filling_promise$f__9949.invoke(future.clj:31)
at clojure.lang.AFn.call(AFn.java:18)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1575) retries for a while then transactor dies with ERROR default datomic.process - {:message "Terminating process - Indexing retry limit exceeded.", :pid 1, :tid 141}
we do store some pretty large strings that should definitely be moved to external blobs, but I was hoping the transactor wouldn't accept a value that it can't index.
Please open a support ticket immediately CC: @jaret
Can you send an e-mail to <mailto:support@datomic.com|support@datomic.com> to start the case or fill out ticket info here: https://support.cognitect.com/hc/en-us/requests/new
Going to want: Version of Datomic peers and transactors. Transactor logs. What you are running transactor machines on (CPU, heap, etc) Transactor properties file
Might have you grab a JFR, but we can do the instructions for that over the ticket.
Is this on 7556
Comms on the ticket please
will do, thanks. we have some options to workaround so not an emergency per se but would like to understand if there are any supported ways to fix when it happens and if it could be prevented. it's on 1.0.7491 atm
We just need more information before we comment on the work around. Gotta know the exact cause here. Will work quickly on this once I see those logs and info above ^
thanks all, i'll send an email later today
sorry ended up being a busy day for unrelated reasons, will get something together monday
Please include transactor logs from the time of the issue
Hey Paul, I sent a response yesterday. Happy to chat when you've had time to review.
sent an email over, thanks!
Looking it over now