|
[
Permlink
| « Hide
]
Stian Soiland-Reyes added a comment - 2007-05-16 10:09
This might or might not occur, it seems to happen more easily with the launcher because it kick-loads the workflow's classes faster than if you are slow and waiting for the GUI to load - at least the classes load in a different order.
Stian,
Can you comment on whether this has been reported by any users (or just by us internally). I think it should be considered for the next release; but a lot of this depends on how easy it is to reproduce. I'm a bit confused by your last comment - I think you mean it is reproduced only some times - did you only see it once? June. Back-assigning to Tom (as T2 project lead) until they are prioritised up for actual implementation
I don't believe this is a problem anymore in 1.7
Just reproduced this:
: stain@mira ~/Desktop;rm -rf blast.xml_output && /Applications/Taverna.app/Contents/MacOS/executeworkflow.sh blast.xml -input sequence sequence.txt
ERROR 2008-04-14 11:55:03,863 Error finding class uk.ac.soton.itinnovation.taverna.enactor.entities.TaskExecutionException ACL=loader{uk.org.mygrid.taverna.scufl:scufl-model:1.7.1.0} from 2145862
java.lang.LinkageError: duplicate class definition: uk/ac/soton/itinnovation/taverna/enactor/entities/TaskExecutionException
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:675)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at net.sf.taverna.raven.repository.impl.LocalArtifactClassLoader.findClass(LocalArtifactClassLoader.java:178)
at net.sf.taverna.raven.repository.impl.LocalArtifactClassLoader.loadClass(LocalArtifactClassLoader.java:231)
at net.sf.taverna.raven.repository.impl.LocalArtifactClassLoader.findClass(LocalArtifactClassLoader.java:184)
at net.sf.taverna.raven.repository.impl.LocalArtifactClassLoader.loadClass(LocalArtifactClassLoader.java:231)
at net.sf.taverna.raven.repository.impl.LocalArtifactClassLoader.findClass(LocalArtifactClassLoader.java:184)
at net.sf.taverna.raven.repository.impl.LocalArtifactClassLoader.findClass(LocalArtifactClassLoader.java:154)
at java.lang.ClassLoader.loadClass(ClassLoader.java:316)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:374)
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2357)
at java.lang.Class.getConstructor0(Class.java:2671)
at java.lang.Class.newInstance0(Class.java:321)
at java.lang.Class.newInstance(Class.java:303)
at org.embl.ebi.escience.scuflworkers.java.LocalServiceProcessor.<init>(LocalServiceProcessor.java:64)
at org.embl.ebi.escience.scuflworkers.java.LocalServiceXMLHandler.loadProcessorFromXML(LocalServiceXMLHandler.java:63)
at org.embl.ebi.escience.scuflworkers.ProcessorHelper.loadProcessorFromXML(ProcessorHelper.java:322)
at org.embl.ebi.escience.scufl.parser.ProcessorLoaderThread.run(XScuflParser.java:480)
ERROR 2008-04-14 11:55:07,326 Failure while executing task Fail_if_false
uk.ac.soton.itinnovation.taverna.enactor.entities.TaskExecutionException: Test matches, aborting downstream processors
at org.embl.ebi.escience.scuflworkers.java.FailIfTrue.execute(FailIfTrue.java:51)
at org.embl.ebi.escience.scuflworkers.java.LocalServiceTask.execute(LocalServiceTask.java:31)
at uk.ac.soton.itinnovation.taverna.enactor.entities.ProcessorTask.runAndGenerateTemplates(ProcessorTask.java:576)
at uk.ac.soton.itinnovation.taverna.enactor.entities.ProcessorTask.doInvocationWithRetryLogic(ProcessorTask.java:517)
at uk.ac.soton.itinnovation.taverna.enactor.entities.ProcessorTask.invokeOnce(ProcessorTask.java:436)
at uk.ac.soton.itinnovation.taverna.enactor.entities.ProcessorTask.invokeWithoutIteration(ProcessorTask.java:642)
at uk.ac.soton.itinnovation.taverna.enactor.entities.ProcessorTask.invoke(ProcessorTask.java:353)
at uk.ac.soton.itinnovation.taverna.enactor.entities.ProcessorTask.handleRun(ProcessorTask.java:280)
at uk.ac.soton.itinnovation.freefluo.core.task.NewState$1.run(NewState.java:67)
ERROR 2008-04-14 11:55:38,459 Failure while executing task Fail_if_false
uk.ac.soton.itinnovation.taverna.enactor.entities.TaskExecutionException: Test matches, aborting downstream processors
at org.embl.ebi.escience.scuflworkers.java.FailIfTrue.execute(FailIfTrue.java:51)
at org.embl.ebi.escience.scuflworkers.java.LocalServiceTask.execute(LocalServiceTask.java:31)
at uk.ac.soton.itinnovation.taverna.enactor.entities.ProcessorTask.runAndGenerateTemplates(ProcessorTask.java:576)
at uk.ac.soton.itinnovation.taverna.enactor.entities.ProcessorTask.doInvocationWithRetryLogic(ProcessorTask.java:517)
at uk.ac.soton.itinnovation.taverna.enactor.entities.ProcessorTask.invokeOnce(ProcessorTask.java:436)
at uk.ac.soton.itinnovation.taverna.enactor.entities.ProcessorTask.invokeWithoutIteration(ProcessorTask.java:642)
at uk.ac.soton.itinnovation.taverna.enactor.entities.ProcessorTask.invoke(ProcessorTask.java:353)
at uk.ac.soton.itinnovation.taverna.enactor.entities.ProcessorTask.handleRun(ProcessorTask.java:280)
at uk.ac.soton.itinnovation.freefluo.core.task.NewState$1.run(NewState.java:67)
Using sequence.txt: MKFLVLLFNILCLFPILGAD Probably fixed in latest 1.7-SNAPSHOT of Raven, it avoids multiple calls to findClass by using a lock from the map findClassLocks - also it will do this bit in the end:
synchronized (classMap) { if (!classMap.containsKey(name)) { classMap.put(name, loadedClass); } else { Class otherClass = classMap.get(name); if (otherClass != loadedClass) { logger.error("Duplicate class loading of " + otherClass); logger.error("Returning cached " + otherClass + " instead of loaded " + loadedClass); loadedClass = otherClass; } } } It happened again:
java.lang.LinkageError: duplicate class definition: net/sf/taverna/t2/partition/AbstractActivityItem at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:675) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) at java.net.URLClassLoader.defineClass(URLClassLoader.java:260) at java.net.URLClassLoader.access$100(URLClassLoader.java:56) at java.net.URLClassLoader$1.run(URLClassLoader.java:195) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at net.sf.taverna.raven.repository.impl.LocalArtifactClassLoader.findClass(LocalArtifactClassLoader.java:310) at net.sf.taverna.raven.repository.impl.LocalArtifactClassLoader.loadClass(LocalArtifactClassLoader.java:229) at net.sf.taverna.raven.repository.impl.LocalArtifactClassLoader.findClass(LocalArtifactClassLoader.java:317) at net.sf.taverna.raven.repository.impl.LocalArtifactClassLoader.findClass(LocalArtifactClassLoader.java:270) at java.lang.ClassLoader.loadClass(ClassLoader.java:316) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:374) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:675) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) at java.net.URLClassLoader.defineClass(URLClassLoader.java:260) at java.net.URLClassLoader.access$100(URLClassLoader.java:56) at java.net.URLClassLoader$1.run(URLClassLoader.java:195) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at net.sf.taverna.raven.repository.impl.LocalArtifactClassLoader.findClass(LocalArtifactClassLoader.java:310) at net.sf.taverna.raven.repository.impl.LocalArtifactClassLoader.findClass(LocalArtifactClassLoader.java:270) at java.lang.ClassLoader.loadClass(ClassLoader.java:316) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:374) at net.sf.taverna.t2.activities.beanshell.query.BeanshellQuery.doQuery(BeanshellQuery.java:33) at net.sf.taverna.t2.workbench.ui.activitypalette.ActivityTree$2.run(ActivityTree.java:135) I think I got a deadlock on this old bug today:
Notice the last line from Java: Found 1 deadlock. : stain@mira ~/Downloads/taverna-2.1-beta-1;sh run.sh ^\Full thread dump Java HotSpot(TM) Client VM (1.5.0_16-133 mixed mode, sharing): "ErrorBounce layer state cleanup" daemon prio=6 tid=0x010a5690 nid=0x49008c00 in Object.wait() [0xb3386000..0xb3386d90]
"Parallelize layer state cleanup" daemon prio=6 tid=0x010a53a0 nid=0x49007e00 in Object.wait() [0xb3305000..0xb3305d90]
"ErrorBounce layer state cleanup" daemon prio=6 tid=0x010a4ec0 nid=0x4900c800 in Object.wait() [0xb2df8000..0xb2df8d90]
"Parallelize layer state cleanup" daemon prio=6 tid=0x010a4b90 nid=0x4900ba00 in Object.wait() [0xb2d77000..0xb2d77d90]
"ErrorBounce layer state cleanup" daemon prio=6 tid=0x010a4570 nid=0x4900ac00 in Object.wait() [0xb2cf6000..0xb2cf6d90]
"Parallelize layer state cleanup" daemon prio=6 tid=0x010a3c20 nid=0x49009e00 in Object.wait() [0xb2c75000..0xb2c75d90]
"ErrorBounce layer state cleanup" daemon prio=6 tid=0x010a3170 nid=0xf94a00 in Object.wait() [0xb2bf4000..0xb2bf4d90]
"Parallelize layer state cleanup" daemon prio=6 tid=0x010a2b30 nid=0xf93c00 in Object.wait() [0xb2b73000..0xb2b73d90]
"ErrorBounce layer state cleanup" daemon prio=6 tid=0x010a2540 nid=0x49007000 in Object.wait() [0xb2af2000..0xb2af2d90]
"Parallelize layer state cleanup" daemon prio=6 tid=0x010a21b0 nid=0x49006200 in Object.wait() [0xb2a71000..0xb2a71d90]
"ErrorBounce layer state cleanup" daemon prio=6 tid=0x010a1d10 nid=0x49005400 in Object.wait() [0xb29f0000..0xb29f0d90]
"Parallelize layer state cleanup" daemon prio=6 tid=0x010a19d0 nid=0x49004600 in Object.wait() [0xb296f000..0xb296fd90]
"ErrorBounce layer state cleanup" daemon prio=6 tid=0x010a1360 nid=0x49003800 in Object.wait() [0xb28ee000..0xb28eed90]
"Parallelize layer state cleanup" daemon prio=6 tid=0x010a0f90 nid=0x49002a00 in Object.wait() [0xb286d000..0xb286dd90]
"ErrorBounce layer state cleanup" daemon prio=6 tid=0x010a0ae0 nid=0x49001c00 in Object.wait() [0xb27ec000..0xb27ecd90]
"Parallelize layer state cleanup" daemon prio=6 tid=0x010a0740 nid=0x49000e00 in Object.wait() [0xb276b000..0xb276bd90]
"ErrorBounce layer state cleanup" daemon prio=6 tid=0x010a00e0 nid=0x49000000 in Object.wait() [0xb26ea000..0xb26ead90]
"Parallelize layer state cleanup" daemon prio=6 tid=0x0109fd20 nid=0xf9c000 in Object.wait() [0xb2669000..0xb2669d90]
"ErrorBounce layer state cleanup" daemon prio=6 tid=0x0109f850 nid=0xf9b200 in Object.wait() [0xb25e8000..0xb25e8d90]
"Parallelize layer state cleanup" daemon prio=6 tid=0x0109f4c0 nid=0xf9a400 in Object.wait() [0xb2567000..0xb2567d90]
"ErrorBounce layer state cleanup" daemon prio=6 tid=0x0109eeb0 nid=0xf99600 in Object.wait() [0xb2465000..0xb2465d90]
"Parallelize layer state cleanup" daemon prio=6 tid=0x0109eaa0 nid=0xf98800 in Object.wait() [0xb23e4000..0xb23e4d90]
"ErrorBounce layer state cleanup" daemon prio=6 tid=0x0109e3f0 nid=0xf97a00 in Object.wait() [0xb2363000..0xb2363d90]
"Parallelize layer state cleanup" daemon prio=6 tid=0x0109dfb0 nid=0xf96c00 in Object.wait() [0xb22e2000..0xb22e2d90]
"ErrorBounce layer state cleanup" daemon prio=6 tid=0x0109d930 nid=0xf27a00 in Object.wait() [0xb2261000..0xb2261d90]
"Parallelize layer state cleanup" daemon prio=6 tid=0x0109d500 nid=0xf26c00 in Object.wait() [0xb21e0000..0xb21e0d90]
"ErrorBounce layer state cleanup" daemon prio=6 tid=0x0109cdc0 nid=0xf25e00 in Object.wait() [0xb215f000..0xb215fd90]
"Parallelize layer state cleanup" daemon prio=6 tid=0x0109cc40 nid=0xf25000 in Object.wait() [0xb20de000..0xb20ded90]
"ErrorBounce layer state cleanup" daemon prio=6 tid=0x0109c550 nid=0xf24200 in Object.wait() [0xb205d000..0xb205dd90]
"Parallelize layer state cleanup" daemon prio=6 tid=0x0109c2d0 nid=0xf23400 in Object.wait() [0xb1fdc000..0xb1fdcd90]
"ErrorBounce layer state cleanup" daemon prio=6 tid=0x0109ba60 nid=0xf22600 in Object.wait() [0xb1f5b000..0xb1f5bd90]
"Parallelize layer state cleanup" daemon prio=6 tid=0x0109b810 nid=0xf21800 in Object.wait() [0xb1eda000..0xb1edad90]
"ErrorBounce layer state cleanup" daemon prio=6 tid=0x0109b4c0 nid=0xf20a00 in Object.wait() [0xb1e59000..0xb1e59d90]
"Parallelize layer state cleanup" daemon prio=6 tid=0x0109b1e0 nid=0xf1fc00 in Object.wait() [0xb1dd8000..0xb1dd8d90]
"ErrorBounce layer state cleanup" daemon prio=6 tid=0x0109ad80 nid=0xf30a00 in Object.wait() [0xb1d57000..0xb1d57d90]
"Parallelize layer state cleanup" daemon prio=6 tid=0x0109aa50 nid=0xf2fc00 in Object.wait() [0xb1cd6000..0xb1cd6d90]
"ErrorBounce layer state cleanup" daemon prio=6 tid=0x0109a220 nid=0xf92e00 in Object.wait() [0xb1c55000..0xb1c55d90]
"Parallelize layer state cleanup" daemon prio=6 tid=0x01099f80 nid=0xf92000 in Object.wait() [0xb1bd4000..0xb1bd4d90]
"ErrorBounce layer state cleanup" daemon prio=6 tid=0x01099ae0 nid=0xf32a00 in Object.wait() [0xb1b53000..0xb1b53d90]
"Parallelize layer state cleanup" daemon prio=6 tid=0x010993e0 nid=0xf31c00 in Object.wait() [0xb18ce000..0xb18ced90]
"Timer-5" daemon prio=6 tid=0x01098ee0 nid=0xf2aa00 in Object.wait() [0xb184d000..0xb184dd90]
"ErrorBounce layer state cleanup" daemon prio=6 tid=0x01098bb0 nid=0xf29c00 in Object.wait() [0xb16ca000..0xb16cad90]
"Parallelize layer state cleanup" daemon prio=6 tid=0x01098650 nid=0xefa600 in Object.wait() [0xb13c4000..0xb13c4d90]
"Opening dataflow(s) [/Users/stain/Desktop/wei.t2flow]" prio=6 tid=0x01097fd0 nid=0xf28e00 waiting for monitor entry [0xb0db0000..0xb0db0d90] "Timer-4" daemon prio=6 tid=0x01089610 nid=0x8b3a00 in Object.wait() [0xb1ad2000..0xb1ad2d90]
"RunnableQueue-0" daemon prio=6 tid=0x01082750 nid=0xf17000 in Object.wait() [0xb1a51000..0xb1a51d90]
"Batik CleanerThread" daemon prio=1 tid=0x010821c0 nid=0xee3600 in Object.wait() [0xb12c2000..0xb12c2d90]
"pool-2-thread-1" prio=5 tid=0x01087d80 nid=0xf1ee00 waiting on condition [0xb19d0000..0xb19d0d90] "DestroyJavaVM" prio=5 tid=0x010015e0 nid=0xb0801000 waiting on condition [0x00000000..0xb0800060] "Timer-3" daemon prio=6 tid=0x01077710 nid=0x8b2c00 in Object.wait() [0xb1547000..0xb1547d90]
"Timer-2" daemon prio=6 tid=0x0106ff20 nid=0xfe2000 in Object.wait() [0xb1343000..0xb1343d90]
"GraphAutoScrollTimer" daemon prio=6 tid=0x0106e350 nid=0xff2e00 in Object.wait() [0xb0f33000..0xb0f33d90]
"Find service descriptions from WSDL service http://soap.bind.ca/wsdl/bind.wsdl "Find service descriptions from Biomoby service http://moby.ucalgary.ca/moby/MOBY-Central.pl
"Find service descriptions from WSDL service http://www.ebi.ac.uk/xembl/XEMBL.wsdl "Find service descriptions from WSDL service http://www.ebi.ac.uk/ws/services/urn:Dbfetch?wsdl "Find service descriptions from Soaplab service http://www.ebi.ac.uk/soaplab/services/
"Find service descriptions from WSDL service http://eutils.ncbi.nlm.nih.gov/entrez/eutils/soap/eutils.wsdl "Find service descriptions from WSDL service http://soap.genome.jp/KEGG.wsdl "Clear status line" prio=6 tid=0x01067b60 nid=0xfb7e00 in Object.wait() [0xb1241000..0xb1241d90]
"Timer-1" prio=6 tid=0x01067770 nid=0xfb7000 in Object.wait() [0xb11c0000..0xb11c0d90]
"Check for updates thread" daemon prio=6 tid=0x010645d0 nid=0xf38e00 waiting on condition [0xb113f000..0xb113fd90] "derby.rawStoreDaemon" daemon prio=6 tid=0x01054fd0 nid=0xf38000 in Object.wait() [0xb10be000..0xb10bed90]
"Timer-0" daemon prio=6 tid=0x01054680 nid=0xb99e00 in Object.wait() [0xb103d000..0xb103dd90]
"derby.antiGC" daemon prio=1 tid=0x01053c80 nid=0xb99000 in Object.wait() [0xb0fbc000..0xb0fbcd90]
"TimerQueue" daemon prio=5 tid=0x01015800 nid=0x831000 in Object.wait() [0xb0eb2000..0xb0eb2d90]
"AWT-EventQueue-0" prio=6 tid=0x01012270 nid=0x823000 in Object.wait() [0xb0e31000..0xb0e31d90]
"Java2D Disposer" daemon prio=10 tid=0x01010030 nid=0x92ac00 in Object.wait() [0xb0d14000..0xb0d14d90]
"AWT-Shutdown" prio=5 tid=0x0100f260 nid=0x8f9000 in Object.wait() [0xb0c8a000..0xb0c8ad90]
"AWT-AppKit" daemon prio=5 tid=0x0100edf0 nid=0xa06a9720 runnable [0x00000000..0xbfffe928] "Low Memory Detector" daemon prio=5 tid=0x010095a0 nid=0x84e800 runnable [0x00000000..0x00000000] "CompilerThread0" daemon prio=9 tid=0x01008b90 nid=0x84a200 waiting on condition [0x00000000..0xb0b077d8] "Signal Dispatcher" daemon prio=9 tid=0x01008640 nid=0x849400 waiting on condition [0x00000000..0x00000000] "Finalizer" daemon prio=8 tid=0x01007ae0 nid=0x815800 in Object.wait() [0xb0a05000..0xb0a05d90]
"Reference Handler" daemon prio=10 tid=0x01007720 nid=0x814000 in Object.wait() [0xb0984000..0xb0984d90]
"VM Thread" prio=9 tid=0x01006e70 nid=0x80b800 runnable "VM Periodic Task Thread" prio=9 tid=0x0100a180 nid=0x84f600 waiting on condition "Exception Catcher Thread" prio=10 tid=0x01001830 nid=0x809800 runnable Found one Java-level deadlock: Java stack information for the threads listed above:
Found 1 deadlock. Fixed for 2.1 snapshot (should go in for beta 1)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||