Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

VM for Squeak32-6.0 and Squeak32-trunk crashes in WebUtils class>md5HashStream: #559

Open
fniephaus opened this issue Jul 7, 2022 · 4 comments

Comments

@fniephaus
Copy link
Member

fniephaus commented Jul 7, 2022

The 32bit VM for Squeak32-6.0 and Squeak32-trunk crashes reliably in WebUtils class>md5HashStream:. The VM seems to work fine locally, so this could be specific to the GitHub Actions environments. As far as I can tell, the CroquetPlugin provides primitiveMD5Transform and is internal and statically linked, so it shouldn't need any dependencies. We didn't catch this before because the VM was only used for trunk builds and they are allowed to fail, which is a bit unfortunate.

Segfault details

Segmentation fault Thu Jul  7 07:31:12 2022
/home/runner/work/smalltalkCI/smalltalkCI/_cache/vms/Squeak32-6.0/sqcogspur32linuxht/lib/squeak/5.0-202206021410-32bit/squeak
Squeak VM version: 5.0-202206021410  Thu Jun  2 15:22:27 UTC 2022 gcc 7 [Production Spur i686 VM]
Built from: CoInterpreter VMMaker.oscog-dtl.3185 uuid: 0e7f07b8-eed6-4362-b223-86c98594ddb9 Jun  2 2022
With: StackToRegisterMappingCogit VMMaker.oscog-mt.3179 uuid: c6fbcb07-2a19-ed4f-8b40-9c119a70882a Jun  2 2022
Revision: VM: 202206021410 runner@fv-az177-404:work/opensmalltalk-vm/opensmalltalk-vm
Date: Thu Jun 2 16:10:44 2022 CommitHash: c9fd365
Plugins: 202206021410 runner@fv-az177-404:work/opensmalltalk-vm/opensmalltalk-vm
Build host: Linux fv-az177-404 5.4.0-1080-azure #83~18.04.2-Ubuntu SMP Thu May 19 18:52:16 UTC 2022 i686 i686 i686 GNU/Linux
plugin path: /home/runner/work/smalltalkCI/smalltalkCI/_cache/vms/Squeak32-6.0/sqcogspur32linuxht/lib/squeak/5.0-202206021410-32bit [default: /home/runner/work/smalltalkCI/smalltalkCI/_cache/vms/Squeak32-6.0/sqcogspur32linuxht/lib/squeak/5.0-202206021410-32bit/]
C stack backtrace & registers:
	eax 0x00000000 ebx 0x56712c60 ecx 0x00000010 edx 0x00000000
	edi 0x00000010 esi 0x00000010 ebp 0x588b3e80 esp 0xffd4e3dc
	eip 0x565b27b1
*/home/runner/work/smalltalkCI/smalltalkCI/_cache/vms/Squeak32-6.0/sqcogspur32linuxht/lib/squeak/5.0-202206021410-32bit/squeak(+0x2b7b1)[0x565b27b1]
/home/runner/work/smalltalkCI/smalltalkCI/_cache/vms/Squeak32-6.0/sqcogspur32linuxht/lib/squeak/5.0-202206021410-32bit/squeak(+0xa13a0)[0x566283a0]
/home/runner/work/smalltalkCI/smalltalkCI/_cache/vms/Squeak32-6.0/sqcogspur32linuxht/lib/squeak/5.0-202206021410-32bit/squeak(+0xa34d3)[0x5662a4d3]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7f93570]
/home/runner/work/smalltalkCI/smalltalkCI/_cache/vms/Squeak32-6.0/sqcogspur32linuxht/lib/squeak/5.0-202206021410-32bit/squeak(+0x2b7b1)[0x565b27b1]
[0x5842469c]

Smalltalk stack dump

0xffd4e470 M WebUtils class>md5HashStream: 0x58da28c0: a(n) WebUtils
0xffd4e48c M WebUtils class>md5Digest: 0x58da28c0: a(n) WebUtils
0xffd4e4b0 M SCISqueakCodeCoverage class>md5Of: 0x5b1aeac0: a(n) SCISqueakCodeCoverage
0xffd4e4dc M SCISqueakCodeCoverage class(SCICodeCoverage class)>coverallsDictFor:in:projectDirectory:coverageValue: 0x5b1aeac0: a(n) SCISqueakCodeCoverage
0xffd4e510 M [] in SCISqueakCodeCoverage>coverallsSourceFilesIn: 0x5c20d5c8: a(n) SCISqueakCodeCoverage
0xffd4e538 M OrderedCollection>collect: 0x58649ee0: a(n) OrderedCollection
0xffd4e558 M [] in SCISqueakCodeCoverage>coverallsSourceFilesIn: 0x5c20d5c8: a(n) SCISqueakCodeCoverage
0xffd4e580 M [] in Array>gather: 0x58650820: a(n) Array
0xffd4e5a4 M Array(SequenceableCollection)>do: 0x58650820: a(n) Array
0xffd4e5c4 M [] in Array>gather: 0x58650820: a(n) Array
0xffd4e5e8 M Array class(SequenceableCollection class)>new:streamContents: 0x58c87970: a(n) Array
0xffd4e608 M Array class(SequenceableCollection class)>streamContents: 0x58c87970: a(n) Array
0xffd4e624 M Array(Collection)>gather: 0x58650820: a(n) Array
0xffd4e648 I SCISqueakCodeCoverage(SCICodeCoverage)>coverallsSourceFilesIn: 0x5c20d5c8: a(n) SCISqueakCodeCoverage
0xffd4e678 I SCICoverallsWriter>export:in: 0x5864a738: a(n) SCICoverallsWriter
0xffd4e6a0 I SCISqueakCodeCoverage(SCICodeCoverage)>exportResultsIn: 0x5c20d5c8: a(n) SCISqueakCodeCoverage
0xffd4e6c4 I SCISqueakCodeCoverage class(SCICodeCoverage class)>run:spec:in: 0x5b1aeac0: a(n) SCISqueakCodeCoverage
...

Example build: https://github.com/hpi-swa/smalltalkCI/runs/7228855671?check_suite_focus=true

@fniephaus
Copy link
Member Author

I can reproduce this locally with bin/smalltalkci -s Squeak32-6.0 --self-test. According to GDB, the segfault happens in primitiveConstantFill.

@fniephaus
Copy link
Member Author

Temporarily ignoring failures when self-testing with Squeak32-6.0 (b35b5c5).

@edoneel
Copy link

edoneel commented Jul 7, 2022

Just to put a limit on which 32 bit systems, it is ok on Arm32.

WebUtils md5HashStream: (ReadStream on: 'SqueakV60.sources') #[129 242 234 199 40 205 203 41 28 160 66 232 45 13 31 28]

@fniephaus
Copy link
Member Author

GitHub Actions doesn't support arm64 yet, only via self-hosted runners. Anyway, Squeak32-6.0 builds are supported as of today and will work unless you call WebUtils>>#md5HashStream:.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants