[squeak-dev] [Vm-dev] Next Release Candidate?

Bruce O'Neel bruce.oneel at pckswarms.ch
Fri Dec 10 14:11:54 UTC 2021


Ugg Groan.

Given it is Clang, which is agressive on taking the undefined parts of
the C standards as undefined, combined with the debug ones not
crashing means that there is probably some code that looks ok but is
actually taking advantage of something that is not defined in C.

We could try turning off optimization for this plugin but that is a
hack and not a fix.

I might get lucky and see if I can scare some sensible  message out
of Clang about what it thinks is undefined.

cheers

bruce

On 2021-12-10T15:06:41.000+01:00, Marcel Taeumel
<marcel.taeumel at hpi.de> wrote:

> 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 at hpi.de>:
>>  
>>   Hi Levente --
>>  
>>  Windows VM crashes, too. But at a different test:
>>  #testHMACSH512Spec.
>>  
>>  <image.png>
>>  
>>  And the filename for the crash-dmp is broken.
>>  
>>  Best,
>>  Marcel
>>  
>>>   Am 10.12.2021 13:43:45 schrieb Levente Uzonyi
>>>   <leves at 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/99f1116c0f7a4ba9a0bf88cf7deb276325aa2d79/src/plugins/SHA2Plugin/SHA2Plugin.c#L277
>>>   was not the expected pointer, so the subsequent copying into it
>>>   resulted 
>>>   in segmentation fault.
>>>   
>>>   Levente

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20211210/9d7a7d5e/attachment.html>


More information about the Squeak-dev mailing list