Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

A specific plugin execution thrown an exception yet job have completed with success #837

Closed
hsilva-keep opened this issue Mar 17, 2017 · 8 comments
Assignees
Labels
Milestone

Comments

@hsilva-keep
Copy link
Member

Exception:

2017-03-17 12:08:20,601 [JobsSystem-io-2-dispatcher-54] ERROR o.r.c.p.o.akka.AkkaWorkerActor - Error executing plugin.execute()
java.lang.IllegalAccessError: tried to access method org.roda.core.data.v2.common.Pair.<init>(Ljava/lang/Object;Ljava/lang/Object;)V from class com.databasepreservation.visualization.utils.SolrManager
        at com.databasepreservation.visualization.utils.SolrManager.markDatabaseAsReady(SolrManager.java:556)
        at com.databasepreservation.modules.solr.SolrExportModule.finishDatabase(SolrExportModule.java:182)
        at com.databasepreservation.modules.siard.in.input.SIARDImportDefault.getDatabase(SIARDImportDefault.java:56)
        at org.roda.core.plugins.dbptk.DatabaseVisualizationPlugin.convert(DatabaseVisualizationPlugin.java:568)
        at org.roda.core.plugins.dbptk.DatabaseVisualizationPlugin.convertToViewer(DatabaseVisualizationPlugin.java:340)
        at org.roda.core.plugins.dbptk.DatabaseVisualizationPlugin.executeOnFile(DatabaseVisualizationPlugin.java:295)
        at org.roda.core.plugins.AbstractAIPComponentsPlugin$1.process(AbstractAIPComponentsPlugin.java:39)
        at org.roda.core.plugins.plugins.PluginHelper.processObjects(PluginHelper.java:131)
        at org.roda.core.plugins.AbstractAIPComponentsPlugin.execute(AbstractAIPComponentsPlugin.java:27)
        at org.roda.core.plugins.orchestrate.akka.AkkaWorkerActor.handlePluginExecuteIsReady(AkkaWorkerActor.java:54)
        at org.roda.core.plugins.orchestrate.akka.AkkaWorkerActor.onReceive(AkkaWorkerActor.java:39)
        at akka.actor.UntypedActor$$anonfun$receive$1.applyOrElse(UntypedActor.scala:165)
        at akka.actor.Actor$class.aroundReceive(Actor.scala:496)
        at akka.actor.UntypedActor.aroundReceive(UntypedActor.scala:95)
        at akka.actor.ActorCell.receiveMessage(ActorCell.scala:526)
        at akka.actor.ActorCell.invoke(ActorCell.scala:495)
        at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257)
        at akka.dispatch.Mailbox.run(Mailbox.scala:224)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

Job:

{
  "id": "a9245b27-9839-41c8-a659-7b8d8b1fc126",
  "name": "Database Visualization (1.0)",
  "username": "admin",
  "startDate": 1489752412424,
  "state": "COMPLETED",
  "stateDetails": "",
  "jobStats": {
    "completionPercentage": 0,
    "sourceObjectsCount": 1,
    "sourceObjectsBeingProcessed": 1,
    "sourceObjectsWaitingToBeProcessed": 0,
    "sourceObjectsProcessedWithSuccess": 0,
    "sourceObjectsProcessedWithFailure": 0,
    "outcomeObjectsWithManualIntervention": 0
  },
  "plugin": "org.roda.core.plugins.dbptk.DatabaseVisualizationPlugin",
  "pluginType": "MISC",
  "sourceObjects": {
    "type": "list",
    "ids": [
      "85b0439d-6d98-32c3-9c18-0cfa9020f383"
    ],
    "selectedClass": "org.roda.core.data.v2.ip.IndexedFile"
  },
  "outcomeObjectsClass": "",
  "inFinalState": true,
  "stopping": false,
  "endDate": 1489752500617,
  "pluginParameters": {
    "core.plugins.dbptk.siard.ignoreNonSiard": "false",
    "core.plugins.dbptk.siard.extensions": "siard,siard2"
  }
}
@hsilva-keep hsilva-keep self-assigned this Mar 17, 2017
@luis100
Copy link
Member

luis100 commented Mar 17, 2017

the org.roda.core.data.v2.common.Pair constructor visibility was changed to private, should use Pair.of() instead.

@jmaferreira
Copy link
Member

We changed it back to public as it was breaking code all over the places... in plugins.
There's no good reason why we shouldn't keep both approaches on. Potencially add a deprecated annotation.

@jmaferreira
Copy link
Member

jmaferreira commented Mar 18, 2017 via email

@hsilva-keep
Copy link
Member Author

To summarize, plugin problem was solved by changing Pair constructor back to public (and adding java docs).
The other problem is related to Job orchestration and how Plugin.execute individual failures should be handled.

@luis100 luis100 added this to the 2.1.0 milestone Jun 30, 2017
@luis100 luis100 modified the milestones: 2.3.0, 2.1.0 Aug 14, 2017
@luis100
Copy link
Member

luis100 commented May 24, 2018

@hsilva-keep is this still an issue?

hsilva-keep added a commit that referenced this issue Aug 22, 2018
…ing PluginHelper.processObject methods & one plugin.execute throws unexpected exception, the orchestrator stops the rest of the processing & sets 1) state/FAILED_TO_COMPLETE 2) stats 3) job state details with information about the exceptions occurred; #837)
@hsilva-keep
Copy link
Member Author

Solved since 1365dd2

@hsilva-keep
Copy link
Member Author

If one or more exceptions occurred (in one or more plugin.execute), textual description of those exceptions is added to job.statedetails...I've kept the state details as a string to avoid introducing changes to the model.

@luis100 assign proper person to handle showing that information (if it exists) in the WUI.

@hsilva-keep hsilva-keep assigned luis100 and unassigned hsilva-keep Aug 23, 2018
@luis100 luis100 assigned nunovieira220 and unassigned luis100 Sep 5, 2018
@nunovieira220
Copy link
Contributor

The state details information is already presented when showing a job here

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants