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

JVM crash in recursive processCubic calls (libdcpr.so)

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: P3 P3
    • tbd
    • 6u22, 7, 8
    • client-libs
    • 2d
    • x86
    • linux

      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 ----------

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

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: