Bug 1995835 - golang 1.17 regression: SIGILL: illegal instruction when running testsuite of golang-github-klauspost-compress
Summary: golang 1.17 regression: SIGILL: illegal instruction when running testsuite of...
Keywords:
Status: CLOSED EOL
Alias: None
Product: Fedora
Classification: Fedora
Component: golang
Version: 36
Hardware: s390x
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Alejandro Sáez Morollón
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: ZedoraTracker
TreeView+ depends on / blocked
 
Reported: 2021-08-19 21:16 UTC by Dominik 'Rathann' Mierzejewski
Modified: 2023-05-25 15:32 UTC (History)
8 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2023-05-25 15:32:42 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
failed build log (13.40 KB, text/plain)
2021-08-19 21:16 UTC, Dominik 'Rathann' Mierzejewski
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Github klauspost compress issues 422 0 None None None 2021-08-19 21:16:59 UTC

Description Dominik 'Rathann' Mierzejewski 2021-08-19 21:16:59 UTC
Created attachment 1815819 [details]
failed build log

Description of problem:
When running the testsuite of golang-github-klauspost-compress, I'm getting a crash with SIGILL in compress/zip test on s390x only. The same test passes on F35 with golang 1.16.6, so this is a regression in golang 1.17.

Version-Release number of selected component (if applicable):
1.17-2.fc36.s390x

How reproducible:
Always.

Steps to Reproduce:
1. koji build --arch=s390x rawhide git+https://src.fedoraproject.org/rpms/golang-github-klauspost-compress.git#fd9526aa396241966d31112cc6accf4929c08559

Actual results:
Build fails when running the testsuite:
...
github.com/klauspost/compress/zip
SIGILL: illegal instruction
PC=0x2aa0e131d4f m=3 sigcode=2
instruction bytes: 0x72 0x60 0x0 0x0 0xd 0xc2 0xe 0x0 0x0 0x0 0x40 0xa7 0x9 0x0 0x0 0xb9
goroutine 0 [idle]:
runtime.(*pallocData).findScavengeCandidate(0x3ff5dfef680, 0x108, 0x1, 0x1)
	/usr/lib/golang/src/runtime/mgcscavenge.go:894 +0x17f
runtime.(*pageAlloc).scavengeOne(0x2aa0e3aee88, {{0xc003400000}, {0xc003612000}}, 0x1000, 0x1)
	/usr/lib/golang/src/runtime/mgcscavenge.go:618 +0x14a
runtime.(*pageAlloc).scavenge(0x2aa0e3aee88, 0x1000, 0x1)
	/usr/lib/golang/src/runtime/mgcscavenge.go:413 +0x66
runtime.bgscavenge.func2()
	/usr/lib/golang/src/runtime/mgcscavenge.go:304 +0xc0
runtime.systemstack()
	/usr/lib/golang/src/runtime/asm_s390x.s:276 +0x6c
goroutine 4 [running]:
runtime.systemstack_switch()
	/usr/lib/golang/src/runtime/asm_s390x.s:239 +0x10 fp=0xc00003bf80 sp=0xc00003bf78 pc=0x2aa0e17c0f0
runtime.bgscavenge()
	/usr/lib/golang/src/runtime/mgcscavenge.go:292 +0x14c fp=0xc00003bfd8 sp=0xc00003bf80 pc=0x2aa0e13083c
runtime.goexit()
	/usr/lib/golang/src/runtime/asm_s390x.s:755 +0x2 fp=0xc00003bfd8 sp=0xc00003bfd8 pc=0x2aa0e17e3f2
created by runtime.gcenable
	/usr/lib/golang/src/runtime/mgc.go:182 +0x88
goroutine 1 [chan receive]:
testing.tRunner.func1(0xc000086ea0)
	/usr/lib/golang/src/testing/testing.go:1225 +0x4b8
testing.tRunner(0xc000086ea0, 0xc0000a3d50)
	/usr/lib/golang/src/testing/testing.go:1265 +0x14c
testing.runTests(0xc0000ae018, {0x2aa0e3717e0, 0x22, 0x22}, {0xc03fb3fe5200e9f6, 0x8bb2d02507, 0x2aa0e38b420})
	/usr/lib/golang/src/testing/testing.go:1596 +0x4c2
testing.(*M).Run(0xc0000fa000)
	/usr/lib/golang/src/testing/testing.go:1504 +0x514
main.main()
	_testmain.go:119 +0x190
goroutine 293 [runnable]:
unicode/utf8.DecodeRuneInString({0xc0000dd807, 0xa7f8})
	/usr/lib/golang/src/unicode/utf8/utf8.go:199 +0x276
github.com/klauspost/compress/zip.detectUTF8({0xc0000d8000, 0xffff})
	/builddir/build/BUILD/compress-1.13.4/_build/src/github.com/klauspost/compress/zip/writer.go:254 +0x82
github.com/klauspost/compress/zip.(*Writer).CreateHeader(0xc000064060, 0xc0008ec630)
	/builddir/build/BUILD/compress-1.13.4/_build/src/github.com/klauspost/compress/zip/writer.go:306 +0x154
github.com/klauspost/compress/zip.TestZip64LargeDirectory.func1.1(0xc000064060)
	/builddir/build/BUILD/compress-1.13.4/_build/src/github.com/klauspost/compress/zip/zip_test.go:532 +0x210
github.com/klauspost/compress/zip.generatesZip64(0xc000116820, 0xc00105a000)
	/builddir/build/BUILD/compress-1.13.4/_build/src/github.com/klauspost/compress/zip/zip_test.go:456 +0x1b6
github.com/klauspost/compress/zip.TestZip64LargeDirectory.func2(0xc000116820)
	/builddir/build/BUILD/compress-1.13.4/_build/src/github.com/klauspost/compress/zip/zip_test.go:548 +0x66
testing.tRunner(0xc000116820, 0xc001168060)
	/usr/lib/golang/src/testing/testing.go:1259 +0xf8
created by testing.(*T).Run
	/usr/lib/golang/src/testing/testing.go:1306 +0x3da
goroutine 254 [chan receive]:
testing.tRunner.func1(0xc00015ba00)
	/usr/lib/golang/src/testing/testing.go:1225 +0x4b8
testing.tRunner(0xc00015ba00, 0x2aa0e2b7878)
	/usr/lib/golang/src/testing/testing.go:1265 +0x14c
created by testing.(*T).Run
	/usr/lib/golang/src/testing/testing.go:1306 +0x3da
goroutine 294 [runnable]:
unicode/utf8.DecodeRuneInString({0xc0001718eb, 0xa714})
	/usr/lib/golang/src/unicode/utf8/utf8.go:199 +0x276
github.com/klauspost/compress/zip.detectUTF8({0xc00016c000, 0xffff})
	/builddir/build/BUILD/compress-1.13.4/_build/src/github.com/klauspost/compress/zip/writer.go:254 +0x82
github.com/klauspost/compress/zip.(*Writer).CreateHeader(0xc000064240, 0xc000e7ccf0)
	/builddir/build/BUILD/compress-1.13.4/_build/src/github.com/klauspost/compress/zip/writer.go:306 +0x154
github.com/klauspost/compress/zip.TestZip64LargeDirectory.func1.1(0xc000064240)
	/builddir/build/BUILD/compress-1.13.4/_build/src/github.com/klauspost/compress/zip/zip_test.go:532 +0x210
github.com/klauspost/compress/zip.generatesZip64(0xc0001169c0, 0xc0000ae030)
	/builddir/build/BUILD/compress-1.13.4/_build/src/github.com/klauspost/compress/zip/zip_test.go:456 +0x1b6
github.com/klauspost/compress/zip.TestZip64LargeDirectory.func3(0xc0001169c0)
	/builddir/build/BUILD/compress-1.13.4/_build/src/github.com/klauspost/compress/zip/zip_test.go:554 +0x66
testing.tRunner(0xc0001169c0, 0xc0011680a0)
	/usr/lib/golang/src/testing/testing.go:1259 +0xf8
created by testing.(*T).Run
	/usr/lib/golang/src/testing/testing.go:1306 +0x3da
r0   0x37	r1   0xff
r2   0x1	r3   0xfffffffffffffff7
r4   0x4	r5   0x109
r6   0x37	r7   0x3ff5dfef6e0
r8   0x3ff5dfef000	r9   0x680
r10  0x0	r11  0x3ff5d7ed870
r12  0xc00003bfc0	r13  0xc000000ea0
r14  0x2aa0e131d1e	r15  0x3ff5d7eccc0
pc   0x2aa0e131d4f	link 0x2aa0e131d1e
exit status 2
FAIL	github.com/klauspost/compress/zip	26.488s
...

Expected results:
All tests pass.

Additional info:
Failed koji scratch build: https://koji.fedoraproject.org/koji/taskinfo?taskID=74137789 .

Comment 1 Dan Horák 2021-08-20 10:34:34 UTC
Perhaps golang started to use the new DFLTCC instruction, which is available only in z15+ CPUs, but we build on z13 ...

Comment 2 Dan Horák 2021-08-20 10:55:06 UTC
for the record, can't reproduce locally on a z14

Comment 3 Dominik 'Rathann' Mierzejewski 2021-08-20 10:59:47 UTC
Yes, it turns out it's as reproducible as I thought. compress upstream pointed out it happens in garbage collection, so it may be a bit random.

Comment 4 Dominik 'Rathann' Mierzejewski 2021-08-20 11:00:17 UTC
*sigh* ... it's NOT as reproducible as I thought.

Comment 5 Ben Cotton 2022-02-08 21:44:21 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 36 development cycle.
Changing version to 36.

Comment 6 Alejandro Sáez Morollón 2022-03-28 10:28:01 UTC
Fedora 36 now has Go 1.18, is this still happening with 1.18?

Comment 7 Dominik 'Rathann' Mierzejewski 2022-03-28 10:55:34 UTC
I've had a few random crashes when building the latest 1.15.1 release, but nothing consistently reproducible. I guess we can close this. I'll open a new bug if/when I find a reproducible case.

Comment 8 Ben Cotton 2023-04-25 16:43:48 UTC
This message is a reminder that Fedora Linux 36 is nearing its end of life.
Fedora will stop maintaining and issuing updates for Fedora Linux 36 on 2023-05-16.
It is Fedora's policy to close all bug reports from releases that are no longer
maintained. At that time this bug will be closed as EOL if it remains open with a
'version' of '36'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, change the 'version' 
to a later Fedora Linux version. Note that the version field may be hidden.
Click the "Show advanced fields" button if you do not see it.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora Linux 36 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora Linux, you are encouraged to change the 'version' to a later version
prior to this bug being closed.

Comment 9 Ludek Smid 2023-05-25 15:32:42 UTC
Fedora Linux 36 entered end-of-life (EOL) status on 2023-05-16.

Fedora Linux 36 is no longer maintained, which means that it
will not receive any further security or bug fix updates. As a result we
are closing this bug.

If you can reproduce this bug against a currently maintained version of Fedora Linux
please feel free to reopen this bug against that version. Note that the version
field may be hidden. Click the "Show advanced fields" button if you do not see
the version field.

If you are unable to reopen this bug, please file a new report against an
active release.

Thank you for reporting this bug and we are sorry it could not be fixed.


Note You need to log in before you can comment on or make changes to this bug.