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

JVM crash in recursive processCubic calls (libdcpr.so)

    Details

    • Subcomponent:
      2d
    • CPU:
      x86
    • OS:
      linux

      Description

      FULL PRODUCT VERSION :
      java version "1.6.0_22"
      Java(TM) SE Runtime Environment (build 1.6.0_22-b04)
      Java HotSpot(TM) 64-Bit Server VM (build 17.1-b03, mixed mode)


      ADDITIONAL OS VERSION INFORMATION :
      Linux vilma 2.6.35-22-generic #35-Ubuntu SMP Sat Oct 16 20:45:36 UTC 2010 x86_64 GNU/Linux


      A DESCRIPTION OF THE PROBLEM :
      The following java class crashes the VM all times:

      import java.awt.geom.*;
      import java.awt.*;
      import java.awt.image.*;

      public class PathDasherSegfault {
          public static void main( String[] args ) {
              GeneralPath path = new GeneralPath(GeneralPath.WIND_NON_ZERO);
              path.moveTo(8408685.0, -1124643.0);
              path.curveTo(8408693.0, -1124638.8, 8408703.0, -1124636.8,
      8408712.0, -1124637.0);

              BufferedImage image = new BufferedImage(100, 100,
      BufferedImage.TYPE_INT_RGB);
              Graphics2D g2 = image.createGraphics();

              Stroke stroke = new BasicStroke(0.8503937f,
      BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 10f, new
      float[]{10.204724f,
                      5.102362f}, 0f);
              g2.setStroke(stroke);

              System.out.println("about to draw");
              g2.draw(path);
              System.out.println("OK");
          }

      }

      stack trace is the following:

      #0 0x00007f7c9154d4a8 in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #1 0x00007f7c9154d56c in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #2 0x00007f7c9154d56c in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #3 0x00007f7c9154d584 in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #4 0x00007f7c9154d56c in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #5 0x00007f7c9154d584 in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #6 0x00007f7c9154d56c in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #7 0x00007f7c9154d584 in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #8 0x00007f7c9154d56c in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #9 0x00007f7c9154d584 in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #10 0x00007f7c9154d56c in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #11 0x00007f7c9154d584 in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #12 0x00007f7c9154d56c in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #13 0x00007f7c9154d584 in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #14 0x00007f7c9154d56c in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #15 0x00007f7c9154d584 in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #16 0x00007f7c9154d56c in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #17 0x00007f7c9154d584 in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #18 0x00007f7c9154d56c in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #19 0x00007f7c9154d584 in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #20 0x00007f7c9154d56c in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #21 0x00007f7c9154d584 in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #22 0x00007f7c9154d56c in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #23 0x00007f7c9154d584 in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #24 0x00007f7c9154d56c in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #25 0x00007f7c9154d584 in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #26 0x00007f7c9154d56c in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #27 0x00007f7c9154d584 in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #28 0x00007f7c9154d56c in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #29 0x00007f7c9154d584 in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #30 0x00007f7c9154d56c in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #31 0x00007f7c9154d584 in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #32 0x00007f7c9154d56c in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #33 0x00007f7c9154d584 in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #34 0x00007f7c9154d56c in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #35 0x00007f7c9154d584 in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #36 0x00007f7c9154d56c in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #37 0x00007f7c9154d584 in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #38 0x00007f7c9154d56c in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #39 0x00007f7c9154d584 in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #40 0x00007f7c9154d56c in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #41 0x00007f7c9154d584 in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #42 0x00007f7c9154d56c in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #43 0x00007f7c9154d584 in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      .......................
      #5374 0x00007f7c9154d56c in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #5375 0x00007f7c9154d584 in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #5376 0x00007f7c9154d56c in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #5377 0x00007f7c9154d56c in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #5378 0x00007f7c9154d584 in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #5379 0x00007f7c9154d56c in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #5380 0x00007f7c9154d56c in processCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #5381 0x00007f7c9154dd95 in appendCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #5382 0x00007f7c91545c60 in Java_sun_dc_pr_PathDasher_appendCubic () from /usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/amd64/libdcpr.so
      #5383 0x00007f7cd735ec88 in ?? ()
      #5384 0x00007f7cfffffffc in ?? ()
      #5385 0x00007f7cdaccc4d0 in ?? ()
      #5386 0x000000004146e500 in ?? ()
      #5387 0x000000004146f000 in ?? ()
      #5388 0x000000004146f500 in ?? ()
      #5389 0x000000004146f8d8 in ?? ()
      #5390 0x000000004146f000 in ?? ()
      #5391 0x0000000000000000 in ?? ()


      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      Just compile and launch below java program.

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      No crash :-)
      ACTUAL -
      JVM crash

      ERROR MESSAGES/STACK TRACES THAT OCCUR :
      See below

      REPRODUCIBILITY :
      This bug can be reproduced always.

      ---------- BEGIN SOURCE ----------
      import java.awt.geom.*;
      import java.awt.*;
      import java.awt.image.*;

      public class PathDasherSegfault {
          public static void main( String[] args ) {
              GeneralPath path = new GeneralPath(GeneralPath.WIND_NON_ZERO);
              path.moveTo(8408685.0, -1124643.0);
              path.curveTo(8408693.0, -1124638.8, 8408703.0, -1124636.8,
      8408712.0, -1124637.0);

              BufferedImage image = new BufferedImage(100, 100,
      BufferedImage.TYPE_INT_RGB);
              Graphics2D g2 = image.createGraphics();

              Stroke stroke = new BasicStroke(0.8503937f,
      BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 10f, new
      float[]{10.204724f,
                      5.102362f}, 0f);
              g2.setStroke(stroke);

              System.out.println("about to draw");
              g2.draw(path);
              System.out.println("OK");
          }

      }

      ---------- END SOURCE ----------

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                prr Philip Race
                Reporter:
                webbuggrp Webbug Group
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:
                  Imported:
                  Indexed: