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

JVM crashes trying to draw very small Arc2D pie fraction when antialiasing is on

    Details

    • Subcomponent:
      2d
    • Resolved In Build:
      09
    • CPU:
      generic, sparc
    • OS:
      generic, solaris_7, solaris_8, solaris_9, windows_2000

      Backports

        Description


        JVM crashes trying to draw very small Arc2D pie fraction when antialiasing
        is on. The problem is easily reproducible.

        1. Testcase
        -----------
        % more CrashVM.java
        import java.awt.Graphics2D;
        import java.awt.RenderingHints;
        import java.awt.geom.Arc2D;
        import java.awt.geom.Rectangle2D;
        import java.awt.image.BufferedImage;
        import java.util.Date;

        public class CrashVM {

            public static void main(String[] args) {
               
                BufferedImage image = new BufferedImage(400, 300, BufferedImage.TYPE_INT_RGB);
                Graphics2D g2 = (Graphics2D) image.getGraphics();
                g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                                    RenderingHints.VALUE_ANTIALIAS_ON);
                Rectangle2D bounds = new Rectangle2D.Double(168.83125, 54.60624999999999, 162.33749999999998, 162.33749999999998
        );
                Arc2D arc = new Arc2D.Double(bounds, 90.0, -4.2154566415320005E-7, Arc2D.PIE);
                System.out.println("About to draw...");
                g2.draw(arc);
                System.out.println("Done --> " + new Date().toString());
            }
        }
        %


        2. Compile
        ----------

        % /j2sdk1_3_1_07/bin/java -version
        java version "1.3.1_07"
        Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1_07-b02)
        Java HotSpot(TM) Client VM (build 1.3.1_07-b02, mixed mode)
        % /j2sdk1_3_1_07/bin/javac CrashVM.java
        %


        3. Run
        ------

        % /j2sdk1_3_1_07/bin/java CrashVM
        About to draw...
        Segmentation Fault (core dumped)
        %


        4. Core file
        ------------

        % dbx -V /net/cores/tsc/Applix/java/JDK/j2sdk1_3_1_07/bin/sparc/native_threads/java ./core
        Sun WorkShop 6 update 2 Dbx Debugger 6.2 2001/05/16
        Reading java
        core file header read successfully
        Reading ld.so.1
        Reading libthread.so.1
        Reading libdl.so.1
        Reading libc.so.1
        Reading libc_psr.so.1
        Reading libjvm.so
        Reading libCrun.so.1
        Reading libsocket.so.1
        Reading libnsl.so.1
        Reading libm.so.1
        Reading libw.so.1
        Reading libmp.so.2
        Reading libhpi.so
        Reading libverify.so
        Reading libjava.so
        Reading libzip.so
        Reading libawt.so
        Reading libmawt.so
        Reading libmlib_image.so
        Reading libXm.so.4
        Reading libXt.so.4
        Reading libXext.so.0
        Reading libXtst.so.1
        Reading libX11.so.4
        Reading libSM.so.6
        Reading libICE.so.6
        Reading libfontmanager.so
        Reading libdps.so.5
        Reading libdcpr.so
        detected a multithreaded program
        t@1 (l@4) terminated by signal SEGV (Segmentation Fault)
        0xfaecb888: processToRunsArc3+0x0070: st %f0, [%sp + 0x80]
        dbx: core file read error: address 0xffb75f40 not in data space
        (/opt/SUNWspro/bin/../WS6U2/bin/sparcv9/dbx) where
        current thread: t@1
        =>[1] processToRunsArc3(0xfaef93a0, 0x10de84, 0xfaee66f8, 0x3d800000, 0x7fffffff, 0x7fffffff), at 0xfaecb888
          [2] processToRunsArc3(0xfaef93a0, 0x10de84, 0xfaee66f8, 0x3d800000, 0x7fffffff, 0x7fffffff), at 0xfaecbcc4
          [3] processToRunsArc3(0xfaef93a0, 0x10de84, 0xfaee66f8, 0x3d800000, 0x7fffffff, 0x7fffffff), at 0xfaecbcc4
          [4] processToRunsArc3(0xfaef93a0, 0x10de84, 0xfaee66f8, 0x3d800000, 0x7fffffff, 0x7fffffff), at 0xfaecbcc4
          [5] processToRunsArc3(0xfaef93a0, 0x10de84, 0xfaee66f8, 0x3d800000, 0x7fffffff, 0x7fffffff), at 0xfaecbcc4
          [6] processToRunsArc3(0xfaef93a0, 0x10de84, 0xfaee66f8, 0x3d800000, 0x7fffffff, 0x7fffffff), at 0xfaecbcc4
          [7] processToRunsArc3(0xfaef93a0, 0x10de84, 0xfaee66f8, 0x3d800000, 0x7fffffff, 0x7fffffff), at 0xfaecbcc4
          [8] processToRunsArc3(0xfaef93a0, 0x10de84, 0xfaee66f8, 0x3d800000, 0x7fffffff, 0x7fffffff), at 0xfaecbcc4
          [9] processToRunsArc3(0xfaef93a0, 0x10de84, 0xfaee66f8, 0x3d800000, 0x7fffffff, 0x7fffffff), at 0xfaecbcc4
        [ ... ]
          [100] processToRunsArc3(0xfaef93a0, 0x10de84, 0xfaee66f8, 0x3d800000, 0x7fffffff, 0x7fffffff), at 0xfaecbcc4
        (/opt/SUNWspro/bin/../WS6U2/bin/sparcv9/dbx) where -f 2000
        current thread: t@1
          [2000] processToRunsArc3(0xfaef93a0, 0x10de84, 0xfaee66f8, 0x3d800000, 0x7fffffff, 0x7fffffff), at 0xfaecbcc4
        [ ... ]
          [2045] processToRunsArc3(0xfaef93a0, 0x10de84, 0xfaee66f8, 0x3d800000, 0x7fffffff, 0x7fffffff), at 0xfaecbcc4
          [2046] processToRunsArc3(0xfaef93a0, 0x10de84, 0xfaee66f8, 0x3d800000, 0x7fffffff, 0x7fffffff), at 0xfaecbcc4
          [2047] processToRunsArc3(0xfaef93a0, 0x10de84, 0xfaee66f8, 0x3d800000, 0x7fffffff, 0x7fffffff), at 0xfaecbcc4
          [2048] processToRunsArc3(0xfaef93a0, 0x10de84, 0xfaee66f8, 0x3d800000, 0x7fffffff, 0x7fffffff), at 0xfaecbcc4
          [2049] RunsBuilder_appendCubic(0x27a58, 0x27a84, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x7fffffff), at 0xfaeca97c
          [2050] appendCubic_describeTo(0x27a58, 0x1c3cf0, 0x27a84, 0x34, 0x1c3d48, 0x0), at 0xfaec449c
          [2051] sendTo(0x1c3cf0, 0x27a84, 0x27a84, 0x27a58, 0x2, 0x2), at 0xfaec489c
          [2052] setOutputArea(0x10dbfc, 0x10de84, 0x3, 0x27a58, 0x1, 0x53), at 0xfaecd7c8
          [2053] Java_sun_dc_pr_PathFiller_setOutputArea(0x27a58, 0xffbee21c, 0x437a0000, 0x42540000, 0x2, 0x53), at 0xfaec5c0c
          [2054] 0x7e1c8(0xf4c13a20, 0xffbee620, 0x29810, 0xfe73c000, 0xb6, 0xf8d848e8), at 0x7e1c7
          [2055] 0x7b58c(0xf4c13a00, 0xffbee620, 0x29810, 0x83c7c, 0xb6, 0xf8d80bf0), at 0x7b58b
          [2056] 0x7b58c(0xf4c135b8, 0xffbee620, 0x29810, 0x83c7c, 0xb6, 0xf8d80b10), at 0x7b58b
          [2057] 0x7b58c(0xf4c135b8, 0x7d5d8, 0x29810, 0x83c7c, 0xf8d3a0c0, 0x6), at 0x7b58b
          [2058] 0x7b834(0xf4c07530, 0x7d5d8, 0x29810, 0x83f04, 0xf8d320f8, 0x0), at 0x7b833
          [2059] 0x7b834(0xf4c07558, 0xffbee620, 0x29810, 0x83f04, 0xb6, 0xf8ca0690), at 0x7b833
          [2060] 0x7b58c(0x0, 0x1, 0xfe749698, 0x83c7c, 0x1e, 0xe), at 0x7b58b
          [2061] 0xfe772bb4(0xffbee640, 0xffbee840, 0xa, 0xf8c9cf10, 0x7d5d8, 0xffbee774), at 0xfe772bb3
          [2062] JavaCalls::call_helper(0xffbee838, 0xfe73c000, 0xffbee76c, 0x29810, 0x7d5d8, 0xffbee840), at 0xfe5032c0
          [2063] JavaCalls::call(0xffbee838, 0xffbee74c, 0xffbee76c, 0x29810, 0xfe73c000, 0xffbee6e4), at 0xfe502f50
          [2064] jni_invoke(0x1, 0x29810, 0x0, 0x0, 0xa53b0, 0xffbee81c), at 0xfe516a60
          [2065] jni_CallStaticVoidMethod(0xfe73c000, 0x29810, 0xa53b0, 0x2989c, 0xffbee8a0, 0x29810), at 0xfe56b1cc
          [2066] main(0x2989c, 0x0, 0x2989c, 0xffbef30c, 0x0, 0x2503c), at 0x11ca4
        (/opt/SUNWspro/bin/../WS6U2/bin/sparcv9/dbx)



          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  spikalev Sergei Pikalev (Inactive)
                  Reporter:
                  thlenz Thomas Lenz (Inactive)
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  0 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved:
                    Imported:
                    Indexed: