IBM Support

IV53361: HIGH CPU WITH THREADPOOLEXECUTOR.GETTASK() IN SHUTDOWN MODE

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Error Message: 100% CPU is observed when trying to execute tasks
    scheduled for future from
    java.uti.concurrent.ScheduledThreadPoolExecutor in SHUTDOWN
    mode.
    .
    Stack Trace: A stack trace generated during high CPU shows the
    following
    at
    java/util/concurrent/ThreadPoolExecutor.getTask(ThreadPoolExecut
    or.java:969(Compiled Code))
    at
    java/util/concurrent/ThreadPoolExecutor$Worker.run(ThreadPoolExe
    cutor.java:918)
    at java/lang/Thread.run(Thread.java:736)
    .
    

Local fix

  • Ensure no task exists which is scheduled  for future while
    calling shutdown() method on a
    java.util.concurrent.ScheduledThreadPoolExecutor.
    

Problem summary

  • java.util.concurrent.ThreadPoolExecutor.getTask()used a poll()
    method of DelayQueue to get the task during Shutdown. The poll()
     return null when a future scheduled task is not expired. Hence,
    it can result in a tight loop as the getTask()will return only
    when the task is empty or a task is ready.
    

Problem conclusion

  • This defect will be fixed in:
    6.0.0 SR16
    6.0.1 SR8
    .
    The JDK has been updated to make the
    java.util.concurrent.ThreadPoolExecutor.getTask() to wait for
    the future scheduled task to get expired during Shutdown instead
    of spinning till the future scheduled task is expired.
    

Temporary fix

Comments

APAR Information

  • APAR number

    IV53361

  • Reported component name

    JAVA CLASS LIBS

  • Reported component ID

    620700130

  • Reported release

    600

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2013-12-16

  • Closed date

    2014-02-25

  • Last modified date

    2014-04-30

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Fix information

  • Fixed component name

    JAVA CLASS LIBS

  • Fixed component ID

    620700130

Applicable component levels

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSNVBF","label":"Runtimes for Java Technology"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Line of Business":{"code":"LOB36","label":"IBM Automation"}}]

Document Information

Modified date:
14 December 2020