Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4027231

deadlock involving Graphics.finalizer on X11

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P2 P2
    • 1.1
    • 1.1
    • client-libs
    • None
    • 1.1fcs
    • generic, sparc
    • generic, solaris_2.5
    • Not verified


      I'm getting thread deadlocks fairly often with this week's promoted build on
      Solaris while running a newly revised version of the BeanBox.

      The backtrace always seems to show that the finalizer thread is in
      Graphics.finalize and some other thread is in sun.awt.motif.X11Graphics.<init>,
      but I don't know if this is a smoking gun, or a coincidence....


      Full thread dump:
          "Thread-13" (TID:0xee32ad28, sys_thread_t:0xedff1de0, state:MW) prio=5
              sun.beanbox.PropertySheet.setCustomizer(PropertySheet.java:184)
              sun.beanbox.BeanBoxFrame.setCustomizer(BeanBoxFrame.java:190)
              sun.beanbox.BeanBox.getMenuBar(BeanBox.java:81)
              sun.beanbox.BeanBoxFrame.doSetCurrentFocus(BeanBoxFrame.java:177)
              sun.beanbox.SetFocusThread.run(BeanBoxFrame.java:279)
          "Thread-12" (TID:0xee32b7a8, sys_thread_t:0xeddc1de0, state:CW) prio=6
              sun.awt.motif.MLabelPeer.getMinimumSize(MLabelPeer.java:52)
              sun.awt.motif.MComponentPeer.getPreferredSize(MComponentPeer.java:169)
              sun.awt.motif.MComponentPeer.preferredSize(MComponentPeer.java:478)
              java.awt.Component.preferredSize(Component.java)
              sun.beanbox.PropertySheet.setTarget(PropertySheet.java:120)
              sun.beanbox.BeanBoxFrame.doSetCurrentFocus(BeanBoxFrame.java:184)
              sun.beanbox.SetFocusThread.run(BeanBoxFrame.java:279)
          "Thread-6" (TID:0xee32d428, sys_thread_t:0xef031de0, state:MW) prio=5
              sun.awt.motif.X11Graphics.<init>(X11Graphics.java:58)
              sun.awt.motif.MComponentPeer.getGraphics(MComponentPeer.java:177)
              java.awt.Component.getGraphics(Component.java)
              sunw.demo.juggler.Juggler.run(Juggler.java:169)
              java.lang.Thread.run(Thread.java)
          "Screen Updater" (TID:0xee3235c0, sys_thread_t:0xef0c1de0, state:MW) prio=6
              sun.awt.motif.MComponentPeer.updateClient(MComponentPeer.java:131)
              sun.awt.ScreenUpdater.run(ScreenUpdater.java:102)
          "AWT-Motif" (TID:0xee304248, sys_thread_t:0xef131de0, state:MW) prio=5
              java.lang.Thread.run(Thread.java)
          "AWT-Input" (TID:0xee304228, sys_thread_t:0xef161de0, state:MW) prio=5
          "AWT-EventQueue" (TID:0xee304200, sys_thread_t:0xef191de0, state:MW) prio=5
              java.awt.Component.dispatchEvent(Component.java)
              java.awt.Container.dispatchEvent(Container.java)
              java.awt.EventDispatchThread.run(EventDispatchThread.java)
          "Finalizer thread" (TID:0xee300220, sys_thread_t:0xef2c1de0, state:MW) prio=1
              java.awt.Graphics.finalize(Graphics.java)
          "Async Garbage Collector" (TID:0xee3001d8, sys_thread_t:0xef2f1de0, state:CW) prio=1
          "Idle thread" (TID:0xee300190, sys_thread_t:0xef3c1de0, state:R) prio=0 *current thread*
          "Clock" (TID:0xee3000d0, sys_thread_t:0xef3f1de0, state:CW) prio=12
          "main" (TID:0xee3000a8, sys_thread_t:0x33888, state:CW) prio=5
      Monitor Cache Dump:
       sun.beanbox.PropertySheet@EE322E50/EE3AE608 (key=0xee322e50): monitor owner eddc1de0: "Thread-12"
      Waiting to enter:
          "Thread-13"
       unknown key (key=0xef2f1de0): unowned
      Waiting to be notified:
          "Async Garbage Collector"
       sun.beanbox.BeanBox@EE3264D8/EE3A43B0 (key=0xee3264d8): monitor owner edff1de0: "Thread-13"
       sun.awt.motif.MToolkit@EE3041E0/EE34E400 (key=0xee3041e0): monitor owner eddc1de0: "Thread-12"
      Waiting to enter:
          "Screen Updater"
          "AWT-EventQueue"
          "Thread-6"
          "AWT-Input"
          "AWT-Motif"
          "Finalizer thread"
       java.lang.Object@EE302FB0/EE34B3D0 (key=0xee302fb0): monitor owner eddc1de0: "Thread-12"
      Registered Monitor Dump:
          Verifier lock: unowned
          Thread queue lock: unowned
      Waiting to be notified:
          "main"
          Name and type hash table lock: unowned
          String intern lock: unowned
          JNI global reference lock: unowned
          BinClass lock: unowned
          Class loading lock: unowned
          Java stack lock: unowned
          Code rewrite lock: unowned
          Heap lock: unowned
          Has finalization queue lock: unowned
          Finalize me queue lock: unowned
      Waiting to be notified:
          "Thread-12"
          Monitor IO lock: unowned
          Child death monitor: unowned
          Event monitor: unowned
          I/O monitor: unowned
          Alarm monitor: unowned
      Waiting to be notified:
          "Clock"
          Sbrk lock: unowned
          Monitor cache expansion lock: unowned
          Monitor registry: monitor owner ef3c1de0: "Idle thread"
      Thread Alarm Q:
          sys_thread_t 0xef2f1de0 [Timeout in 941 ms]

            amfowler Anne Fowler (Inactive)
            ghamiltosunw Graham Hamilton (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: