Article - CS107741

Method server unresponsive due to log4j deadlock in Windchill

Modified: 20-Mar-2024   


Applies To

  • Windchill PDMLink 10.0 to 10.1 M030

Description

  • Method server unresponsive due to deadlock between log4j and System.out.println() or java.io.PrintStream.println()
  • For example:
    • The following method context is utilizing a customization to use java.io.PrintStream.println() to output exception information to the logs:
    • "WfPropagationQueue_20746290394.PoolQueueThread-750" Id=2120918 daemon prio=5 BLOCKED on lock=wt.log4j.jmx.LogPrintStream@25afedfc,
            lock owned by "WfUserWorkQueue_20746290394.PoolQueueThread-245" Id=2120986,
            Blocked (cnt): 4; Waited (cnt): 2,
            CPU nanos: 25447542; User nanos: 20000000; Bytes allocated: 4887136,
            Method context: 4eijee22;lt0u7pe5;2239;uyck1s;31552511; DB session: 503,
            % of 1 CPU used by context: 3.446393658632892E-5 (9653302/28009864676426); Bytes allocated by context: 1380288,
        at [email protected]/java.io.PrintStream.println(PrintStream.java:881),
    • The java.io.PrintStream.println() cannot write to the logs due to the Windchill code wt.util.WTException.printStackTrace() which has locked the wt.log4j.jmx.LogPrintStream, but which is blocked on the customization exception
    • "WfUserWorkQueue_20746290394.PoolQueueThread-245" Id=2120986 daemon prio=5 BLOCKED on lock=wt.vc.VersionControlException@568ecce2,
            lock owned by "WfPropagationQueue_20746290394.PoolQueueThread-750" Id=2120918,
            Blocked (cnt): 6; Waited (cnt): 0,
            CPU nanos: 715498625; User nanos: 370000000; Bytes allocated: 2928576,
            Method context: 4eijee22;lt0u7pe5;2239;uyck1s;31552508; DB session: 779,
            % of 1 CPU used by context: 0.002553862567626531 (715333585/28009869993310); Bytes allocated by context: 2923936,
        at [email protected]/java.lang.Throwable.getCause(Throwable.java:420),
        at app//wt.util.WTException.getNestedThrowable(WTException.java:96),
        at app//wt.util.WTException.printStackTrace(WTException.java:490),
        at app//wt.util.WTException.printStackTrace(WTException.java:499),
          - locked wt.log4j.jmx.LogPrintStream@25afedfc,

       
This is a printer-friendly version of Article 107741 and may be out of date. For the latest version click CS107741