Opened 9 years ago

Closed 9 years ago

#81 closed defect (fixed)

JAlbum crash after Drag and Drop operation

Reported by: Michaelhz Owned by:
Priority: major Milestone: RC2
Component: general Version: 1.6.0-b19 RC
Severity: low Keywords:


Dragging a jpg file on the top window of JAlbum Main Window crashes JVM:
[C:\programs\JAlbum]java.exe -jar JAlbum.jar
# A fatal error has been detected by the Java Runtime Environment:
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x13e9ca55, pid=256, tid=167772
# JRE version: 6.0-b19
# Java VM: OpenJDK Client VM (16.0-b13 mixed mode os2-x86 )
# Problematic frame:
# C [SHELL32+0xca55]
# An error report file with more information is saved as:
# C:\programs\JAlbum\hs_err_pid256.log
The process has stopped. The software diagnostic
code (exception code) is 0000.

Attachments (1)

hs_err_pid256.log (1.8 KB) - added by Michaelhz 9 years ago.
log file from crash

Download all attachments as: .zip

Change History (4)

Changed 9 years ago by Michaelhz

Attachment: hs_err_pid256.log added

log file from crash

comment:1 Changed 9 years ago by dmik

Milestone: GA

I can confirm this.

comment:2 Changed 9 years ago by dmik

The problem is really strange. Someone is corrupting the stack during DnD as I get weird values of variables and such. The crash place also randomly changes as I add/remove printf lines.

comment:3 Changed 9 years ago by dmik

Resolution: fixed
Status: newclosed

Turned out to be an Odin bug. A really fancy one: Odin headers defined APIENTRY as an OS/2 API _System calling convention (where the caller cleans the stack after a call) while this define is used by some Win32 APIs (where the calling convention is actually stdcall which implies that the stack is to be cleaned up by the callee). As a result, Java performed a DragQueryFile?() call using the _System calling convention when the function is stdcall which further resulted into a double stack cleanup after each DragQueryFile?() call and therefore completely messed the stack causing these strange failures I saw.

Fixed in Odin's r 21584.

Note: See TracTickets for help on using tickets.