Analysis failed occasionally
I’ve updated Spoofax from version s41636 to version s41762. I’m using runtime libraries from version 540d088bd12b361a30b69390e79112ea65e35d87. Regularly i get an analysis crash with the following strack trace:
org.spoofax.interpreter.core.InterpreterException: Exception during evaluation at org.spoofax.interpreter.core.Interpreter.evaluate(Interpreter.java:120) at org.spoofax.interpreter.core.Interpreter.invoke(Interpreter.java:82) at org.strategoxt.HybridInterpreter.invoke(HybridInterpreter.java:442) at org.strategoxt.imp.debug.core.str.launching.DebuggableHybridInterpreter.invoke(DebuggableHybridInterpreter.java:150) at org.strategoxt.imp.runtime.services.StrategoObserver.invoke(StrategoObserver.java:637) at org.strategoxt.imp.runtime.services.StrategoObserver.invokeSilent(StrategoObserver.java:695) at org.strategoxt.imp.runtime.services.StrategoObserver.update(StrategoObserver.java:399) at org.strategoxt.imp.runtime.services.StrategoObserverUpdateJob.analyze(StrategoObserverUpdateJob.java:30) at org.strategoxt.imp.runtime.services.StrategoAnalysisQueue$UpdateJob.run(StrategoAnalysisQueue.java:82) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) Caused by: org.strategoxt.lang.StrategoException: Exception in execution of primitive 'task_api_evaluate_scheduled' at org.strategoxt.lang.Context.invokePrimitive(Context.java:240) at org.strategoxt.lang.Context.invokePrimitive(Context.java:216) at trans.task_api_evaluate_scheduled_3_0.invoke(task_api_evaluate_scheduled_3_0.java:27) at trans.lifted2989.invoke(lifted2989.java:33) at trans.measure_time_2_0.invoke(measure_time_2_0.java:38) at trans.analysis_files_no_builtins_4_2.invoke(analysis_files_no_builtins_4_2.java:151) at trans.analysis_files_4_2.invoke(analysis_files_4_2.java:33) at trans.analysis_files_spoofax_5_2.invoke(analysis_files_spoofax_5_2.java:41) at trans.analysis_files_spoofax_4_2.invoke(analysis_files_spoofax_4_2.java:28) at trans.analysis_single_default_4_1.invoke(analysis_single_default_4_1.java:33) at trans.analysis_single_default_3_1.invoke(analysis_single_default_3_1.java:28) at trans.analysis_single_default_interface_0_0.invoke(analysis_single_default_interface_0_0.java:33) at trans.analysis_default_editor_0_0.invoke(analysis_default_editor_0_0.java:38) at trans.editor_analyze_0_0.invoke(editor_analyze_0_0.java:28) at org.strategoxt.lang.Strategy.invokeDynamic(Strategy.java:30) at org.strategoxt.lang.InteropSDefT.evaluate(InteropSDefT.java:192) at org.strategoxt.lang.InteropSDefT.evaluate(InteropSDefT.java:183) at org.strategoxt.lang.InteropSDefT$StrategyBody.evaluate(InteropSDefT.java:245) at org.spoofax.interpreter.core.Interpreter.evaluate(Interpreter.java:109) ... 9 more Caused by: java.lang.ClassCastException: org.metaborg.runtime.task.ListTaskResults cannot be cast to org.metaborg.runtime.task.SetTaskResults at org.metaborg.runtime.task.specific.RelationMatchTask.evaluate(RelationMatchTask.java:25) at org.metaborg.runtime.task.evaluation.TaskEvaluationQueue.evaluateQueuedTasks(TaskEvaluationQueue.java:318) at org.metaborg.runtime.task.evaluation.TaskEvaluationQueue.evaluate(TaskEvaluationQueue.java:182) at org.metaborg.runtime.task.engine.TaskEngine.evaluateScheduled(TaskEngine.java:299) at org.metaborg.runtime.task.primitives.task_api_evaluate_scheduled_3_0.call(task_api_evaluate_scheduled_3_0.java:22) at org.strategoxt.lang.Context.invokePrimitive(Context.java:227) ... 27 more
A Reset and reanalyze eliminates the issue temporarily.
Submitted by Vlad Vergu on 15 July 2014 at 17:17
Issue Log
Are you somehow using two different versions of the task engine? By using two versions of Spoofax, or maybe Sunshine that has an older version? If so, that is probably causing it.
I’m not sure that is the issue, but it is a possibility. Definitely not an interaction with Sunshine, but perhaps with analysis caches left by older versions. I will close this issue for now, and i will reopen if the problem persists. I’m waiting for https://yellowgrass.org/issue/NaBL/113 to make it into nightly before i can test some more.
Caches left by older versions can definitely cause this. If it don’t happen any more after invalidating caches, that is probably it.
Log in to post comments