-
Notifications
You must be signed in to change notification settings - Fork 18.8k
Closed
Labels
BugReportIssues describing a possible bug in the Go implementation.Issues describing a possible bug in the Go implementation.FixPendingIssues that have a fix which has not yet been reviewed or submitted.Issues that have a fix which has not yet been reviewed or submitted.OS-Linuxarch-mipscompiler/runtimeIssues related to the Go compiler and/or runtime.Issues related to the Go compiler and/or runtime.
Milestone
Description
In #77621 (comment) @wwqgtxx reports:
We encountered a problem on the MIPSLE platform running Linux 3.4, where a panic occurred during program startup:
futexwakeup addr=0x586232c returned -89
SIGSEGV: segmentation violation
PC=0x816f0 m=0 sigcode=128 addr=0x0
goroutine 0 gp=0x273ada0 m=0 mp=0x273ba00 [idle]:
runtime.futexwakeup(0x586232c, 0x1)
runtime/os_linux.go:98 +0x84 fp=0x7fcd8240 sp=0x7fcd8214 pc=0x816f0
runtime.semawakeup(...)
runtime/lock_futex.go:161
runtime.unlock2Wake(0x273ee7c, 0x0, 0x0)
runtime/lock_spinbit.go:461 +0x2f0 fp=0x7fcd825c sp=0x7fcd8240 pc=0x3fd0c
runtime.unlock2(0x273ee7c)
runtime/lock_spinbit.go:314 +0xc4 fp=0x7fcd8278 sp=0x7fcd825c pc=0x3f7a8
runtime.unlockWithRank(...)
runtime/lockrank_off.go:35
runtime.unlock(...)
runtime/lock_spinbit.go:261
runtime.mcommoninit(0x5862808, 0x2)
runtime/proc.go:1030 +0x298 fp=0x7fcd829c sp=0x7fcd8278 pc=0x8beb0
runtime.allocm(0x5852f08, 0x18b4128, 0x2)
runtime/proc.go:2326 +0x128 fp=0x7fcd82c8 sp=0x7fcd829c pc=0x8f2ec
runtime.newm(0x18b4128, 0x5852f08, 0x2)
runtime/proc.go:2870 +0x70 fp=0x7fcd82e4 sp=0x7fcd82c8 pc=0x901a8
runtime.startm(0x5852f08, 0x1, 0x0)
runtime/proc.go:3096 +0x1cc fp=0x7fcd8310 sp=0x7fcd82e4 pc=0x90a88
runtime.wakep()
runtime/proc.go:3243 +0x1b4 fp=0x7fcd8330 sp=0x7fcd8310 pc=0xd7b4c
runtime.newproc.func1()
runtime/proc.go:5305 +0x94 fp=0x7fcd8348 sp=0x7fcd8330 pc=0x97d00
runtime.systemstack(0x73ada0)
runtime/asm_mipsx.s:186 +0x7c fp=0x7fcd834c sp=0x7fcd8348 pc=0xdeb10
goroutine 1 gp=0x5802148 m=0 mp=0x273ba00 [running, locked to thread]:
runtime.systemstack_switch()
runtime/asm_mipsx.s:147 +0x8 fp=0x585e670 sp=0x585e66c pc=0xdea74
runtime.newproc(0x18b3fc4)
runtime/proc.go:5298 +0x60 fp=0x585e688 sp=0x585e670 pc=0x97c5c
runtime.init.6()
runtime/proc.go:363 +0x44 fp=0x585e690 sp=0x585e688 pc=0x89e84
runtime.doInit1(0x2665f40)
runtime/proc.go:8103 +0x13c fp=0x585e7b0 sp=0x585e690 pc=0x9fa38
runtime.doInit(...)
runtime/proc.go:8070
runtime.main()
runtime/proc.go:203 +0x168 fp=0x585e7ec sp=0x585e7b0 pc=0x8991c
runtime.goexit({})
runtime/asm_mipsx.s:657 +0x4 fp=0x585e7ec sp=0x585e7ec pc=0xe0a18
goroutine 2 gp=0x5802508 m=nil [runnable]:
runtime.forcegchelper()
runtime/proc.go:366 fp=0x585efec sp=0x585efec pc=0x89e94
runtime.goexit({})
runtime/asm_mipsx.s:657 +0x4 fp=0x585efec sp=0x585efec pc=0xe0a18
created by runtime.init.6 in goroutine 1
runtime/proc.go:363 +0x44
r0 0x0 r1 0x1006
r2 0x1006 r3 0x6
r4 0x6 r5 0x1
r6 0x1 r7 0xffffff00
r8 0x1 r9 0x1
r10 0x1 r11 0x0
r12 0xffffffe2 r13 0x0
r14 0xffffffe1 r15 0x0
r16 0xbe2e5d27 r17 0xc5e1527a
r18 0xa561bdf7 r19 0x8b6cf700
r20 0x3f7f6e35 r21 0xcf38c650
r22 0x0 r23 0xffffffa0
r24 0xfe04629 r25 0x522c8331
r26 0x0 r27 0x0
r28 0xc2fa2760 r29 0x7fcd8214
r30 0x273ada0 r31 0x816e8
pc 0x816f0 link 0x816e8
lo 0x0 hi 0x0
Commenting out the calls to the timer_settime64 and futex_time64 functions in the runtime resolved the problem.
This issue did not appear in versions of Go prior to 1.26, and according to https://go.dev/wiki/MinimumRequirements, Linux kernel version 3.4 is still supported. Therefore, we believe this issue is not limited to older Android platforms and is a bug that needs fixing.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
BugReportIssues describing a possible bug in the Go implementation.Issues describing a possible bug in the Go implementation.FixPendingIssues that have a fix which has not yet been reviewed or submitted.Issues that have a fix which has not yet been reviewed or submitted.OS-Linuxarch-mipscompiler/runtimeIssues related to the Go compiler and/or runtime.Issues related to the Go compiler and/or runtime.
Type
Projects
Status
Done