-
Bug
-
Resolution: Cannot Reproduce
-
P3
-
None
-
6u10, 7u80
-
x86
-
linux
FULL PRODUCT VERSION :
java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
Linux appserver05 2.6.24-24-generic #1 SMP Fri Sep 18 16:16:18 UTC 2009 x86_64 GNU/Linux
A DESCRIPTION OF THE PROBLEM :
This is a server application using Java2D to render map images in a headless environment. Multiple map images may be requested in parallel.
Roughly once a day, the java process segfaults. After each crash, we use visualvm on the core dump. The problematic stacktrace is shown below.
Thread 18032 "TP-Processor15": (state = IN_NATIVE)
at sun.dc.pr.PathDasher.appendCubic(Native Method)
at sun.dc.pr.Rasterizer.appendCubic(Rasterizer.java:520)
at sun.java2d.pipe.DuctusRenderer.createShapeRasterizer(DuctusRenderer.java:553)
at sun.java2d.pipe.DuctusShapeRenderer.renderPath(DuctusShapeRenderer.java:97)
at sun.java2d.pipe.DuctusShapeRenderer.draw(DuctusShapeRenderer.java:46)
at sun.java2d.pipe.PixelToParallelogramConverter.draw(PixelToParallelogramConverter.java:130)
at sun.java2d.SunGraphics2D.draw(SunGraphics2D.java:2336)
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Have not been able to create a reproducible case.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
No crash
ACTUAL -
Crash. Core dumped.
ERROR MESSAGES/STACK TRACES THAT OCCUR :
The java process does not write a hs_err_pid file.
REPRODUCIBILITY :
This bug can be reproduced occasionally.
---------- BEGIN SOURCE ----------
Have not been able to create a reproducible case.
---------- END SOURCE ----------
Additional input from submitter:
% javac PathDasherSegfault.java
% java PathDasherSegfault
about to draw
Segmentation fault (core dumped)
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
about to draw
OK
ACTUAL -
about to draw
Segmentation fault (core dumped)
ERROR MESSAGES/STACK TRACES THAT OCCUR :
java does not create any hs_err_pid file in this case
The stack-trace from the core-file:
Thread 18032 "TP-Processor15": (state = IN_NATIVE)
at sun.dc.pr.PathDasher.appendCubic(Native Method)
at sun.dc.pr.Rasterizer.appendCubic(Rasterizer.java:520)
at sun.java2d.pipe.DuctusRenderer.createShapeRasterizer(DuctusRenderer.java:553)
at sun.java2d.pipe.DuctusShapeRenderer.renderPath(DuctusShapeRenderer.java:97)
at sun.java2d.pipe.DuctusShapeRenderer.draw(DuctusShapeRenderer.java:46)
at sun.java2d.pipe.PixelToParallelogramConverter.draw(PixelToParallelogramConverter.java:130)
at sun.java2d.SunGraphics2D.draw(SunGraphics2D.java:2336)
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
import java.awt.BasicStroke;
import java.awt.Graphics2D;
import java.awt.Stroke;
import java.awt.geom.GeneralPath;
import java.awt.image.BufferedImage;
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");
}
}
java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
Linux appserver05 2.6.24-24-generic #1 SMP Fri Sep 18 16:16:18 UTC 2009 x86_64 GNU/Linux
A DESCRIPTION OF THE PROBLEM :
This is a server application using Java2D to render map images in a headless environment. Multiple map images may be requested in parallel.
Roughly once a day, the java process segfaults. After each crash, we use visualvm on the core dump. The problematic stacktrace is shown below.
Thread 18032 "TP-Processor15": (state = IN_NATIVE)
at sun.dc.pr.PathDasher.appendCubic(Native Method)
at sun.dc.pr.Rasterizer.appendCubic(Rasterizer.java:520)
at sun.java2d.pipe.DuctusRenderer.createShapeRasterizer(DuctusRenderer.java:553)
at sun.java2d.pipe.DuctusShapeRenderer.renderPath(DuctusShapeRenderer.java:97)
at sun.java2d.pipe.DuctusShapeRenderer.draw(DuctusShapeRenderer.java:46)
at sun.java2d.pipe.PixelToParallelogramConverter.draw(PixelToParallelogramConverter.java:130)
at sun.java2d.SunGraphics2D.draw(SunGraphics2D.java:2336)
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Have not been able to create a reproducible case.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
No crash
ACTUAL -
Crash. Core dumped.
ERROR MESSAGES/STACK TRACES THAT OCCUR :
The java process does not write a hs_err_pid file.
REPRODUCIBILITY :
This bug can be reproduced occasionally.
---------- BEGIN SOURCE ----------
Have not been able to create a reproducible case.
---------- END SOURCE ----------
Additional input from submitter:
% javac PathDasherSegfault.java
% java PathDasherSegfault
about to draw
Segmentation fault (core dumped)
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
about to draw
OK
ACTUAL -
about to draw
Segmentation fault (core dumped)
ERROR MESSAGES/STACK TRACES THAT OCCUR :
java does not create any hs_err_pid file in this case
The stack-trace from the core-file:
Thread 18032 "TP-Processor15": (state = IN_NATIVE)
at sun.dc.pr.PathDasher.appendCubic(Native Method)
at sun.dc.pr.Rasterizer.appendCubic(Rasterizer.java:520)
at sun.java2d.pipe.DuctusRenderer.createShapeRasterizer(DuctusRenderer.java:553)
at sun.java2d.pipe.DuctusShapeRenderer.renderPath(DuctusShapeRenderer.java:97)
at sun.java2d.pipe.DuctusShapeRenderer.draw(DuctusShapeRenderer.java:46)
at sun.java2d.pipe.PixelToParallelogramConverter.draw(PixelToParallelogramConverter.java:130)
at sun.java2d.SunGraphics2D.draw(SunGraphics2D.java:2336)
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
import java.awt.BasicStroke;
import java.awt.Graphics2D;
import java.awt.Stroke;
import java.awt.geom.GeneralPath;
import java.awt.image.BufferedImage;
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");
}
}
- duplicates
-
JDK-6996336 JVM crash in recursive processCubic calls (libdcpr.so)
-
- Closed
-
-
JDK-5054725 VM crashes (stack overflow) when using BasicStroke.createStrokedShape()
-
- Closed
-
-
JDK-6574354 drawing an elipse can cause Crash in the PathDasher.appendCubic
-
- Closed
-
-
JDK-6966645 PathDasher.appendCubic crash
-
- Closed
-