Skip to content

IDE hangs opening server.xml "Source" tab #494

@scottkurz

Description

@scottkurz

Recreate Sequence

  1. import a Liberty Maven project (1b. say "Yes" to generating the Liberty runtime via Liberty Maven integration).
  2. open the project's server.xml
  3. click the "Source" editor tab.

Symptom

The source view opens but hangs, it is greyed/whited-out (not sure the terminology exactly), so you can't interact with it

Java dump analysis

I took three javacores. (IBM-only internal link at https://ibm.enterprise.slack.com/files/W4W23E3AM/F06E237P96D/olt494-java-dumps.zip).

Each shows the main thread in condition

3XMTHREADINFO      "main" J9VMThread:0x000000000001E400, omrthread_t:0x00000279F960B090, java/lang/Thread:0x00000000800CA968, state:B, prio=6
3XMJAVALTHREAD            (java/lang/Thread getId:0x1, isDaemon:false)
3XMJAVALTHRCCL            org/eclipse/osgi/internal/framework/ContextFinder(0x0000000080C91560)
3XMTHREADINFO1            (native thread ID:0x51AC, native priority:0x6, native policy:UNKNOWN, vmstate:B, vm thread flags:0x00000281)
3XMCPUTIME               CPU usage total: 7.265625000 secs, user: 5.421875000 secs, system: 1.843750000 secs, current category="Application"
3XMTHREADBLOCK     Blocked on: org/eclipse/core/internal/jobs/DeadlockDetector@0x0000000082680110 Owned by: "Worker-27880" (J9VMThread:0x0000000002FFA000, java/lang/Thread:0x000000008AE333D0)
3XMHEAPALLOC             Heap bytes allocated since last GC cycle=0 (0x0)
3XMTHREADINFO3           Java callstack:
4XESTACKTRACE                at org/eclipse/core/internal/jobs/LockManager.addLockWaitThread(LockManager.java:141)
4XESTACKTRACE                at org/eclipse/core/internal/jobs/OrderedLock.doAcquire(OrderedLock.java:189)
4XESTACKTRACE                at org/eclipse/core/internal/jobs/OrderedLock.acquire(OrderedLock.java:125)
4XESTACKTRACE                at org/eclipse/core/internal/jobs/OrderedLock.acquire(OrderedLock.java:100(Compiled Code))
4XESTACKTRACE                at org/eclipse/core/internal/jobs/OrderedLock.acquire(OrderedLock.java:87(Compiled Code))
4XESTACKTRACE                at org/eclipse/wst/sse/core/internal/model/ModelManagerImpl.getExistingModelForRead(ModelManagerImpl.java:1264)
4XESTACKTRACE                at org/eclipse/wst/xml/ui/internal/autoedit/StructuredAutoEditStrategyXML.customizeDocumentCommand(StructuredAutoEditStrategyXML.java:49)
4XESTACKTRACE                at org/eclipse/jface/text/TextViewer.customizeDocumentCommand(TextViewer.java:3709)

waiting for this lock:

org/eclipse/core/internal/jobs/DeadlockDetector@0x0000000082680110

along with a bunch of other threads waiting for the same lock.

In each of the Java dumps a different thread had gotten the lock and each time the thread owning the lock was doing a Resource/Path comparison like this:


3XMTHREADINFO      "Worker-27880" J9VMThread:0x0000000002FFA000, omrthread_t:0x00000279AAA5A3A0, java/lang/Thread:0x000000008AE333D0, state:R, prio=5
3XMJAVALTHREAD            (java/lang/Thread getId:0x6D5F, isDaemon:false)
3XMJAVALTHRCCL            org/eclipse/osgi/internal/framework/ContextFinder(0x0000000080C91560)
3XMTHREADINFO1            (native thread ID:0x5FA0, native priority:0x5, native policy:UNKNOWN, vmstate:CW, vm thread flags:0x00000081)
3XMCPUTIME               CPU usage total: 0.921875000 secs, user: 0.828125000 secs, system: 0.093750000 secs, current category="Application"
3XMHEAPALLOC             Heap bytes allocated since last GC cycle=1013440 (0xF76C0)
3XMTHREADINFO3           Java callstack:
4XESTACKTRACE                at org/eclipse/core/runtime/Path.equals(Path.java:673(Compiled Code))
4XESTACKTRACE                at org/eclipse/core/internal/resources/Resource.equals(Resource.java:985(Compiled Code))
4XESTACKTRACE                at java/util/ArrayList.indexOfRange(ArrayList.java:299(Compiled Code))
4XESTACKTRACE                at java/util/ArrayList.indexOf(ArrayList.java:286(Compiled Code))
4XESTACKTRACE                at java/util/ArrayList.contains(ArrayList.java:275(Compiled Code))
4XESTACKTRACE                at org/eclipse/core/internal/jobs/DeadlockDetector.lockAcquired(DeadlockDetector.java:317(Compiled Code))
4XESTACKTRACE                at org/eclipse/core/internal/jobs/LockManager.addLockThread(LockManager.java:122(Compiled Code))
5XESTACKTRACE                   (entered lock: org/eclipse/core/internal/jobs/DeadlockDetector@0x0000000082680110, entry count: 1)
4XESTACKTRACE                at org/eclipse/core/internal/jobs/WorkerPool.startJob(WorkerPool.java:265(Compiled Code))
4XESTACKTRACE                at org/eclipse/core/internal/jobs/Worker.run(Worker.java:58(Compiled Code))

Environment

  • Windows 11
  • Eclipse OpenJ9 VM 17.0.3.0 (build openj9-0.32.0, JRE 17 Windows 11 amd64-64-Bit Compressed References 20220422_155 (JIT enabled, AOT enabled)
  • Eclipse Platform 4.29.0.v20230903-1000 org.eclipse.platform.feature.group Eclipse.org
  • WebSphere® Application Server Liberty Tools 2023.0.200.v20231128_1051 com.ibm.websphere.wdt.server.tools.main.feature.group IBM

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions