JDK-6325837 : crash within sun.awt.font.GlyphList.discardData
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 1.4.2_05
  • Priority: P2
  • Status: Closed
  • Resolution: Duplicate
  • OS: solaris_9
  • CPU: generic
  • Submitted: 2005-09-19
  • Updated: 2010-04-02
  • Resolved: 2005-09-20
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other
1.4.2_05Resolved
Related Reports
Duplicate :  
Description
customer regularly crashes with this resulting stack trace from the core file

  ---- called from signal handler with signal 10 (SIGBUS) ------
  [8] 0x52bb155c(0x1b3c778, 0x5627e5dc, 0x9d2a7ad0, 0x1b3c778, 0x42, 0x0), at 0x52bb155b 
  [9] 0x52bb1558(0x30002f, 0x30002f, 0x42, 0x52c16000, 0x1b3c778, 0x17f1b60), at 0x52bb1557 
  [10] Java_sun_awt_font_GlyphList_discardData(0x1b3c80c, 0x5627e5dc, 0x5627e480, 0x0, 0xf7c098e4, 0x0), at 0x52bb4250 
  [11] 0xf7c0b96c(0x5627e5dc, 0xb7, 0x0, 0x5627e5e8, 0x0, 0x0), at 0xf7c0b96b 
  [12] 0xf7c05804(0x5627e67c, 0xb6, 0x0, 0xf7c160d0, 0x4, 0x5627e578), at 0xf7c05803 
  [13] 0xf7c05804(0x5627e71c, 0xb7, 0x0, 0xf7c15e50, 0x4, 0x5627e608), at 0xf7c05803 
  [14] 0xf7c05804(0x5627e7a4, 0xea27eb00, 0x0, 0xf7c160e0, 0x14, 0x5627e6b0), at 0xf7c05803 


An unexpected exception has been detected in native code outside the VM. 
Unexpected Signal : 10 occurred at PC=0x52BB155C 
Function=[Unknown. Nearest: Java_sun_awt_font_NativeFontWrapper_getGlyphVectorOutline+0x25AC] 
Library=/opt/p4/3rdparty/sun/java/sunos-sparc/1.4.2_05/jre/lib/sparc/libfontmanager.so 
 
Current Java thread: 
        at sun.awt.font.GlyphList.discardData(Native Method) 
        at sun.awt.font.GlyphList.dispose(GlyphList.java:215) 
        - locked <0xea264700> (a java.lang.Class) 
        at sun.java2d.pipe.GlyphListPipe.drawGlyphVector(GlyphListPipe.java:151) 
        at sun.java2d.pipe.AATextRenderer.drawGlyphVector(AATextRenderer.java:33) 
        at sun.java2d.pipe.ValidatePipe.drawGlyphVector(ValidatePipe.java:128) 
        at sun.java2d.SunGraphics2D.drawGlyphVector(SunGraphics2D.java:2614) 
        at sun.awt.font.ExtendedTextSourceLabel.handleDraw(ExtendedTextSourceLabel.java:112) 
        at sun.awt.font.Decoration.drawTextAndDecorations(Decoration.java:100) 
        at sun.awt.font.ExtendedTextSourceLabel.draw(ExtendedTextSourceLabel.java:116) 


thread stack from SA

Thread t@71: (state = IN_NATIVE, current Java SP = 0x5627e4f8)
Frame with fp = 0x5627e0a0 looked like a signal handler frame but wasn't
- sun.awt.font.GlyphList.discardData() @bci=0, pc=0xf7c0b974, methodOop=0xea313a60 (Interpreted frame)
- sun.awt.font.GlyphList.dispose() @bci=25, line=215, pc=0xf7c0580c, methodOop=0xea312038 (Interpreted frame)
- sun.java2d.pipe.GlyphListPipe.drawGlyphVector(sun.java2d.SunGraphics2D, java.awt.font.GlyphVector, float, float) @bci=208, line=151, pc=0xf7c0580c, methodOop=0xea288bb8 (Interpreted frame)
- sun.java2d.pipe.AATextRenderer.drawGlyphVector(sun.java2d.SunGraphics2D, java.awt.font.GlyphVector, float, float) @bci=37, line=33, pc=0xf7c0580c, methodOop=0xea27bd90 (Interpreted frame)
- sun.java2d.pipe.ValidatePipe.drawGlyphVector(sun.java2d.SunGraphics2D, java.awt.font.GlyphVector, float, float) @bci=13, line=128, pc=0xf7c05a94, methodOop=0xea2c00f0 (Interpreted frame)
- sun.java2d.SunGraphics2D.drawGlyphVector(java.awt.font.GlyphVector, float, float) @bci=58, line=2614, pc=0xf7c05a94, methodOop=0xea271788 (Interpreted frame)
- sun.awt.font.ExtendedTextSourceLabel.handleDraw(java.awt.Graphics2D, float, float) @bci=7, line=112, pc=0xf7c0580c, methodOop=0xea30fc90 (Interpreted frame)
- sun.awt.font.Decoration.drawTextAndDecorations(sun.awt.font.Decoration$Label, java.awt.Graphics2D, float, float) @bci=5, line=100, pc=0xf9170938, methodOop=0xea30fc20 (Compiled frame)
- java.awt.font.TextLayout.draw(java.awt.Graphics2D, float, float) @bci=54, line=2666, pc=0xf7c0580c, methodOop=0xea2f5e68 (Interpreted frame)
- sun.java2d.SunGraphics2D.drawString(java.text.AttributedCharacterIterator, float, float) @bci=34, line=2598, pc=0xf9162fc4, methodOop=0xea2b88a0 (Compiled frame)
- hotwire.view.captcha.HwTextPaster.pasteText(java.awt.image.BufferedImage, java.text.AttributedString) @bci=78, line=80, pc=0xf7c0580c, methodOop=0xea1e77e8 (Interpreted frame)
- com.octo.captcha.component.image.wordtoimage.ComposedWordToImage.pasteText(java.awt.image.BufferedImage, java.text.AttributedString) @bci=6, line=587, pc=0xf7c059e0, methodOop=0xea2211f8 (Interpreted frame)
- com.octo.captcha.component.image.wordtoimage.FilteredComposedWordToImage.getImage(java.lang.String) @bci=153, line=574, pc=0xf7c05758, methodOop=0xea2281b0 (Interpreted frame)
- hotwire.view.captcha.HwCaptchaFactory.getImageCaptcha(java.util.Locale) @bci=98, line=85, pc=0xf7c059e0, methodOop=0xea1e7140 (Interpreted frame)
- hotwire.view.captcha.HwCaptchaFactory.getImageCaptcha() @bci=70, line=69, pc=0xf7c05758, methodOop=0xea1ce030 (Interpreted frame)
- com.octo.captcha.engine.image.ListImageCaptchaEngine.getNextImageCaptcha() @bci=4, line=559, pc=0xf7c05758, methodOop=0xea1d8dc8 (Interpreted frame)
- hotwire.view.web.action.LoginAction.createHwCaptcha(hotwire.view.web.flow.HwSessionInfo, hotwire.view.web.form.account.LoginForm) @bci=15, line=491, pc=0xf7c05758, methodOop=0xe993cf40 (Interpreted frame)
- hotwire.view.web.action.LoginAction.handleLoginPageView(hotwire.view.web.flow.HwActionMapping, hotwire.view.web.form.HwActionForm, hotwire.view.web.flow.HwSessionInfo) @bci=103, line=123, pc=0xf7c0580c, methodOop=0xe994aa30 (Interpreted frame)
- hotwire.view.web.action.LoginAction.execute(hotwire.view.web.flow.HwActionMapping, hotwire.view.web.form.HwActionForm, hotwire.view.web.flow.HwSessionInfo) @bci=126, line=83, pc=0xf7c05758, methodOop=0xe98e2748 (Interpreted frame)
- hotwire.view.web.action.HwAction.handleLoginIntercept(hotwire.view.web.flow.HwSessionInfo, hotwire.view.web.form.HwActionForm, hotwire.view.web.flow.HwActionMapping, boolean, boolean, org.apache.struts.action.ActionForward) @bci=269, line=663, pc=0xf8dd6474, methodOop=0xe9909e70 (Compiled frame)
- hotwire.view.web.action.HwAction.executeLoginIfNeeded(hotwire.view.web.flow.HwSessionInfo, hotwire.view.web.form.HwActionForm, hotwire.view.web.flow.HwActionMapping, javax.servlet.http.HttpServletRequest, org.apache.struts.action.ActionForward) @bci=133, line=561, pc=0xf7c05758, methodOop=0xe9967e80 (Interpreted frame)
- hotwire.view.web.action.HwAction.execute(org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) @bci=488, line=175, pc=0xf8727a98, methodOop=0xe9975e58 (Compiled frame)
- org.apache.struts.action.RequestProcessor.processActionPerform(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, org.apache.struts.action.Action, org.apache.struts.action.ActionForm, org.apache.struts.action.ActionMapping) @bci=7, line=484, pc=0xf85c7908, methodOop=0xe9121958 (Compiled frame)
- org.apache.struts.action.RequestProcessor.process(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) @bci=557, line=274, pc=0xf8d5ef58, methodOop=0xe9157f78 (Compiled frame)
- org.apache.struts.action.ActionServlet.process(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) @bci=19, line=1482, pc=0xf9261508, methodOop=0xe8f54a78 (Compiled frame)
- org.apache.struts.action.ActionServlet.doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) @bci=75, line=507, pc=0xf7c0580c, methodOop=0xe8f2dce8 (Interpreted frame)
- javax.servlet.http.HttpServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) @bci=35, line=740, pc=0xf7c0580c, methodOop=0xe8544a58 (Interpreted frame)
- javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse) @bci=30, line=853, pc=0xf7c0580c, methodOop=0xe8544d00 (Interpreted frame)
- weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run() @bci=12, line=996, pc=0xf84a374c, methodOop=0xe988e198 (Compiled frame)
- weblogic.servlet.internal.TailFilter.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) @bci=10, line=28, pc=0xf84f0154, methodOop=0xe9781f68 (Compiled frame)
- weblogic.servlet.internal.FilterChainImpl.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) @bci=28, line=27, pc=0xf8cbd9f4, methodOop=0xe9774730 (Compiled frame)
- weblogic.servlet.internal.FilterChainImpl.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) @bci=28, line=27, pc=0xf86571d4, methodOop=0xe9774730 (Compiled frame)
- weblogic.servlet.internal.FilterChainImpl.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) @bci=28, line=27, pc=0xf9d00300, methodOop=0xe9774730 (Compiled frame)
- weblogic.security.acl.internal.AuthenticatedSubject.doAs(weblogic.security.subject.AbstractSubject, java.security.PrivilegedAction) @bci=34, line=321, pc=0xf86d875c, methodOop=0xe7d9c140 (Compiled frame)
- weblogic.servlet.internal.ServletRequestImpl.execute(weblogic.kernel.ExecuteThread) @bci=84, line=2630, pc=0xf8f050bc, methodOop=0xe9737768 (Compiled frame)
- weblogic.kernel.ExecuteThread.execute(weblogic.kernel.ExecuteRequest) @bci=23, line=219, pc=0xf9f7dde0, methodOop=0xe8324fe0 (Compiled frame)
- weblogic.kernel.ExecuteThread.run() @bci=63, line=178, pc=0xf86fbcd4, methodOop=0xe8324e10 (Compiled frame)

customer pointed to bug ID 6215606 but the stack trace in that one appears to be with the CMS GC collector.  Customer is using CMS, but the stack trace is not showing it faulting in the collector so opening this CR

The CMS thread 
(dbx) where
current thread: t@6
=>[1] ___lwp_cond_wait(0x4, 0x3aae0, 0xfbd7fdd8, 0x0, 0x0, 0x0), at 0xff31f9cc   [2] __lwp_cond_reltimedwait(0x3aaf8, 0x3aae0, 0xfbd7fdd8, 0x1bb4cdd0, 0x432089b4, 0xfbd7fdd0), at 0xff316a1c 
  [3] __lwp_cond_timedwait(0x3aaf8, 0x3aae0, 0xfbd7fec0, 0x3aae0, 0x4b8110, 0xfbd7feb8), at 0xff316afc 
  [4] Monitor::wait(0x35420, 0x7d0, 0x7d0, 0x4000, 0x4194, 0x0), at 0xfed93f80   [5] ConcurrentMarkSweepThread::run(0x3c00, 0x4c00, 0x5400, 0x5614, 0x4000, 0x4014), at 0xfef76ea0 
  [6] _start(0x1d8290, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfee643e0

Comments
EVALUATION >customer pointed to bug ID 6215606 but the stack trace in that one >appears to be with the CMS GC collector. Customer is using CMS, >but the stack trace is not showing it faulting in the collector >so opening this CR This sounded familiar. See http://webbugs.sfbay/rt/incidentDisplay?incidentID=529072 I had no response from customer in email where I proposed the theory that they may also be using CMS but clearly they got it! So the customer got that theory about 6215606 directly from JDK engineering (may be they didn't realise that) and that remains our best guess. I had asked that they not use CMS but it doesn't sound like they tried that - I still recommend trying that as workaround Also the same stack trace *IS* seen in 6215606 Right at the top of the evaluation of 6215606 it states : >According to stack attached, the error in a native method >sun.awt.font.GlyphList.discardData. So this shares numerous relevant characteristics with 6215606 - same JDK, same O/S - same stack trace - similar GC options So this just appears to be a duplicate of 6215606
20-09-2005