JDK-4489521 : JCK1.4, api/java_awt/serialization/descriptions.html#FontMetrics, linux, b74
  • Type: Bug
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: 1.4.0
  • Priority: P1
  • Status: Closed
  • Resolution: Fixed
  • OS: linux
  • CPU: x86
  • Submitted: 2001-08-08
  • Updated: 2001-09-14
  • Resolved: 2001-08-27
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.0 beta3Fixed
Related Reports
Relates :  
Description

Name: iaR10016			Date: 08/08/2001


JDK            : JDK1.4.0-beta-b74
JCK            : JCK1.4-b06
Platform[s]    : RedHat Linux 7.1, RedHat Linux 6.2
switch/Mode    : -Xprof -verbose -verify -Xfuture
JCK test owner : http://javaweb.eng/jck/usr/owners.jto
Failing Tests  : api/java_awt/serialization/descriptions.html#FontMetrics
                 api/javax_swing/SwingUtilities/descriptions.html#other
                 api/javax_swing/border/TitledBorder/index.html#setgetXXX

Test source location:
=====================
/net/jdk/export/disk8/local.java/jck1.4/JCK-runtime-14/tests/api/java_awt/serialization/FontMetricsTests.java
/net/jdk/export/disk8/local.java/jck1.4/JCK-runtime-14/tests/api/javax_swing/SwingUtilities/otherTests.java
/net/jdk/export/disk8/local.java/jck1.4/JCK-runtime-14/tests/api/javax_swing/border/TitledBorder/setgetXXXTests.java

jtr file location:
==================
/net/jtgb4u4c.eng/export/sail16/results/merlin/b74/jck14/linux/redhat6.2_single_gnome_client_prof_verbose_verify_linux-12/workDir/api/java_awt/serialization/descriptions_FontMetrics.jtr
/net/jtgb4u4c.eng/export/sail16/results/merlin/b74/jck14/linux/redhat6.2_single_gnome_client_prof_verbose_verify_linux-12/workDir/api/javax_swing/SwingUtilities/descriptions_other.jtr
/net/jtgb4u4c.eng/export/sail16/results/merlin/b74/jck14/linux/redhat6.2_single_gnome_client_prof_verbose_verify_linux-12/workDir/api/javax_swing/border/TitledBorder/index_setgetXXX.jtr

How to reproduce:
====================
Run the following script under RedHat Linux 7.1
(probably, you need to change JCK and JAVA_HOME paths):
--------Script START---------------------
#!/bin/sh
JAVA_HOME=/net/jdk/export/disk8/local.java/jdk1.4/linux-i386
JCK=/net/jdk/export/disk8/local.java/jck1.4/JCK-runtime-14
export CLASSPATH="$JCK/classes:$JCK/javatest.jar"
executeClass="javasoft.sqe.tests.api.java.awt.serialization.FontMetricsTests -TestCaseID ALL"
executeArgs="-TestURL file:$JCK/tests/api/java_awt/serialization/descriptions.html#FontMetrics -FileName fntmtrks.ser"
$JAVA_HOME/bin/java -Xprof -verbose -verify -Xfuture ${executeClass} ${executeArgs}
---------Script END----------------------

Test output:
=============
[Opened /net/linux-15/export/home/java/jdk1.4.0/linux/jre/lib/rt.jar]
[Opened /net/linux-15/export/home/java/jdk1.4.0/linux/jre/lib/sunrsasign.jar]
[Opened /net/linux-15/export/home/java/jdk1.4.0/linux/jre/lib/jsse.jar]
[Opened /net/linux-15/export/home/java/jdk1.4.0/linux/jre/lib/jce.jar]
[Opened /net/linux-15/export/home/java/jdk1.4.0/linux/jre/lib/charsets.jar]
[Loaded java.lang.Object from /net/linux-15/export/home/java/jdk1.4.0/linux/jre/lib/rt.jar]
[Loaded java.io.Serializable from /net/linux-15/export/home/java/jdk1.4.0/linux/jre/lib/rt.jar]
[Loaded java.lang.Comparable from /net/linux-15/export/home/java/jdk1.4.0/linux/jre/lib/rt.jar]
[Loaded java.lang.CharSequence from /net/linux-15/export/home/java/jdk1.4.0/linux/jre/lib/rt.jar]
...
[Loaded sun.reflect.GeneratedFieldAccessor8]
[Loaded sun.reflect.GeneratedConstructorAccessor22]
[Loaded sun.reflect.GeneratedSerializationConstructorAccessor9]
[Loaded sun.reflect.GeneratedFieldAccessor9]
[Loaded sun.reflect.GeneratedConstructorAccessor23]
[Loaded sun.reflect.GeneratedSerializationConstructorAccessor10]
[Loaded sun.reflect.GeneratedMethodAccessor7]
[Loaded sun.reflect.GeneratedConstructorAccessor24]
[Loaded sun.reflect.GeneratedSerializationConstructorAccessor11]
[Loaded sun.reflect.GeneratedSerializationConstructorAccessor12]
[Loaded sun.awt.MostRecentKeyValue from /net/linux-15/export/home/java/jdk1.4.0/linux/jre/lib/rt.jar]
[Loaded sun.awt.EventQueueItem from /net/linux-15/export/home/java/jdk1.4.0/linux/jre/lib/rt.jar]

Flat profile of 1.23 secs (58 total ticks): AWT-Shutdown

  Thread-local ticks:
100.0%    58             Blocked (of total)

java: ../../../src/share/native/sun/awt/font/fontmanager/fontobjects/fontObject.cpp:479: void fileFontObject::readBlock(size_t, size_t, char *): Assertion `(*__errno_location ()) == 0 &&
count == (size_t) size' failed.

Specific Machine Info:
=====================
Hostname: linux-14
OS: RedHat linux 7.1

Hostname: linux-14
OS: RedHat linux 6.2

======================================================================

Comments
CONVERTED DATA BugTraq+ Release Management Values COMMIT TO FIX: merlin-rc1 FIXED IN: merlin-beta3 INTEGRATED IN: merlin-beta3 VERIFIED IN: merlin-beta3
14-06-2004

EVALUATION Thread suspension on Linux is implemented by "sigsuspend" in signal handler SR_handler(). sigsuspend() is later interrupted by another signal when we need to resume the thread. As the result, errno for that thread is changed to EINTR after the resumption. This behavior can confuse native code that assumes errno will remain 0 after a successful system call. The obvious solution is to save and restore errno in SR_handler. Note after this fix, the assertion failure is gone, but the test may hang intermittently on SMP due to 4461173. It works fine on single processor systems or on SMP with the engineering build for 4461173. ###@###.### 2001-08-15
15-08-2001