Open briandealwis opened 7 years ago
I didn't include what the JDT Indexer
was doing, but I suspect it was the same as this situation where the Java indexer is sleeping because it thinks it's writing to disk too fast. Eventually the indexer catches up, and the consultations search continues, and the main thread unblocks.
"main" #1 prio=6 os_prio=31 tid=0x00007f9e41012800 nid=0x307 waiting for monitor entry [0x00007ffee5875000]
java.lang.Thread.State: BLOCKED (on object monitor)
at ca.ubc.cs.ferret.Consultancy.fetchWork(Consultancy.java:513)
- waiting to lock <0x0000000746b683a8> (a ca.ubc.cs.ferret.Consultancy)
at ca.ubc.cs.ferret.Consultancy.abandon(Consultancy.java:476)
at ca.ubc.cs.ferret.model.Consultation.cancel(Consultation.java:400)
at ca.ubc.cs.ferret.views.DossierContentProvider.inputChanged(DossierContentProvider.java:49)
…
"Worker-98: Running Consultation: CloudSdkManager [0]" #3025 prio=5 os_prio=31 tid=0x00007f9e42a0c800 nid=0x1c24b in Object.wait() [0x000070000db
df000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.core.internal.jobs.Semaphore.acquire(Semaphore.java:39)
- locked <0x0000000766127cc0> (a org.eclipse.core.internal.jobs.Semaphore)
at org.eclipse.core.internal.jobs.JobManager.join(JobManager.java:908)
at org.eclipse.core.internal.jobs.InternalJob.join(InternalJob.java:345)
at org.eclipse.core.runtime.jobs.Job.join(Job.java:601)
at org.eclipse.jdt.internal.core.nd.indexer.Indexer.waitForIndex(Indexer.java:1022)
at org.eclipse.jdt.internal.core.nd.indexer.Indexer.waitForIndex(Indexer.java:1043)
at org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.newSearchAllPossibleSubTypes(IndexBasedHierarchyBuilder.java:506)
at org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.searchAllPossibleSubTypes(IndexBasedHierarchyBuilder.java:491)
at org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.determinePossibleSubTypes(IndexBasedHierarchyBuilder.java:448)
at org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.build(IndexBasedHierarchyBuilder.java:154)
at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.compute(TypeHierarchy.java:320)
at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.refresh(TypeHierarchy.java:1316)
- locked <0x0000000766130a88> (a org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy)
at org.eclipse.jdt.internal.core.CreateTypeHierarchyOperation.executeOperation(CreateTypeHierarchyOperation.java:91)
at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:732)
at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:798)
at org.eclipse.jdt.internal.core.SourceType.newTypeHierarchy(SourceType.java:884)
at org.eclipse.jdt.internal.core.SourceType.newTypeHierarchy(SourceType.java:841)
at ca.ubc.cs.ferret.jdt.JavaModelHelper$5.call(JavaModelHelper.java:854)
at ca.ubc.cs.ferret.jdt.JavaModelHelper$5.call(JavaModelHelper.java:1)
at ca.ubc.cs.ferret.jdt.JavaModelHelper.performCreation(JavaModelHelper.java:311)
at ca.ubc.cs.ferret.jdt.JavaModelHelper.resolveOperation(JavaModelHelper.java:257)
at ca.ubc.cs.ferret.jdt.JavaModelHelper.resolveCache(JavaModelHelper.java:294)
at ca.ubc.cs.ferret.jdt.JavaModelHelper.getSubTypeHierarchyFor(JavaModelHelper.java:851)
at ca.ubc.cs.ferret.jdt.JavaModelHelper$4.call(JavaModelHelper.java:845)
at ca.ubc.cs.ferret.jdt.JavaModelHelper$4.call(JavaModelHelper.java:1)
at ca.ubc.cs.ferret.jdt.JavaModelHelper.performCreation(JavaModelHelper.java:311)
at ca.ubc.cs.ferret.jdt.JavaModelHelper.resolveOperation(JavaModelHelper.java:257)
at ca.ubc.cs.ferret.jdt.JavaModelHelper.resolveCache(JavaModelHelper.java:294)
at ca.ubc.cs.ferret.jdt.JavaModelHelper.getSuperTypeHierarchyFor(JavaModelHelper.java:843)
at ca.ubc.cs.ferret.jdt.JavaModelHelper.getAllSuperclasses(JavaModelHelper.java:501)
at ca.ubc.cs.ferret.jdt.JavaModelHelper.isThrowable(JavaModelHelper.java:1323)
at ca.ubc.cs.ferret.jdt.ThrowsException.validateParameter(ThrowsException.java:28)
at ca.ubc.cs.ferret.jdt.ThrowsException.validateParameter(ThrowsException.java:1)
at ca.ubc.cs.ferret.model.AbstractIntersectionConceptualQuery.setParameters(AbstractIntersectionConceptualQuery.java:37)
at ca.ubc.cs.ferret.model.Consultation.createConceptualQuery(Consultation.java:256)
at ca.ubc.cs.ferret.model.Consultation.buildConceptualQueries(Consultation.java:197)
- locked <0x000000076026d668> (a ca.ubc.cs.ferret.model.Consultation)
at ca.ubc.cs.ferret.model.Consultation.run(Consultation.java:108)
at ca.ubc.cs.ferret.Consultancy$4.run(Consultancy.java:437)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:60)
"Worker-94: Updating Java index" #3021 prio=5 os_prio=31 tid=0x00007f9e4f0a7000 nid=0x1077f waiting on condition [0x000070000c189000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at org.eclipse.jdt.internal.core.nd.db.ChunkWriter$$Lambda$445/1691476264.sleep(Unknown Source)
at org.eclipse.jdt.internal.core.nd.db.ChunkWriter.flush(ChunkWriter.java:129)
at org.eclipse.jdt.internal.core.nd.db.ChunkWriter.write(ChunkWriter.java:95)
at org.eclipse.jdt.internal.core.nd.db.Database.flushAndUnlockChunks(Database.java:1703)
at org.eclipse.jdt.internal.core.nd.db.Database.flush(Database.java:1653)
at org.eclipse.jdt.internal.core.nd.Nd.releaseWriteLockAndFlush(Nd.java:431)
at org.eclipse.jdt.internal.core.nd.Nd.releaseWriteLock(Nd.java:387)
at org.eclipse.jdt.internal.core.nd.Nd.releaseWriteLock(Nd.java:358)
at org.eclipse.jdt.internal.core.nd.indexer.Indexer.deleteResource(Indexer.java:571)
at org.eclipse.jdt.internal.core.nd.indexer.Indexer.cleanGarbage(Indexer.java:514)
at org.eclipse.jdt.internal.core.nd.indexer.Indexer.rescan(Indexer.java:260)
at org.eclipse.jdt.internal.core.nd.indexer.Indexer.lambda$0(Indexer.java:146)
at org.eclipse.jdt.internal.core.nd.indexer.Indexer$$Lambda$70/1174829684.run(Unknown Source)
at org.eclipse.core.runtime.jobs.Job$2.run(Job.java:182)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:60)
In Oxygen/4.7. Looks like
ca.ubc.cs.ferret.Consultancy.isInProgress()
shouldn't be synchronized.