I have a state system set up using the FULL history backend. I noticed that I was receiving the stack trace below when the history is read back in from file. The issue goes away when I limit the size of strings in StringStateValue to less than 100 bytes.
I tried to up the blocksize from 64*1024 to some very large value, but that did not seem to do the trick. I did not study it exhaustively, but I did not see any checking in the HTNode write code to prevent buffer overruns. Maybe that is the issue?
Basically, I'd like to know how I can store longer strings using the FULL history option. It works fine when using the INMEM option, but I'll need the disk option for larger traces.
java.lang.NegativeArraySizeException
at org.eclipse.tracecompass.internal.statesystem.core.backend.historytree.HTInterval.readFrom(HTInterval.java:187)
at org.eclipse.tracecompass.internal.statesystem.core.backend.historytree.HTNode.readNode(HTNode.java:218)
at org.eclipse.tracecompass.internal.statesystem.core.backend.historytree.HT_IO.readNode(HT_IO.java:140)
at org.eclipse.tracecompass.internal.statesystem.core.backend.historytree.HistoryTree.buildLatestBranch(HistoryTree.java:223)
at org.eclipse.tracecompass.internal.statesystem.core.backend.historytree.HistoryTree.<init>(HistoryTree.java:197)
at org.eclipse.tracecompass.internal.statesystem.core.backend.historytree.HistoryTreeBackend.<init>(HistoryTreeBackend.java:148)
at org.eclipse.tracecompass.statesystem.core.backend.StateHistoryBackendFactory.createHistoryTreeBackendExistingFile(StateHistoryBackendFactory.java:116)
at org.eclipse.tracecompass.tmf.core.statesystem.TmfStateSystemAnalysisModule.createFullHistory(TmfStateSystemAnalysisModule.java:302)
at org.eclipse.tracecompass.tmf.core.statesystem.TmfStateSystemAnalysisModule.executeAnalysis(TmfStateSystemAnalysisModule.java:227)
at org.eclipse.tracecompass.tmf.core.analysis.TmfAbstractAnalysisModule$1.run(TmfAbstractAnalysisModule.java:351)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Thanks!
Rocky