-
Bug
-
Resolution: Duplicate
-
P4
-
None
-
1.1.6
-
sparc
-
solaris_2.5.1
Under Solaris 2.5.1 + JDK 1.1.6, JVM sometimes gives SEGV and core dumps.
How to reproduce:
(1) Start up the following sample java application (LongTimeWait) on CDE.
(2) Select a list item in the java application.
(3) Select another window application (ex. terminal emulator)
(4) Repeat (2) and (3) rapidly without waiting the list in java application to be updated.
This problem cannot occur easily. It is necessary to repeat many times.
I have been able to reproduce it only once, but customer had encountered this problem several times by now.
Sample Program:
------------------------------------------------
import java.awt.*;
import java.awt.event.*;
import java.lang.*;
import java.io.*;
class LongTimeWait {
public static void main(String[] args) {
Frame f = new MainFrame();
f.setSize(300,300);
f.show();
}
}
class MainFrame extends Frame implements ItemListener {
private List lst;
private boolean sw;
public MainFrame() {
lst = new List(50);
setLayout(new FlowLayout());
add(lst);
lst.addItemListener(this);
setListItems();
}
private void setListItems() {
int cnt;
lst.removeAll();
for(cnt=10000;cnt<10020;cnt++) {
lst.add("ABCDEFGHIJKLMNOP" + String.valueOf(cnt));
}
}
private void setListItems2() {
int cnt;
lst.removeAll();
for(cnt=1000;cnt<1050;cnt++){
lst.add("ABCDEFGHIJKLMN" + String.valueOf(cnt));
}
}
public void itemStateChanged(ItemEvent e) {
System.out.println(e.toString());
System.out.println("START");
waitLongTime();
System.out.println("WAIT END");
if(sw == true) {
setListItems();
sw = false;
} else {
setListItems2();
sw = true;
}
System.out.println("UPDATE END");
}
private void waitLongTime() {
int cnt;
for(cnt = 0;cnt < 50;cnt++) {
try{
Thread.sleep(100);
} catch(Exception ee) {
}
}
}
}
------------------------------------------------
Stack trace:
dbx) where
=>[1] __lwp_kill(0x0, 0x6, 0xeddfebe8, 0xef4d16b8, 0x18, 0xeddfeaec), at 0xef4798ec
[2] sysAbort(0xef73dc40, 0x0, 0xede01000, 0xeddfef28, 0x0, 0x0), at 0xef7252dc
[3] signalHandlerPanic(0xb, 0xeddfef08, 0xeddfed48, 0xf025cda0, 0x0, 0x10000), at 0xef73df24
---- called from signal handler with signal 11 (SIGSEGV) ------
[4] _XmReadDragBuffer(), at 0xede77bc8
[5] _XmReadDSFromStream(0x0, 0x0, 0xeddff160, 0xeddff18c, 0x3f, 0x12a2a0), at 0xedef5500
[6] GetDSFromStream(0x172968, 0x0, 0xeddff1ef, 0xeddff1ee, 0xedfcdcb8, 0x2480), at 0xedeff3ac
[7] ReadTree(0x172968, 0x0, 0x8, 0x2, 0x1ba6b0, 0xedeff890), at 0xedeff7d4
[8] ChangeRoot(0x172968, 0xeddff2dc, 0xeddff2f8, 0x1e8438, 0x0, 0x0), at 0xedeff8ec
[9] SendDragMessage(0xeddff2dc, 0x48000a8, 0x0, 0x172968, 0xedfb58ac, 0x1e8438), at 0xedef142c
[10] DragMotionProto(0x1ba6b0, 0x29, 0x48000a8, 0x98808, 0x4800045, 0x0), at 0xedef33ac
[11] ProcessMotionBuffer(0x1ba6b0, 0x18, 0x48000a8, 0x4, 0xeddff4cc, 0x60), at 0xedef358c
[12] DragMotion(0x1ba6b0, 0xede00018, 0x1ba7f0, 0xede00018, 0x200c, 0x200c), at 0xedef386c
[13] InitiatorMainLoop(0x1ba6b0, 0x1b59d0, 0x114d38, 0x0, 0x135cc8, 0x48000a9), at 0xedef41cc
[14] DoOtherSources(0x114d38, 0x35bebe73, 0x0, 0x1d0ff0, 0x0, 0x114d48), at 0xef09e6cc
[15] XtAppNextEvent(0x114d38, 0xede001ac, 0x114d44, 0x114f00, 0x0, 0x1), at 0xef09e914
[16] awt_MToolkit_loop(0x0, 0xede00220, 0x1, 0x0, 0xef7f9a64, 0x1000), at 0xef1714c8
[17] sun_awt_motif_MToolkit_run(0xee305cd0, 0xede00220, 0xef754cec, 0xef7721f0, 0x81010100, 0x0), at 0xef17196c
[18] Java_sun_awt_motif_MToolkit_run_stub(0x1256d8, 0xede00c6c, 0x12c, 0x0, 0x1, 0x0), at 0xef1db5b0
[19] invokeNativeMethod(0xee305cd0, 0x116c38, 0x1, 0xede00c6c, 0x1, 0x1), at 0xef6b67f4
[20] invokeLazyNativeMethod(0xee305cd0, 0x116c38, 0x1, 0xede00c6c, 0x200, 0x72756e00), at 0xef6b7d74
[21] ExecuteJava(0xede00b48, 0xede00c6c, 0x1256ac, 0x1256c8, 0x1256b0, 0x3ba33), at 0xef735d4c
[22] do_execute_java_method_vararg(0xede00c6c, 0xee305c18, 0xef771d90, 0xef771d94, 0x0, 0x0), at 0xef6d7668
[23] execute_java_dynamic_method(0x0, 0xee305c18, 0xef771d90, 0xef771d94, 0xfc559c08, 0x4), at 0xef6d6244
[24] ThreadRT0(0xee305c18, 0x0, 0x0, 0xede00e00, 0xf6226428, 0xf61cb000), at 0xef70f564
[25] start_func(0x1, 0xee305c18, 0xef70f478, 0x0, 0x0, 0x0), at 0xef74be7c
(dbx)
How to reproduce:
(1) Start up the following sample java application (LongTimeWait) on CDE.
(2) Select a list item in the java application.
(3) Select another window application (ex. terminal emulator)
(4) Repeat (2) and (3) rapidly without waiting the list in java application to be updated.
This problem cannot occur easily. It is necessary to repeat many times.
I have been able to reproduce it only once, but customer had encountered this problem several times by now.
Sample Program:
------------------------------------------------
import java.awt.*;
import java.awt.event.*;
import java.lang.*;
import java.io.*;
class LongTimeWait {
public static void main(String[] args) {
Frame f = new MainFrame();
f.setSize(300,300);
f.show();
}
}
class MainFrame extends Frame implements ItemListener {
private List lst;
private boolean sw;
public MainFrame() {
lst = new List(50);
setLayout(new FlowLayout());
add(lst);
lst.addItemListener(this);
setListItems();
}
private void setListItems() {
int cnt;
lst.removeAll();
for(cnt=10000;cnt<10020;cnt++) {
lst.add("ABCDEFGHIJKLMNOP" + String.valueOf(cnt));
}
}
private void setListItems2() {
int cnt;
lst.removeAll();
for(cnt=1000;cnt<1050;cnt++){
lst.add("ABCDEFGHIJKLMN" + String.valueOf(cnt));
}
}
public void itemStateChanged(ItemEvent e) {
System.out.println(e.toString());
System.out.println("START");
waitLongTime();
System.out.println("WAIT END");
if(sw == true) {
setListItems();
sw = false;
} else {
setListItems2();
sw = true;
}
System.out.println("UPDATE END");
}
private void waitLongTime() {
int cnt;
for(cnt = 0;cnt < 50;cnt++) {
try{
Thread.sleep(100);
} catch(Exception ee) {
}
}
}
}
------------------------------------------------
Stack trace:
dbx) where
=>[1] __lwp_kill(0x0, 0x6, 0xeddfebe8, 0xef4d16b8, 0x18, 0xeddfeaec), at 0xef4798ec
[2] sysAbort(0xef73dc40, 0x0, 0xede01000, 0xeddfef28, 0x0, 0x0), at 0xef7252dc
[3] signalHandlerPanic(0xb, 0xeddfef08, 0xeddfed48, 0xf025cda0, 0x0, 0x10000), at 0xef73df24
---- called from signal handler with signal 11 (SIGSEGV) ------
[4] _XmReadDragBuffer(), at 0xede77bc8
[5] _XmReadDSFromStream(0x0, 0x0, 0xeddff160, 0xeddff18c, 0x3f, 0x12a2a0), at 0xedef5500
[6] GetDSFromStream(0x172968, 0x0, 0xeddff1ef, 0xeddff1ee, 0xedfcdcb8, 0x2480), at 0xedeff3ac
[7] ReadTree(0x172968, 0x0, 0x8, 0x2, 0x1ba6b0, 0xedeff890), at 0xedeff7d4
[8] ChangeRoot(0x172968, 0xeddff2dc, 0xeddff2f8, 0x1e8438, 0x0, 0x0), at 0xedeff8ec
[9] SendDragMessage(0xeddff2dc, 0x48000a8, 0x0, 0x172968, 0xedfb58ac, 0x1e8438), at 0xedef142c
[10] DragMotionProto(0x1ba6b0, 0x29, 0x48000a8, 0x98808, 0x4800045, 0x0), at 0xedef33ac
[11] ProcessMotionBuffer(0x1ba6b0, 0x18, 0x48000a8, 0x4, 0xeddff4cc, 0x60), at 0xedef358c
[12] DragMotion(0x1ba6b0, 0xede00018, 0x1ba7f0, 0xede00018, 0x200c, 0x200c), at 0xedef386c
[13] InitiatorMainLoop(0x1ba6b0, 0x1b59d0, 0x114d38, 0x0, 0x135cc8, 0x48000a9), at 0xedef41cc
[14] DoOtherSources(0x114d38, 0x35bebe73, 0x0, 0x1d0ff0, 0x0, 0x114d48), at 0xef09e6cc
[15] XtAppNextEvent(0x114d38, 0xede001ac, 0x114d44, 0x114f00, 0x0, 0x1), at 0xef09e914
[16] awt_MToolkit_loop(0x0, 0xede00220, 0x1, 0x0, 0xef7f9a64, 0x1000), at 0xef1714c8
[17] sun_awt_motif_MToolkit_run(0xee305cd0, 0xede00220, 0xef754cec, 0xef7721f0, 0x81010100, 0x0), at 0xef17196c
[18] Java_sun_awt_motif_MToolkit_run_stub(0x1256d8, 0xede00c6c, 0x12c, 0x0, 0x1, 0x0), at 0xef1db5b0
[19] invokeNativeMethod(0xee305cd0, 0x116c38, 0x1, 0xede00c6c, 0x1, 0x1), at 0xef6b67f4
[20] invokeLazyNativeMethod(0xee305cd0, 0x116c38, 0x1, 0xede00c6c, 0x200, 0x72756e00), at 0xef6b7d74
[21] ExecuteJava(0xede00b48, 0xede00c6c, 0x1256ac, 0x1256c8, 0x1256b0, 0x3ba33), at 0xef735d4c
[22] do_execute_java_method_vararg(0xede00c6c, 0xee305c18, 0xef771d90, 0xef771d94, 0x0, 0x0), at 0xef6d7668
[23] execute_java_dynamic_method(0x0, 0xee305c18, 0xef771d90, 0xef771d94, 0xfc559c08, 0x4), at 0xef6d6244
[24] ThreadRT0(0xee305c18, 0x0, 0x0, 0xede00e00, 0xf6226428, 0xf61cb000), at 0xef70f564
[25] start_func(0x1, 0xee305c18, 0xef70f478, 0x0, 0x0, 0x0), at 0xef74be7c
(dbx)