Fork me on GitHub
#datomic
<
2023-11-29
>
lboliveira17:11:18

Hello all! How are you? Have you ever dealt with with this transactor error? My storage is an oracle database.

2023-11-29 17:43:05.503 ERROR default    datomic.process - {:message "Terminating process - Could not write log", :pid 15, :tid 99}
java.lang.Error: Conflict updating log tail
	at datomic.log.LogImpl$fn__9747.invoke(log.clj:495)
	at datomic.log.LogImpl.append(log.clj:487)
	at datomic.log$fn__9325$G__9319__9329.invoke(log.clj:65)
	at datomic.log$fn__9325$G__9318__9334.invoke(log.clj:65)
	at clojure.lang.Atom.swap(Atom.java:65)
	at clojure.core$swap_BANG_.invokeStatic(core.clj:2371)
	at clojure.core$swap_BANG_.invoke(core.clj:2362)
	at datomic.update$writer$log_block__13230.invoke(update.clj:468)
	at datomic.update$writer$proc__13238.invoke(update.clj:488)
	at datomic.update$writer$fn__13241$fn__13243.invoke(update.clj:497)
	at clojure.lang.AFn.run(AFn.java:22)
	at java.base/java.lang.Thread.run(Unknown Source)

Joe Lane17:11:58

What version of datomic are you using?

lboliveira17:11:31

ENV DATOMIC_VERSION 1.0.6735

jaret12:12:55

@U067NFWUR do you have any gc pauses or failures? logged as:

2019-11-13 14:46:59.204 INFO  default    datomic.log-gc - {:gcName "G1 Old Generation", :gcAction "end of major GC", :gcCause "Allocation Failure", :event :gc, :duration 22219, :pid 4824, :tid 21}

or

17:21:57.308 INFO default metrics.jmx - end of minor GC: duration=17.906 secs; cause=G1 Evacuation Pause; name=G1 Young Generation
The failure to write to log is a possible symptom of failing to write to storage (i.e. the transactor was in the middle of a write to storage when a long GC pause exceeded the heartbeat interval msec prompting safe failover.) If you want to dig deeper I'd be happy to look at logs from the event via the support portal: https://support.cognitect.com/hc/en-us/requests/new