myGrid

Synchronised storage of metadata

Details

  • Type: Improvement Improvement
  • Status: Closed Closed
  • Priority: Major Major
  • Resolution: Fixed
  • Affects Version/s: None
  • Fix Version/s: None
  • Component/s: Provenance
  • Labels:
    None

Description

Make MetadataService storage methods synchronised, or at least verify there is no race condition.

Issue Links

Activity

Hide
Daniele Turi added a comment - 2006-09-06 17:21

The problem arised when running uk.ac.man.cs.img.mygrid.provenance.knowledge.taverna.ng4j.PerProcessExecutionTest.java,
where sometimes only the provenance corresponding to workflow completed event was stored. But this might actually be caused by org.embl.ebi.escience.scufl.tools.WorkflowLauncher.execute(Map)
in Taverna, because that stops the execution when either workflow completion or failed is fired.

Show
Daniele Turi added a comment - 2006-09-06 17:21 The problem arised when running uk.ac.man.cs.img.mygrid.provenance.knowledge.taverna.ng4j.PerProcessExecutionTest.java, where sometimes only the provenance corresponding to workflow completed event was stored. But this might actually be caused by org.embl.ebi.escience.scufl.tools.WorkflowLauncher.execute(Map) in Taverna, because that stops the execution when either workflow completion or failed is fired.
Hide
Daniele Turi added a comment - 2006-09-11 16:02

Analysis of the log shows that actually the events are fired in the right order, but when in debug mode everything is stored, while when in normal run mode the storage of workflow completion overrides the one of workflow created.

Show
Daniele Turi added a comment - 2006-09-11 16:02 Analysis of the log shows that actually the events are fired in the right order, but when in debug mode everything is stored, while when in normal run mode the storage of workflow completion overrides the one of workflow created.
Hide
Daniele Turi added a comment - 2006-09-11 18:16

Further debugging shows that the invocation of toJenaModel() in uk.ac.man.cs.img.mygrid.provenance.knowledge.store.JenaMetadataService.updateRDFGraph(String, String, String) of workflow creation fails silently during

tempModel.read(tempStringReader, namespace);

Show
Daniele Turi added a comment - 2006-09-11 18:16 Further debugging shows that the invocation of toJenaModel() in uk.ac.man.cs.img.mygrid.provenance.knowledge.store.JenaMetadataService.updateRDFGraph(String, String, String) of workflow creation fails silently during tempModel.read(tempStringReader, namespace);
Hide
Daniele Turi added a comment - 2006-09-12 12:50

Got to the stack trace of the model reading the rdf:

ERROR 2006-09-12 12:47:46,525 (com.hp.hpl.jena.rdf.model.impl.RDFDefaultErrorHandler:44) - file:etc/ont-policy.rdf(line 18 column 2): {E302} Interrupt detected.
WARN 2006-09-12 12:47:46,530 (com.hp.hpl.jena.ontology.OntDocumentManager:960) - Exception while reading configuration: rethrew: com.hp.hpl.jena.rdf.arp.impl.XMLHandler$1: {E302} Interrupt detected.
com.hp.hpl.jena.rdf.arp.impl.XMLHandler$1: {E302} Interrupt detected.
at com.hp.hpl.jena.rdf.arp.impl.XMLHandler.warning(XMLHandler.java:188)
at com.hp.hpl.jena.rdf.arp.impl.XMLHandler.warning(XMLHandler.java:183)
at com.hp.hpl.jena.rdf.arp.impl.XMLHandler.startElement(XMLHandler.java:129)
at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
at org.apache.xerces.impl.XMLNamespaceBinder.handleStartElement(Unknown Source)
at org.apache.xerces.impl.XMLNamespaceBinder.startElement(Unknown Source)
at org.apache.xerces.impl.dtd.XMLDTDValidator.startElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentScannerImpl$ContentDispatcher.scanRootElementHook(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at com.hp.hpl.jena.rdf.arp.impl.RDFXMLParser.parse(RDFXMLParser.java:106)
at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:197)
at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:184)
at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:254)
at com.hp.hpl.jena.rdf.model.impl.ModelCom.read(ModelCom.java:236)
at com.hp.hpl.jena.ontology.OntDocumentManager.findMetadata(OntDocumentManager.java:954)
at com.hp.hpl.jena.ontology.OntDocumentManager.initialiseMetadata(OntDocumentManager.java:912)
at com.hp.hpl.jena.ontology.OntDocumentManager.<init>(OntDocumentManager.java:199)
at com.hp.hpl.jena.ontology.OntDocumentManager.<init>(OntDocumentManager.java:181)
at com.hp.hpl.jena.ontology.OntDocumentManager.<init>(OntDocumentManager.java:165)
at com.hp.hpl.jena.ontology.OntDocumentManager.getInstance(OntDocumentManager.java:243)
at com.hp.hpl.jena.ontology.OntModelSpec.getDocumentManager(OntModelSpec.java:351)
at com.hp.hpl.jena.ontology.OntModelSpec.<init>(OntModelSpec.java:214)
at uk.ac.man.cs.img.mygrid.provenance.knowledge.ontology.jena.JenaOntologyAdapter.<init>(JenaOntologyAdapter.java:94)
at uk.ac.man.cs.img.mygrid.provenance.knowledge.ontology.jena.JenaProvenanceOntology.<init>(JenaProvenanceOntology.java:123)
at uk.ac.man.cs.img.mygrid.provenance.knowledge.ontology.ProvenanceOntologyFactory.getInstance(ProvenanceOntologyFactory.java:100)
at uk.ac.man.cs.img.mygrid.provenance.knowledge.taverna.PerProcessProvenanceGenerator.workflowCreated(PerProcessProvenanceGenerator.java:350)
at org.embl.ebi.escience.scufl.enactor.implementation.WorkflowEventDispatcher.sendAnEvent(WorkflowEventDispatcher.java:134)
at org.embl.ebi.escience.scufl.enactor.implementation.WorkflowEventDispatcher.fireEvents(WorkflowEventDispatcher.java:108)
at org.embl.ebi.escience.scufl.enactor.implementation.WorkflowEventDispatcher$NotifyThread.run(WorkflowEventDispatcher.java:191)
com.hp.hpl.jena.shared.JenaException: rethrew: com.hp.hpl.jena.rdf.arp.impl.XMLHandler$1: {E302} Interrupt detected.
at com.hp.hpl.jena.rdf.model.impl.RDFDefaultErrorHandler.fatalError(RDFDefaultErrorHandler.java:45)
at com.hp.hpl.jena.rdf.arp.impl.ARPSaxErrorHandler.fatalError(ARPSaxErrorHandler.java:35)
at com.hp.hpl.jena.rdf.arp.impl.XMLHandler.warning(XMLHandler.java:214)
at com.hp.hpl.jena.rdf.arp.impl.XMLHandler.warning(XMLHandler.java:188)
at com.hp.hpl.jena.rdf.arp.impl.XMLHandler.warning(XMLHandler.java:183)
at com.hp.hpl.jena.rdf.arp.impl.XMLHandler.startElement(XMLHandler.java:129)
at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
at org.apache.xerces.impl.XMLNamespaceBinder.handleStartElement(Unknown Source)
at org.apache.xerces.impl.XMLNamespaceBinder.startElement(Unknown Source)
at org.apache.xerces.impl.dtd.XMLDTDValidator.startElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentScannerImpl$ContentDispatcher.scanRootElementHook(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at com.hp.hpl.jena.rdf.arp.impl.RDFXMLParser.parse(RDFXMLParser.java:106)
at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:197)
at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:184)
at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:254)
at com.hp.hpl.jena.rdf.model.impl.ModelCom.read(ModelCom.java:236)
at com.hp.hpl.jena.ontology.OntDocumentManager.findMetadata(OntDocumentManager.java:954)
at com.hp.hpl.jena.ontology.OntDocumentManager.initialiseMetadata(OntDocumentManager.java:912)
at com.hp.hpl.jena.ontology.OntDocumentManager.<init>(OntDocumentManager.java:199)
at com.hp.hpl.jena.ontology.OntDocumentManager.<init>(OntDocumentManager.java:181)
at com.hp.hpl.jena.ontology.OntDocumentManager.<init>(OntDocumentManager.java:165)
at com.hp.hpl.jena.ontology.OntDocumentManager.getInstance(OntDocumentManager.java:243)
at com.hp.hpl.jena.ontology.OntModelSpec.getDocumentManager(OntModelSpec.java:351)
at com.hp.hpl.jena.ontology.OntModelSpec.<init>(OntModelSpec.java:214)
at uk.ac.man.cs.img.mygrid.provenance.knowledge.ontology.jena.JenaOntologyAdapter.<init>(JenaOntologyAdapter.java:94)
at uk.ac.man.cs.img.mygrid.provenance.knowledge.ontology.jena.JenaProvenanceOntology.<init>(JenaProvenanceOntology.java:123)
at uk.ac.man.cs.img.mygrid.provenance.knowledge.ontology.ProvenanceOntologyFactory.getInstance(ProvenanceOntologyFactory.java:100)
at uk.ac.man.cs.img.mygrid.provenance.knowledge.taverna.PerProcessProvenanceGenerator.workflowCreated(PerProcessProvenanceGenerator.java:350)
at org.embl.ebi.escience.scufl.enactor.implementation.WorkflowEventDispatcher.sendAnEvent(WorkflowEventDispatcher.java:134)
at org.embl.ebi.escience.scufl.enactor.implementation.WorkflowEventDispatcher.fireEvents(WorkflowEventDispatcher.java:108)
at org.embl.ebi.escience.scufl.enactor.implementation.WorkflowEventDispatcher$NotifyThread.run(WorkflowEventDispatcher.java:191)
Caused by: com.hp.hpl.jena.rdf.arp.impl.XMLHandler$1: {E302} Interrupt detected.

Show
Daniele Turi added a comment - 2006-09-12 12:50 Got to the stack trace of the model reading the rdf: ERROR 2006-09-12 12:47:46,525 (com.hp.hpl.jena.rdf.model.impl.RDFDefaultErrorHandler:44) - file:etc/ont-policy.rdf(line 18 column 2): {E302} Interrupt detected. WARN 2006-09-12 12:47:46,530 (com.hp.hpl.jena.ontology.OntDocumentManager:960) - Exception while reading configuration: rethrew: com.hp.hpl.jena.rdf.arp.impl.XMLHandler$1: {E302} Interrupt detected. com.hp.hpl.jena.rdf.arp.impl.XMLHandler$1: {E302} Interrupt detected. at com.hp.hpl.jena.rdf.arp.impl.XMLHandler.warning(XMLHandler.java:188) at com.hp.hpl.jena.rdf.arp.impl.XMLHandler.warning(XMLHandler.java:183) at com.hp.hpl.jena.rdf.arp.impl.XMLHandler.startElement(XMLHandler.java:129) at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source) at org.apache.xerces.impl.XMLNamespaceBinder.handleStartElement(Unknown Source) at org.apache.xerces.impl.XMLNamespaceBinder.startElement(Unknown Source) at org.apache.xerces.impl.dtd.XMLDTDValidator.startElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentScannerImpl$ContentDispatcher.scanRootElementHook(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source) at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) at com.hp.hpl.jena.rdf.arp.impl.RDFXMLParser.parse(RDFXMLParser.java:106) at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:197) at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:184) at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:254) at com.hp.hpl.jena.rdf.model.impl.ModelCom.read(ModelCom.java:236) at com.hp.hpl.jena.ontology.OntDocumentManager.findMetadata(OntDocumentManager.java:954) at com.hp.hpl.jena.ontology.OntDocumentManager.initialiseMetadata(OntDocumentManager.java:912) at com.hp.hpl.jena.ontology.OntDocumentManager.<init>(OntDocumentManager.java:199) at com.hp.hpl.jena.ontology.OntDocumentManager.<init>(OntDocumentManager.java:181) at com.hp.hpl.jena.ontology.OntDocumentManager.<init>(OntDocumentManager.java:165) at com.hp.hpl.jena.ontology.OntDocumentManager.getInstance(OntDocumentManager.java:243) at com.hp.hpl.jena.ontology.OntModelSpec.getDocumentManager(OntModelSpec.java:351) at com.hp.hpl.jena.ontology.OntModelSpec.<init>(OntModelSpec.java:214) at uk.ac.man.cs.img.mygrid.provenance.knowledge.ontology.jena.JenaOntologyAdapter.<init>(JenaOntologyAdapter.java:94) at uk.ac.man.cs.img.mygrid.provenance.knowledge.ontology.jena.JenaProvenanceOntology.<init>(JenaProvenanceOntology.java:123) at uk.ac.man.cs.img.mygrid.provenance.knowledge.ontology.ProvenanceOntologyFactory.getInstance(ProvenanceOntologyFactory.java:100) at uk.ac.man.cs.img.mygrid.provenance.knowledge.taverna.PerProcessProvenanceGenerator.workflowCreated(PerProcessProvenanceGenerator.java:350) at org.embl.ebi.escience.scufl.enactor.implementation.WorkflowEventDispatcher.sendAnEvent(WorkflowEventDispatcher.java:134) at org.embl.ebi.escience.scufl.enactor.implementation.WorkflowEventDispatcher.fireEvents(WorkflowEventDispatcher.java:108) at org.embl.ebi.escience.scufl.enactor.implementation.WorkflowEventDispatcher$NotifyThread.run(WorkflowEventDispatcher.java:191) com.hp.hpl.jena.shared.JenaException: rethrew: com.hp.hpl.jena.rdf.arp.impl.XMLHandler$1: {E302} Interrupt detected. at com.hp.hpl.jena.rdf.model.impl.RDFDefaultErrorHandler.fatalError(RDFDefaultErrorHandler.java:45) at com.hp.hpl.jena.rdf.arp.impl.ARPSaxErrorHandler.fatalError(ARPSaxErrorHandler.java:35) at com.hp.hpl.jena.rdf.arp.impl.XMLHandler.warning(XMLHandler.java:214) at com.hp.hpl.jena.rdf.arp.impl.XMLHandler.warning(XMLHandler.java:188) at com.hp.hpl.jena.rdf.arp.impl.XMLHandler.warning(XMLHandler.java:183) at com.hp.hpl.jena.rdf.arp.impl.XMLHandler.startElement(XMLHandler.java:129) at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source) at org.apache.xerces.impl.XMLNamespaceBinder.handleStartElement(Unknown Source) at org.apache.xerces.impl.XMLNamespaceBinder.startElement(Unknown Source) at org.apache.xerces.impl.dtd.XMLDTDValidator.startElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentScannerImpl$ContentDispatcher.scanRootElementHook(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source) at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) at com.hp.hpl.jena.rdf.arp.impl.RDFXMLParser.parse(RDFXMLParser.java:106) at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:197) at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:184) at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:254) at com.hp.hpl.jena.rdf.model.impl.ModelCom.read(ModelCom.java:236) at com.hp.hpl.jena.ontology.OntDocumentManager.findMetadata(OntDocumentManager.java:954) at com.hp.hpl.jena.ontology.OntDocumentManager.initialiseMetadata(OntDocumentManager.java:912) at com.hp.hpl.jena.ontology.OntDocumentManager.<init>(OntDocumentManager.java:199) at com.hp.hpl.jena.ontology.OntDocumentManager.<init>(OntDocumentManager.java:181) at com.hp.hpl.jena.ontology.OntDocumentManager.<init>(OntDocumentManager.java:165) at com.hp.hpl.jena.ontology.OntDocumentManager.getInstance(OntDocumentManager.java:243) at com.hp.hpl.jena.ontology.OntModelSpec.getDocumentManager(OntModelSpec.java:351) at com.hp.hpl.jena.ontology.OntModelSpec.<init>(OntModelSpec.java:214) at uk.ac.man.cs.img.mygrid.provenance.knowledge.ontology.jena.JenaOntologyAdapter.<init>(JenaOntologyAdapter.java:94) at uk.ac.man.cs.img.mygrid.provenance.knowledge.ontology.jena.JenaProvenanceOntology.<init>(JenaProvenanceOntology.java:123) at uk.ac.man.cs.img.mygrid.provenance.knowledge.ontology.ProvenanceOntologyFactory.getInstance(ProvenanceOntologyFactory.java:100) at uk.ac.man.cs.img.mygrid.provenance.knowledge.taverna.PerProcessProvenanceGenerator.workflowCreated(PerProcessProvenanceGenerator.java:350) at org.embl.ebi.escience.scufl.enactor.implementation.WorkflowEventDispatcher.sendAnEvent(WorkflowEventDispatcher.java:134) at org.embl.ebi.escience.scufl.enactor.implementation.WorkflowEventDispatcher.fireEvents(WorkflowEventDispatcher.java:108) at org.embl.ebi.escience.scufl.enactor.implementation.WorkflowEventDispatcher$NotifyThread.run(WorkflowEventDispatcher.java:191) Caused by: com.hp.hpl.jena.rdf.arp.impl.XMLHandler$1: {E302} Interrupt detected.
Hide
Daniele Turi added a comment - 2006-09-12 15:25

Fixing TAV-151 fixed the problem.

Show
Daniele Turi added a comment - 2006-09-12 15:25 Fixing TAV-151 fixed the problem.

People

Vote (0)
Watch (0)

Dates

  • Created:
    2006-09-06 17:04
    Updated:
    2006-09-12 16:11
    Resolved:
    2006-09-12 15:25