Hmm... Clang seems to be part of the problem. A gcc build on Ubuntu 18.04 did not crash.
squeak.cog.spur_win64x64 (Windows 10 21H2) Clang 13.0.0 - CRASH Clang 8.0.1 - CRASH
squeak.cog.spur_linux64x64 (Ubuntu 18.04) gcc 7.5.0 - OK (with some failing tests) Clang 9.0.0 - CRASH Am 10.12.2021 14:40:26 schrieb Marcel Taeumel marcel.taeumel@hpi.de: Hi Levente --
Windows VM crashes, too. But at a different test: #testHMACSH512Spec.
And the filename for the crash-dmp is broken.
Best, Marcel
Am 10.12.2021 13:43:45 schrieb Levente Uzonyi leves@caesar.elte.hu:
Hi Marcel,
The SHA2 plugin (primitiveSHA256ProcessBufferUpdatingHash) still crashes with that VM on 64-bit linux. The plugin code works with earlier versions, so it's either a VM change of the past 6-9 months, a code generator bug or a compiler bug IMO.
To reproduce the crash, evaluate the following:
Installer ss project: 'Registers'; install: 'Registers-Core'. Installer ss project: 'Cryptography'; addPackage: 'CryptographyHashing'; addPackage: 'CryptographyHashingTests'; install. (Smalltalk classNamed: #SHA256WithSHA2PluginTest) run: #testInputs
Interestingly another test (SHA512WithSHA2PluginTest) using a very similar primitive but with DoubleWords works fine. So perhaps it's an alignment issue.
Assert and debug VMs do not have that issue, so it's not that easy to debug it. What I found was that buffer's value at https://github.com/OpenSmalltalk/opensmalltalk-vm/blob/99f1116c0f7a4ba9a0bf8... was not the expected pointer, so the subsequent copying into it resulted in segmentation fault.
Levente