clulab / reach

Reach Biomedical Information Extraction
Other
97 stars 39 forks source link

JSON serialization error #717

Closed enoriega closed 3 years ago

enoriega commented 3 years ago

I have experienced the following error repeatedly. This goes unhandled and error crashes ReachCLI instead of logging and recovering gracefully.

I'm not sure which file is the culprit of triggering it, but the last PMCID shown before crashing is PMC6600461.

I attach reach's log to this ticket.

json_error.log

[error] (run-main-0) java.lang.NoSuchMethodError: org.json4s.JsonDSL$.seq2jvalue(Lscala/collection/Traversable;Lscala/Function1;)Lorg/json4s/JsonAST$JArray;
[error] java.lang.NoSuchMethodError: org.json4s.JsonDSL$.seq2jvalue(Lscala/collection/Traversable;Lscala/Function1;)Lorg/json4s/JsonAST$JArray;
[error]         at org.clulab.odin.serialization.json.package$EventMentionOps.$anonfun$jsonAST$17(package.scala:146)
[error]         at org.json4s.JsonDSL.pair2jvalue(JsonDSL.scala:82)
[error]         at org.json4s.JsonDSL.pair2jvalue$(JsonDSL.scala:82)
[error]         at org.json4s.JsonDSL$.pair2jvalue(JsonDSL.scala:64)
[error]         at org.clulab.odin.serialization.json.package$EventMentionOps.jsonAST(package.scala:146)
[error]         at org.clulab.reach.mentions.serialization.json.package$BioEventMentionOps.jsonAST(package.scala:119)
[error]         at org.clulab.reach.mentions.serialization.json.package$CorefEventMentionOps.jsonAST(package.scala:174)
[error]         at org.clulab.reach.mentions.serialization.json.package$CorefMentionOps.jsonAST(package.scala:83)
[error]         at org.clulab.reach.mentions.serialization.json.JSONSerializer$.$anonfun$jsonAST$1(JSONSerializer.scala:42)
[error]         at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:237)
[error]         at scala.collection.Iterator.foreach(Iterator.scala:941)
[error]         at scala.collection.Iterator.foreach$(Iterator.scala:941)
[error]         at scala.collection.AbstractIterator.foreach(Iterator.scala:1429)
[error]         at scala.collection.IterableLike.foreach(IterableLike.scala:74) 
[error]         at scala.collection.IterableLike.foreach$(IterableLike.scala:73)
[error]         at scala.collection.AbstractIterable.foreach(Iterable.scala:56) 
[error]         at scala.collection.TraversableLike.map(TraversableLike.scala:237)
[error]         at scala.collection.TraversableLike.map$(TraversableLike.scala:230)
[error]         at scala.collection.AbstractTraversable.map(Traversable.scala:108)
[error]         at org.clulab.reach.mentions.serialization.json.JSONSerializer$.jsonAST(JSONSerializer.scala:41)
[error]         at org.clulab.reach.mentions.serialization.json.package$REACHMentionSeq.jsonAST(package.scala:41)
[error]         at org.clulab.serialization.json.JSONSerialization.json(JSONSerialization.scala:13)
[error]         at org.clulab.serialization.json.JSONSerialization.json$(JSONSerialization.scala:13)
[error]         at org.clulab.reach.mentions.serialization.json.package$REACHMentionSeq.json(package.scala:39)
[error]         at org.clulab.reach.export.serial.SerialJsonOutput.writeJSON(SerialJsonOutput.scala:61)
[error]         at org.clulab.reach.ReachCLI.outputMentions(ReachCLI.scala:209) 
[error]         at org.clulab.reach.ReachCLI.$anonfun$processPaper$1(ReachCLI.scala:143)
[error]         at org.clulab.reach.ReachCLI.$anonfun$processPaper$1$adapted(ReachCLI.scala:143)
[error]         at scala.collection.immutable.List.foreach(List.scala:392)
[error]         at org.clulab.reach.ReachCLI.processPaper(ReachCLI.scala:143)
[error]         at org.clulab.reach.ReachCLI.$anonfun$processPapers$3(ReachCLI.scala:90)
[error]         at org.clulab.reach.ReachCLI.$anonfun$processPapers$3$adapted(ReachCLI.scala:84)
[error]         at scala.collection.parallel.AugmentedIterableIterator.map2combiner(RemainsIterator.scala:116)
[error]         at scala.collection.parallel.AugmentedIterableIterator.map2combiner$(RemainsIterator.scala:113)
[error]         at scala.collection.parallel.immutable.ParVector$ParVectorIterator.map2combiner(ParVector.scala:66)
[error]         at scala.collection.parallel.ParIterableLike$Map.leaf(ParIterableLike.scala:1056)
[error]         at scala.collection.parallel.Task.$anonfun$tryLeaf$1(Tasks.scala:53)
[error]         at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
[error]         at scala.util.control.Breaks$$anon$1.catchBreak(Breaks.scala:67)
[error]         at scala.collection.parallel.Task.tryLeaf(Tasks.scala:56)
[error]         at scala.collection.parallel.Task.tryLeaf$(Tasks.scala:50)
[error]         at scala.collection.parallel.ParIterableLike$Map.tryLeaf(ParIterableLike.scala:1053)
[error]         at scala.collection.parallel.AdaptiveWorkStealingTasks$WrappedTask.internal(Tasks.scala:160)
[error]         at scala.collection.parallel.AdaptiveWorkStealingTasks$WrappedTask.internal$(Tasks.scala:157)
[error]         at scala.collection.parallel.AdaptiveWorkStealingForkJoinTasks$WrappedTask.internal(Tasks.scala:440)
[error]         at scala.collection.parallel.AdaptiveWorkStealingTasks$WrappedTask.compute(Tasks.scala:150)
[error]         at scala.collection.parallel.AdaptiveWorkStealingTasks$WrappedTask.compute$(Tasks.scala:149)
[error]         at scala.collection.parallel.AdaptiveWorkStealingForkJoinTasks$WrappedTask.compute(Tasks.scala:440)
[error]         at java.util.concurrent.RecursiveAction.exec(RecursiveAction.java:189)
[error]         at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
[error]         at java.util.concurrent.ForkJoinTask.doJoin(ForkJoinTask.java:389)
[error]         at java.util.concurrent.ForkJoinTask.join(ForkJoinTask.java:719)
[error]         at scala.collection.parallel.ForkJoinTasks$WrappedTask.sync(Tasks.scala:379)
[error]         at scala.collection.parallel.ForkJoinTasks$WrappedTask.sync$(Tasks.scala:379)
[error]         at scala.collection.parallel.AdaptiveWorkStealingForkJoinTasks$WrappedTask.sync(Tasks.scala:440)
[error]         at scala.collection.parallel.ForkJoinTasks.executeAndWaitResult(Tasks.scala:423)
[error]         at scala.collection.parallel.ForkJoinTasks.executeAndWaitResult$(Tasks.scala:416)
[error]         at scala.collection.parallel.ForkJoinTaskSupport.executeAndWaitResult(TaskSupport.scala:60)
[error]         at scala.collection.parallel.ExecutionContextTasks.executeAndWaitResult(Tasks.scala:555)
[error]         at scala.collection.parallel.ExecutionContextTasks.executeAndWaitResult$(Tasks.scala:555)
[error]         at scala.collection.parallel.ExecutionContextTaskSupport.executeAndWaitResult(TaskSupport.scala:84)
[error]         at scala.collection.parallel.ParIterableLike$ResultMapping.leaf(ParIterableLike.scala:960)
[error]         at scala.collection.parallel.Task.$anonfun$tryLeaf$1(Tasks.scala:53)
[error]         at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
[error]         at scala.util.control.Breaks$$anon$1.catchBreak(Breaks.scala:67)
[error]         at scala.collection.parallel.Task.tryLeaf(Tasks.scala:56)
[error]         at scala.collection.parallel.Task.tryLeaf$(Tasks.scala:50)
[error]         at scala.collection.parallel.ParIterableLike$ResultMapping.tryLeaf(ParIterableLike.scala:955)
[error]         at scala.collection.parallel.AdaptiveWorkStealingTasks$WrappedTask.compute(Tasks.scala:153)
[error]         at scala.collection.parallel.AdaptiveWorkStealingTasks$WrappedTask.compute$(Tasks.scala:149)
[error]         at scala.collection.parallel.AdaptiveWorkStealingForkJoinTasks$WrappedTask.compute(Tasks.scala:440)
[error]         at java.util.concurrent.RecursiveAction.exec(RecursiveAction.java:189)
[error]         at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
[error]         at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
[error]         at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
[error]         at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
MihaiSurdeanu commented 3 years ago

@kwalcock: can you please take a look at this asap? Not sure what is causing this: an incorrect json4s library version?

Adding @myedibleenso, in case he knows what this is. Thank you both!

myedibleenso commented 3 years ago

Not sure what might happening here. There are tests in place for json serialization. This only happens for some papers?

I would take a look at the history for any changes to json serialization and the json4s dependency. You might also need to look at changes to the json serialization code in processors.

kwalcock commented 3 years ago

I'm looking at the history and testing, but it looks like this isn't the first time the problem has been encountered. @zhengzhongliang has code in one of his branches in which

val json4sV = "3.6.9"

has been changed to

  val json4sV = "3.5.1" //Change this to 3.5.1 for annotation on server

Perhaps he can comment on what happened.

kwalcock commented 3 years ago

@enoriega or others, where might I find a file very much like PMC6600461(.nxml?)?

enoriega commented 3 years ago

@kwalcock I'll find a couple files that trigger this and come back with them

kwalcock commented 3 years ago

I found a file that fails. The best solution IMO is to stick with the json4s that processors uses. Mixing and matching them seems to lead to problems. The change has been made in the PR, #719.

enoriega commented 3 years ago

Ok. Same as with issue #718, this error hasn't happened while running branch kwalcock-fixes, so I think this is safe to close too.