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

Crashes/testsuite failure with golang 1.21 #1597

Open
nileshpatra opened this issue Oct 10, 2023 · 4 comments
Open

Crashes/testsuite failure with golang 1.21 #1597

nileshpatra opened this issue Oct 10, 2023 · 4 comments
Labels
question Further information is requested

Comments

@nileshpatra
Copy link

The following program sample.go triggers an unexpected result

$ go test -vet=off -v -p 4 -timeout 1h github.com/traefik/yaegi github.com/traefik/yaegi/cmd/yaegi github.com/traefik/yaegi/extract github.com/traefik/yaegi/internal/unsafe2 github.com/traefik/yaegi/interp github.com/traefik/yaegi/stdlib github.com/traefik/yaegi/stdlib/syscall github.com/traefik/yaegi/stdlib/unrestricted github.com/traefik/yaegi/stdlib/unsafe

Expected result

All tests passing

Got

runtime: marked free object in span 0x7f24ecbf6c48, elemsize=176 freeindex=1 (bad use of unsafe.Pointer? try -d=checkptr)
0xc000544000 alloc marked  
0xc0005440b0 free  unmarked
0xc000544160 free  unmarked
0xc000544210 free  unmarked
0xc0005442c0 free  unmarked
0xc000544370 free  unmarked
0xc000544420 free  unmarked
0xc0005444d0 free  unmarked
0xc000544580 free  unmarked
0xc000544630 free  unmarked
0xc0005446e0 free  unmarked
0xc000544790 free  marked   zombie
0x000000c000544790:  0x000000c000586120  0x000000c0000e89c0 
0x000000c0005447a0:  0x000000c0000e8780  0x000000c00015c5a0 
0x000000c0005447b0:  0x0000000000000000  0x000000c0000e8960 
0x000000c0005447c0:  0x000000c00034d4a0  0x0000000000000000 
0x000000c0005447d0:  0x0000000000000000  0x0000000000000000 
0x000000c0005447e0:  0x0000000000000000  0x000000c00043bab0 
0x000000c0005447f0:  0x0000000000e6e0a6  0x0000000000000000 
0x000000c000544800:  0x0000000000000000  0x0000000000916400 <net/http.(*persistConn).roundTrip.func2+0x0000000000000000> 
0x000000c000544810:  0x000000c0000e8960  0x000000c0005447e0 
0x000000c000544820:  0x000000c000128d10  0x0000000000000000 
0x000000c000544830:  0x0000000000000000  0x000000c000586120 
0xc000544840 free  marked   zombie
0x000000c000544840:  0x0000000000000000  0x0000000000000000 
0x000000c000544850:  0x000000c0000cf540  0x000000c00034d680 
0x000000c000544860:  0x0000000000000000  0x00000000009163c0 <net/http.(*persistConn).roundTrip.func1+0x0000000000000000> 
0x000000c000544870:  0x000000c0005447f8  0x000000c00015c5a0 
0x000000c000544880:  0x000000c0000cf540  0x000000c0003ec400 
0x000000c000544890:  0x000000c0003ec400  0x000000c0000e89c0 
0x000000c0005448a0:  0x0000000000000001  0x0000000000000000 
0x000000c0005448b0:  0x000000c0000e8960  0x0000000000000000 
0x000000c0005448c0:  0x0000000000000000  0x0000000000000000 
0x000000c0005448d0:  0x0000000000000000  0x000000c0000e89c0 
0x000000c0005448e0:  0x000000c000544838  0x0000000000000000 
0xc0005448f0 free  unmarked
0xc0005449a0 free  unmarked
0xc000544a50 free  unmarked
0xc000544b00 free  unmarked
0xc000544bb0 free  unmarked
0xc000544c60 free  unmarked
0xc000544d10 free  unmarked
0xc000544dc0 free  unmarked
0xc000544e70 free  unmarked
0xc000544f20 free  unmarked
0xc000544fd0 free  unmarked
0xc000545080 free  unmarked
0xc000545130 free  unmarked
0xc0005451e0 free  unmarked
0xc000545290 free  unmarked
0xc000545340 free  unmarked
0xc0005453f0 free  unmarked
0xc0005454a0 free  unmarked
0xc000545550 free  unmarked
0xc000545600 free  unmarked
0xc0005456b0 free  unmarked
0xc000545760 free  unmarked
0xc000545810 free  unmarked
0xc0005458c0 free  unmarked
0xc000545970 free  unmarked
0xc000545a20 free  unmarked
0xc000545ad0 free  unmarked
0xc000545b80 free  unmarked
0xc000545c30 free  unmarked
0xc000545ce0 free  unmarked
0xc000545d90 free  unmarked
0xc000545e40 free  unmarked
0xc000545ef0 free  unmarked
fatal error: found pointer to free object

runtime stack:
runtime.throw({0xe80d7a?, 0xc0005448f0?})
	/usr/lib/go-1.21/src/runtime/panic.go:1077 +0x5c fp=0x7f24eee00b68 sp=0x7f24eee00b38 pc=0x440a3c
runtime.(*mspan).reportZombies(0x7f24ecbf6c48)
	/usr/lib/go-1.21/src/runtime/mgcsweep.go:861 +0x2e5 fp=0x7f24eee00be8 sp=0x7f24eee00b68 pc=0x42ece5
runtime.(*sweepLocked).sweep(0x2030001?, 0x0)
	/usr/lib/go-1.21/src/runtime/mgcsweep.go:644 +0xa88 fp=0x7f24eee00cf0 sp=0x7f24eee00be8 pc=0x42e508
runtime.(*mcentral).uncacheSpan(0x7f24eee00d68?, 0x436046?)
	/usr/lib/go-1.21/src/runtime/mcentral.go:228 +0x98 fp=0x7f24eee00d18 sp=0x7f24eee00cf0 pc=0x41e918
runtime.(*mcache).releaseAll(0x7f2536158f18)
	/usr/lib/go-1.21/src/runtime/mcache.go:291 +0x13c fp=0x7f24eee00d80 sp=0x7f24eee00d18 pc=0x41e37c
runtime.(*mcache).prepareForSweep(0x7f2536158f18)
	/usr/lib/go-1.21/src/runtime/mcache.go:328 +0x35 fp=0x7f24eee00da8 sp=0x7f24eee00d80 pc=0x41e475
runtime.gcMarkTermination.func4.1(0xc00005ef00)
	/usr/lib/go-1.21/src/runtime/mgc.go:1115 +0x25 fp=0x7f24eee00dd0 sp=0x7f24eee00da8 pc=0x46e6e5
runtime.forEachP(0xec7d20)
	/usr/lib/go-1.21/src/runtime/proc.go:1787 +0x124 fp=0x7f24eee00e38 sp=0x7f24eee00dd0 pc=0x4465c4
runtime.gcMarkTermination.func4()
	/usr/lib/go-1.21/src/runtime/mgc.go:1114 +0x1a fp=0x7f24eee00e50 sp=0x7f24eee00e38 pc=0x46e81a
runtime.systemstack()
	/usr/lib/go-1.21/src/runtime/asm_amd64.s:509 +0x4a fp=0x7f24eee00e60 sp=0x7f24eee00e50 pc=0x47614a

Yaegi Version

0.15.1

Additional Notes

Debian bug report: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1052085

@ldez ldez changed the title Crashes/testsuite failure with golang 1.2 Crashes/testsuite failure with golang 1.21 Oct 11, 2023
@ldez
Copy link
Member

ldez commented Oct 11, 2023

Hello,

it's expected because currently, yeagi doesn't support go1.21.

#1587 (comment)

@nileshpatra
Copy link
Author

nileshpatra commented Oct 11, 2023 via email

@ldez ldez added the question Further information is requested label Oct 11, 2023
@nileshpatra
Copy link
Author

Hello. I maintain this package in Debian. The new release cycle is going to start very soon. If we don't fix this before around February 2024 - based on previous timelines, this unfortunately wouldn't be a part of the next stable release.

It would be very cool to have yaegi in the next release, and I do not want to loose this. Hence, I am asking again if your see any possibility to fix this issue anytime soon.

/cc: @ldez

@nileshpatra
Copy link
Author

Looks like I got the timeline wrong. We can forget about the deadline from debian side. I'll simply wait for yaegi to adapt.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants