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

64 bit hotspot java vm compiler crash (B47) running Font2DTest

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P2 P2
    • 1.4.0
    • 1.4.0
    • hotspot
    • None
    • beta
    • sparc
    • solaris_8

      Whilst testing Java 2D on the 64 bit WS I have found what appears to be a
      a Hotspot compiler bug in B47 on Solaris 2.7 (system rincewind.eng)
      It doesn't happen with B47 if I run in interpreted mode (-Xint).
      Also it doesn't happen at all if I plug-in an earlier version of Hotspot (B44)
      into the build, so I think its more likely a hotspot bug than a 2D bug.
      Also the stack trace below seems to point in that direction too.
      Happens with optimized and debug builds.

      To reproduce you need to run the Font2DTest that's part of the JDK demos.
      in demo/jfc/Font2DTest. (You may need to bring over the latest version of the
      64 bit merlin ws).

      % java -jar Font2DTest.jar

      Redrawing using outlines seems to be the key to the crash.

      The simplest way to reproduce is to select the option
      "Method : textlayout.getoutline + draw" and then force the tool to redraw
      by some means such as repeatedly selecting the "Transform : NONE" option.

      About 10 redraws is usually all that's needed to provoke a crash.

      Here's a stack trace obtained from one of these when running under dbx.
      Usually the back trace was less informative than this, I may have just
      got lucky.

      ERROR: spill copies type float but must produce result in register [R_D32L]
      #
      # HotSpot Virtual Machine Error, assertion failure
      # Please report this error at
      # http://java.sun.com/cgi-bin/bugreport.cgi
      #
      # assert(verify_output_regclass(*_out, _type), "bad regclass in copy")
      #
      # Error ID:
      /net/mersparc.eng/usr/re/hotspot/hotspot1.4/ws/src/share/vm/opto/connode.cpp,
      723 [ Patched ]
      #
      # Problematic Thread: prio=5 tid=0x100204408 nid=0xc runnable
      #
      Dumping core....
      t@12 (l@9) signal ABRT (Abort) in __sigprocmask at 0xffffffff7f51d468
      0xffffffff7f51d468: __sigprocmask+0x0008: retl
      (/opt/SUNWspro/bin/../WS5.0/bin/sparcv9/dbx) where
      current thread: t@12
      =>[1] __sigprocmask(0x0, 0xffffffff7e602690, 0x0, 0xffffffff7e605d30,
      0xffffffff7f79c118, 0xffffffff7e6026ac), at 0xffffffff7f51d468
        [2] _resetsig(0xffffffff7f5202f8, 0x1, 0x0, 0xffffffff7e602680,
      0xffffffff7e605ca0, 0xffffffff7e605d44), at 0xffffffff7f512360
        [3] _sigon(0xffffffff7f629040, 0xffffffff7e605ca0, 0xffffffff7e605d30,
      0xffffffff7e60280c, 0xffffffff7e605ca0, 0xffffffff7f6207e8), at
      0xffffffff7f511a5c
        [4] _thrp_kill(0x0, 0xc, 0xffffffff7f6207e8, 0xffffffff7e605ca0, 0x0, 0xc), at
      0xffffffff7f514c30
        [5] abort(0xffffffff7f4affb8, 0xffffffff7e6029b0, 0x0, 0xfffffffffffffff8,
      0x4, 0xffffffff7e6029d1), at 0xffffffff7f34115c
        [6] os::abort(0x1, 0xffffffff7daaf540, 0xffffffff7e6032d4, 0x100,
      0xfffffffffffffff8, 0x1001deb68), at 0xffffffff7d333c80
        [7] report_error(0x1, 0xffffffff7dc17b60, 0x2d3, 0xffffffff7daaf390,
      0xffffffff7daaf3a4, 0xffffffff7dc17b38), at 0xffffffff7cffca68
        [8] report_assertion_failure(0xffffffff7dc17b38, 0xffffffff7dc17b60, 0x2d3,
      0xffffffff7dc17bb0, 0x1, 0x100643fb8), at 0xffffffff7cffbe40
        [9] SpillCopyNode::make_copy(0x100647690, 0x1006449f0, 0x1, 0x100643fb8, 0x0,
      0x1007e6c01), at 0xffffffff7d7db204
        [10] PhaseChaitin::fixup_spills(0xffffffff7e603ed0, 0x0, 0xffffffff7def17d0,
      0x0, 0x0, 0x1007e6130), at 0xffffffff7d784c28
        [11] PhaseChaitin::Register_Allocate(0xffffffff7e603ed0, 0x0,
      0xffffffff7def17a0, 0x0, 0x0, 0x1002a24d0), at 0xffffffff7d78012c
        [12] Compile::Code_Gen(0xffffffff7e604d80, 0x0, 0xffffffff2ce12868,
      0x1002a2c30, 0x100806170, 0x0), at 0xffffffff7d7b924c
        [13] Compile::Compile(0x0, 0x1, 0x1, 0x1, 0x0, 0xffffffff7defe328), at
      0xffffffff7d7b5540
        [14] C2Compiler::compile_method(0x10010f058, 0xffffffff7e6055b8, 0x0,
      0x100806170, 0xffffffffffffffff, 0x0), at 0xffffffff7d753994
        [15] CompileBroker::invoke_compiler_on_method(0x1003022f8, 0xffffffff384a20f0,
      0x0, 0x0, 0x0, 0x0), at 0xffffffff7d5a89c4
        [16] CompileBroker::compiler_thread_loop(0x0, 0x5, 0x0, 0x1, 0x0,
      0xffffffff7e605d60), at 0xffffffff7d5a83f0
        [17] compiler_thread_entry(0x100204408, 0x100204408, 0x1, 0x0, 0x0, 0x0), at
      0xffffffff7d466a50
        [18] JavaThread::thread_main_inner(0x100204408, 0x1001f60c8, 0x6, 0x0, 0x0,
      0x0), at 0xffffffff7d46187c
        [19] JavaThread::run(0x100204408, 0x0, 0x0, 0x0, 0x0, 0x0), at
      0xffffffff7d461698
        [20] _start(0x100204408, 0xffffffff7e605ca0, 0x0, 0xffffffff7f626db1, 0x0,
      0xffffffff3a181ca0), at 0xffffffff7d331008
      (/opt/SUNWspro/bin/../WS5.0/bin/sparcv9/dbx)

            jrose John Rose
            prr Philip Race
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: