9.1: Sending #isWeak or #isInFixedSpace to Booleans crashes 64-bit VM

29 views
Skip to first unread message

Hans-Martin Mosner

unread,
Feb 4, 2020, 5:09:37 AM2/4/20
to va-sma...@googlegroups.com
Hello,
today I found that 9.1 64 bit VM can be crashed by sending #isWeak or #isInFixedSpace to true or false (other primitives in that region might be affected as well).

Most likely these objects have object pointers that are not memory addresses, but the primitives don't check for that.

Since I did not switch to 9.2 yet, I did not test this with the 9.2 VM.

Cheers,
Hans-Martin

(update: this affects SmallIntegers, too, probably all immediate objects)

Wayne Johnston

unread,
Feb 4, 2020, 7:21:40 AM2/4/20
to VA Smalltalk
"true isWeak" causes GPF on my 9.2 32-bit image on Windows.

Seth Berman

unread,
Feb 4, 2020, 8:19:47 AM2/4/20
to VA Smalltalk
Hi All,

I'll hand this off to the vm team.
I see that things work as expected in 9.2 64-bit.
And the vm code has the appropriate checks in it...so there must be something strange with the codegen for 9.2 32-bit.
Thanks for reporting.
I'll report back when I have an answer.

-Seth

Seth Berman

unread,
Feb 4, 2020, 9:43:10 AM2/4/20
to VA Smalltalk
Hi All,

Small update.  I can repeat in VAST 9.2 64-bit.
As I said, we will figure out what is happening and report back

- Seth

Seth Berman

unread,
Feb 4, 2020, 12:56:52 PM2/4/20
to VA Smalltalk
Hi All,

We have made the appropriate adjustments to primitives VMprObjectIsFixed and VMprObjectIsWeak
and it will be in the forthcoming 9.2.1 patch which is scheduled for this month.

Thank you for reporting.

-Seth
Reply all
Reply to author
Forward
0 new messages