In an effort to use pstoedit (2.5) filter front end to ghostscript to convert postscript files to java applets, found a combination that crashes Java's virtual machine all browsers with a SIGSEGV segment violation. I've attached the PostScript file, the Java code generated, and the HTML file invoking it. To see this happen, try accessing the following URL through either Netscape 3.0 from softdist or any of the HotJava builds.
http://cyberia.corp/public_html/test/colorcir.html
SPARC appletviewer is crashed with the following diagnostics:
miken@cyberia [205] appletviewer colorcir.html
SIGSEGV 11* segmentation violation
si_signo [11]: SIGSEGV 11* segmentation violation
si_errno [0]: Error 0
si_code [1]: SEGV_ACCERR [addr: 0x188]
stackbase=EF0C1000, stackpointer=EF0BED40
Full thread dump:
"Screen Updater" (TID:0xee304640, sys_thread_t:0xef090de0) prio=4
java.lang.Object.wait(Object.java)
sun.awt.ScreenUpdater.nextEntry(ScreenUpdater.java:75)
sun.awt.ScreenUpdater.run(ScreenUpdater.java:95)
"AWT-Motif" (TID:0xee3042d8, sys_thread_t:0xef0c0de0) prio=5 *current thread*
colorcir.paint(colorcir.java:8188)
sun.awt.motif.MComponentPeer.paint(MComponentPeer.java:123)
sun.awt.motif.MComponentPeer.handleExpose(MComponentPeer.java:267)
java.lang.Thread.run(Thread.java)
"AWT-Input" (TID:0xee3042b0, sys_thread_t:0xef0f0de0) prio=5
"thread applet-colorcir.class" (TID:0xee304020, sys_thread_t:0xef430de0) prio=6
java.lang.Object.wait(Object.java)
sun.applet.AppletPanel.getNextEvent(AppletPanel.java:185)
sun.applet.AppletPanel.run(AppletPanel.java:216)
java.lang.Thread.run(Thread.java)
"Finalizer thread" (TID:0xee3003b0, sys_thread_t:0xef460de0) prio=1
"Async Garbage Collector" (TID:0xee300368, sys_thread_t:0xef490de0) prio=1
"Idle thread" (TID:0xee300320, sys_thread_t:0xef4c0de0) prio=0
"clock handler" (TID:0xee3001f8, sys_thread_t:0xef4f0de0) prio=11
"main" (TID:0xee3000a0, sys_thread_t:0x7c378) prio=5
Monitor Cache Dump:
unknown key (key=0xef490de0): monitor owner: "Async Garbage Collector"
sun.awt.motif.MToolkit@EE304298/EE33DA30 (key=0xee304298): unowned
Waiting to be notified:
"AWT-Input"
sun.applet.AppletViewerPanel@EE303E78/EE33D018 (key=0xee303e78): unowned
Waiting to be notified:
"thread applet-colorcir.class"
sun.awt.ScreenUpdater@EE304640/EE33E190 (key=0xee304640): unowned
Waiting to be notified:
"Screen Updater"
Registered Monitor Dump:
Finalize me queue lock: unowned
Waiting to be notified:
"Finalizer thread"
Thread queue lock: unowned
Waiting to be notified:
"main"
Class lock: unowned
Java stack lock: unowned
Code rewrite lock: unowned
Heap lock: unowned
Has finalization queue lock: unowned
Monitor IO lock: unowned
Child death monitor: unowned
Event monitor: unowned
I/O monitor: unowned
Alarm monitor: unowned
Waiting to be notified:
"clock handler"
Sbrk lock: unowned
Monitor cache lock: unowned
Monitor registry: monitor owner: "AWT-Motif"
Thread Alarm Q:
Abort
--------------------------------------------------------------------
End of output from truss while running SPARC netscape 3.0 on the above URL:
setcontext(0xEF1EF880)
write(22, " 801\00404C0\0 F\0\0\004".., 2044) = 2044
writev(22, 0xEF1EFB60, 2) = 2064
write(22, " 801\00404C0\0 F\0\0\004".., 2044) = 2044
Received signal #14, SIGALRM [caught]
setcontext(0xEF1EF9C0)
writev(22, 0xEF1EFB60, 2) = 2064
write(22, " 801\00404C0\0 F\0\0\004".., 2044) = 2044
writev(22, 0xEF1EFB60, 2) = 2064
Received signal #14, SIGALRM [caught]
setcontext(0xEF1EF9C0)
write(22, " 801\00404C0\0 F\0\0\004".., 2044) = 2044
writev(22, 0xEF1EFB60, 2) = 2064
Incurred fault #6, FLTBOUNDS %pc = 0x001E9708
siginfo: SIGSEGV SEGV_MAPERR addr=0x00000188
Received signal #11, SIGSEGV [caught]
siginfo: SIGSEGV SEGV_MAPERR addr=0x00000188
getpid() = 11453 [11452]
kill(11453, SIGBUS) = 0
Received signal #10, SIGBUS [default]
siginfo: SIGBUS pid=11453 uid=48464
*** process killed ***
miken@cyberia [137]
http://cyberia.corp/public_html/test/colorcir.html
SPARC appletviewer is crashed with the following diagnostics:
miken@cyberia [205] appletviewer colorcir.html
SIGSEGV 11* segmentation violation
si_signo [11]: SIGSEGV 11* segmentation violation
si_errno [0]: Error 0
si_code [1]: SEGV_ACCERR [addr: 0x188]
stackbase=EF0C1000, stackpointer=EF0BED40
Full thread dump:
"Screen Updater" (TID:0xee304640, sys_thread_t:0xef090de0) prio=4
java.lang.Object.wait(Object.java)
sun.awt.ScreenUpdater.nextEntry(ScreenUpdater.java:75)
sun.awt.ScreenUpdater.run(ScreenUpdater.java:95)
"AWT-Motif" (TID:0xee3042d8, sys_thread_t:0xef0c0de0) prio=5 *current thread*
colorcir.paint(colorcir.java:8188)
sun.awt.motif.MComponentPeer.paint(MComponentPeer.java:123)
sun.awt.motif.MComponentPeer.handleExpose(MComponentPeer.java:267)
java.lang.Thread.run(Thread.java)
"AWT-Input" (TID:0xee3042b0, sys_thread_t:0xef0f0de0) prio=5
"thread applet-colorcir.class" (TID:0xee304020, sys_thread_t:0xef430de0) prio=6
java.lang.Object.wait(Object.java)
sun.applet.AppletPanel.getNextEvent(AppletPanel.java:185)
sun.applet.AppletPanel.run(AppletPanel.java:216)
java.lang.Thread.run(Thread.java)
"Finalizer thread" (TID:0xee3003b0, sys_thread_t:0xef460de0) prio=1
"Async Garbage Collector" (TID:0xee300368, sys_thread_t:0xef490de0) prio=1
"Idle thread" (TID:0xee300320, sys_thread_t:0xef4c0de0) prio=0
"clock handler" (TID:0xee3001f8, sys_thread_t:0xef4f0de0) prio=11
"main" (TID:0xee3000a0, sys_thread_t:0x7c378) prio=5
Monitor Cache Dump:
unknown key (key=0xef490de0): monitor owner: "Async Garbage Collector"
sun.awt.motif.MToolkit@EE304298/EE33DA30 (key=0xee304298): unowned
Waiting to be notified:
"AWT-Input"
sun.applet.AppletViewerPanel@EE303E78/EE33D018 (key=0xee303e78): unowned
Waiting to be notified:
"thread applet-colorcir.class"
sun.awt.ScreenUpdater@EE304640/EE33E190 (key=0xee304640): unowned
Waiting to be notified:
"Screen Updater"
Registered Monitor Dump:
Finalize me queue lock: unowned
Waiting to be notified:
"Finalizer thread"
Thread queue lock: unowned
Waiting to be notified:
"main"
Class lock: unowned
Java stack lock: unowned
Code rewrite lock: unowned
Heap lock: unowned
Has finalization queue lock: unowned
Monitor IO lock: unowned
Child death monitor: unowned
Event monitor: unowned
I/O monitor: unowned
Alarm monitor: unowned
Waiting to be notified:
"clock handler"
Sbrk lock: unowned
Monitor cache lock: unowned
Monitor registry: monitor owner: "AWT-Motif"
Thread Alarm Q:
Abort
--------------------------------------------------------------------
End of output from truss while running SPARC netscape 3.0 on the above URL:
setcontext(0xEF1EF880)
write(22, " 801\00404C0\0 F\0\0\004".., 2044) = 2044
writev(22, 0xEF1EFB60, 2) = 2064
write(22, " 801\00404C0\0 F\0\0\004".., 2044) = 2044
Received signal #14, SIGALRM [caught]
setcontext(0xEF1EF9C0)
writev(22, 0xEF1EFB60, 2) = 2064
write(22, " 801\00404C0\0 F\0\0\004".., 2044) = 2044
writev(22, 0xEF1EFB60, 2) = 2064
Received signal #14, SIGALRM [caught]
setcontext(0xEF1EF9C0)
write(22, " 801\00404C0\0 F\0\0\004".., 2044) = 2044
writev(22, 0xEF1EFB60, 2) = 2064
Incurred fault #6, FLTBOUNDS %pc = 0x001E9708
siginfo: SIGSEGV SEGV_MAPERR addr=0x00000188
Received signal #11, SIGSEGV [caught]
siginfo: SIGSEGV SEGV_MAPERR addr=0x00000188
getpid() = 11453 [11452]
kill(11453, SIGBUS) = 0
Received signal #10, SIGBUS [default]
siginfo: SIGBUS pid=11453 uid=48464
*** process killed ***
miken@cyberia [137]