cdap sandbox won't start - Unable to read transaction state version

406 views Asked by At

I have installed the binaries for the CDAP sandbox using the recipe found here. I was building a plugin and may have had a debugger blocking work. I rebooted my Linux PC on which the sandbox was running and now when I try and start the CDAP sandbox we end up with an error:

2020-10-04 09:05:57,507 - ERROR [main:o.a.t.s.SnapshotCodecProvider@122] - Unable to read transaction state version:
java.io.EOFException: null
        at org.apache.tephra.snapshot.BinaryDecoder.readByte(BinaryDecoder.java:106) ~[org.apache.tephra.tephra-core-0.15.0-incubating.jar:0.15.0-incubating]
        at org.apache.tephra.snapshot.BinaryDecoder.readInt(BinaryDecoder.java:48) ~[org.apache.tephra.tephra-core-0.15.0-incubating.jar:0.15.0-incubating]

My gut is saying that the last time CDAP ran, it didn't get the opportunity to write transaction state for an in-flight run and now I have corrupted some state. Since I'm only sandbox testing now, I'm happy to cold start CDAP. Unfortunately I haven't found any recipe for this yet. Has anyone seen anything similar or have a recipe for a cold start of CDAP sandbox?

2

There are 2 answers

0
Christophe On

I'had the same isue. To solve the problem you have to delete or rename the tx.snapshot directory in the directory called data. It's ok for me without any reset.

0
Edwin Elia On

As you have mentioned in the comment, deleting the data and logs directory will solve the problem, but it will reset the sandbox. CDAP sandbox is running on a single java process so it does not have High Availability (HA). When the process is killed suddenly, it may end up in a corrupted state.