Hi Eliot, hi all --

VM 202112111958 is still crashing on Windows 10 (64-bit). File name for crash dump still with Chinese characters :-O

(Smalltalk classNamed: #CryptoHashFunctionTest) run: #testHMACSHA512Spec

---------------------------
Fatal Squeak VM error
---------------------------
Sorry but the Squeak VM has crashed.

Exception code:    c0000005
Exception address: 0000000067b81940
Current byte code: -1
Primitive index:   0

Crashed in the VM thread

This information will be stored in the file

with a complete stack dump
---------------------------
OK   
---------------------------

Best,
Marcel

Am 12.12.2021 19:17:30 schrieb Bruce O'Neel <bruce.oneel@pckswarms.ch>:

Hi,

Thanks very much!

This version:

and

Date: Sat Dec 11 11:58:58 2021 CommitHash: 97b4903b4


and ran this test:

Installer ss
project: 'Registers';
install: 'Registers-Core'.
Installer ss
project: 'Cryptography';
addPackage: 'CryptographyHashing';
addPackage: 'CryptographyHashingTests';
install.
(Smalltalk classNamed: #SHA256WithSHA2PluginTest) run: #testInputs
and 

Linux64x64 had no crashes, but a few expected failures.
Linux64ARMv8 had no crashes but some unexpected test failures
Linux32ArmV6 had no crashes but some unexpected test failures.

So thanks, this bug seems squashed.

cheers

bruce



On 2021-12-11T21:02:23.000+01:00, Eliot Miranda <eliot.miranda@gmail.com> wrote:
Hi Both,

     see commit 97b4903b4b88f22c1bd11760f107852c63f9db40
Author: Eliot Miranda <eliot.miranda@gmail.com>
Date:   Sat Dec 11 11:58:58 2021 -0800

    src/plugins/SHA2Plugin/SHA2Plugin.c as per CryptographyPlugins-eem.24

    Fix crashes in primitiveSHA256ProcessBufferUpdatingHash when compiling with
    Clang on x86_64 due to SSE instructions which require 128-bit stack alignment.

I need to know about any other such crashes pronto.


On Fri, Dec 10, 2021 at 4:43 AM Levente Uzonyi <leves@caesar.elte.hu> wrote:
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/99f1116c0f7a4ba9a0bf88cf7deb276325aa2d79/src/plugins/SHA2Plugin/SHA2Plugin.c#L277
was not the expected pointer, so the subsequent copying into it resulted
in segmentation fault.


Levente





--
_,,,^..^,,,_
best, Eliot