ARM v5 crash
Open
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 16.6k
- Forks
- 1.6k
- PR merge metrics
- No merged PRs in 30d
Description
Issue
# ./chisel server -p 9999 -v
runtime: epollwait on fd 3 failed with 38
fatal error: runtime: netpoll failed
runtime stack:
runtime.throw({0x4e9ce7, 0x17})
runtime/panic.go:1077 +0x4c fp=0xc37710 sp=0xc376fc pc=0x52f64
runtime.netpoll(0x0)
runtime/netpoll_epoll.go:122 +0x444 fp=0xc37f78 sp=0xc37710 pc=0x4eb18
runtime.sysmon()
runtime/proc.go:5599 +0x4b4 fp=0xc37fd8 sp=0xc37f78 pc=0x6367c
runtime.mstart1()
runtime/proc.go:1600 +0x7c fp=0xc37fe8 sp=0xc37fd8 pc=0x59504
runtime.mstart0()
runtime/proc.go:1557 +0x7c fp=0xc37ffc sp=0xc37fe8 pc=0x59478
runtime.mstart()
runtime/asm_arm.s:210 +0x8 fp=0xc38000 sp=0xc37ffc pc=0x8c388
goroutine 1 [runnable]:
runtime.asyncPreempt2()
runtime/preempt.go:307 +0x38 fp=0xc336f4 sp=0xc336e8 pc=0x5492c
runtime.asyncPreempt()
runtime/preempt_arm.s:44 +0x98 fp=0xc337b0 sp=0xc336f4 pc=0x8eacc
math/bits.Mul64(0x2c9c5501db260cbe, 0xb675d293b2660fbf)
math/bits/bits.go:482 +0x1c fp=0xc337bc sp=0xc337b4 pc=0x97000
crypto/internal/nistec/fiat.p256Mul(0xc33b64, 0xc7f980, 0xc7e160)
crypto/internal/nistec/fiat/p256_fiat64.go:101 +0x11c fp=0xc33a74 sp=0xc337bc pc=0x147f98
crypto/internal/nistec/fiat.(*P256Element).Mul(...)
crypto/internal/nistec/fiat/p256.go:113
crypto/internal/nistec.(*P256Point).Add(0xc0cb70, 0xc0cb60, 0xc0c760)
crypto/internal/nistec/p256.go:221 +0x4c fp=0xc33b84 sp=0xc33a74 pc=0x181d64
crypto/internal/nistec.(*P256Point).ScalarBaseMult.(*P256Point).generatorTable.func1()
crypto/internal/nistec/p256.go:401 +0x164 fp=0xc33ba4 sp=0xc33b84 pc=0x18b07c
sync.(*Once).doSlow(0x8252a0, 0x50a13c)
sync/once.go:74 +0xb8 fp=0xc33bcc sp=0xc33ba4 pc=0xace80
sync.(*Once).Do(0x8252a0, 0x50a13c)
sync/once.go:65 +0x40 fp=0xc33bd8 sp=0xc33bcc pc=0xacdb8
crypto/internal/nistec.(*P256Point).generatorTable(...)
crypto/internal/nistec/p256.go:395
crypto/internal/nistec.(*P256Point).ScalarBaseMult(0xc0c750, {0xc7e140, 0x20, 0x20})
crypto/internal/nistec/p256.go:418 +0x34 fp=0xc33cd4 sp=0xc33bd8 pc=0x183490
crypto/ecdsa.randomPoint[...](0xc018e0, {0x585b98, 0xc72168})
crypto/ecdsa/ecdsa.go:236 +0x320 fp=0xc33d18 sp=0xc33cd4 pc=0x1d104c
crypto/ecdsa.generateNISTEC[...](0xc018e0, {0x585b98, 0xc72168})
crypto/ecdsa/ecdsa.go:185 +0x38 fp=0xc33d58 sp=0xc33d18 pc=0x1d1148
crypto/ecdsa.GenerateKey({0x587a8c, 0x80bf08}, {0x585b98, 0xc72168})
crypto/ecdsa/ecdsa.go:174 +0x240 fp=0xc33d7c sp=0xc33d58 pc=0x1cc78c
github.com/jpillora/chisel/share/ccrypto.seed2PrivateKey({0x0, 0x0})
github.com/jpillora/chisel/share/ccrypto/keys_helpers.go:47 +0x60 fp=0xc33da0 sp=0xc33d7c pc=0x3be6a8
github.com/jpillora/chisel/share/ccrypto.Seed2PEM({0x0, 0x0})
github.com/jpillora/chisel/share/ccrypto/keys_helpers.go:28 +0x24 fp=0xc33dbc sp=0xc33da0 pc=0x3be534
github.com/jpillora/chisel/server.NewServer(0xc78a80)
github.com/jpillora/chisel/server/server.go:102 +0x67c fp=0xc33ee8 sp=0xc33dbc pc=0x449090
main.server({0xc16070, 0x3, 0x4})
github.com/jpillora/chisel/main.go:244 +0xb34 fp=0xc33f64 sp=0xc33ee8 pc=0x44d2f8
main.main()
github.com/jpillora/chisel/main.go:61 +0x32c fp=0xc33fa0 sp=0xc33f64 pc=0x44c5dc
runtime.main()
runtime/proc.go:267 +0x338 fp=0xc33fec sp=0xc33fa0 pc=0x56388
runtime.goexit()
runtime/asm_arm.s:859 +0x4 fp=0xc33fec sp=0xc33fec pc=0x8df84
goroutine 2 [force gc (idle)]:
runtime.gopark(0x50998c, 0x812ea0, 0x11, 0x14, 0x1)
runtime/proc.go:398 +0x104 fp=0xc24fd4 sp=0xc24fc0 pc=0x56920
runtime.goparkunlock(...)
runtime/proc.go:404
runtime.forcegchelper()
runtime/proc.go:322 +0xe4 fp=0xc24fec sp=0xc24fd4 pc=0x5675c
runtime.goexit()
runtime/asm_arm.s:859 +0x4 fp=0xc24fec sp=0xc24fec pc=0x8df84
created by runtime.init.5 in goroutine 1
runtime/proc.go:310 +0x1c
goroutine 3 [GC sweep wait]:
runtime.gopark(0x50998c, 0x8136a0, 0xc, 0x14, 0x1)
runtime/proc.go:398 +0x104 fp=0xc257c4 sp=0xc257b0 pc=0x56920
runtime.goparkunlock(...)
runtime/proc.go:404
runtime.bgsweep(0xc42000)
runtime/mgcsweep.go:280 +0xa8 fp=0xc257e4 sp=0xc257c4 pc=0x3e400
runtime.gcenable.func1()
runtime/mgc.go:200 +0x28 fp=0xc257ec sp=0xc257e4 pc=0x2ddac
runtime.goexit()
runtime/asm_arm.s:859 +0x4 fp=0xc257ec sp=0xc257ec pc=0x8df84
created by runtime.gcenable in goroutine 1
runtime/mgc.go:200 +0x74
goroutine 4 [GC scavenge wait]:
runtime.gopark(0x50998c, 0x8139a8, 0xd, 0x14, 0x2)
runtime/proc.go:398 +0x104 fp=0xc25fb4 sp=0xc25fa0 pc=0x56920
runtime.goparkunlock(...)
runtime/proc.go:404
runtime.(*scavengerState).park(0x8139a8)
runtime/mgcscavenge.go:425 +0x68 fp=0xc25fc8 sp=0xc25fb4 pc=0x3b028
runtime.bgscavenge(0xc42000)
runtime/mgcscavenge.go:653 +0x3c fp=0xc25fe4 sp=0xc25fc8 pc=0x3b8f8
runtime.gcenable.func2()
runtime/mgc.go:201 +0x28 fp=0xc25fec sp=0xc25fe4 pc=0x2dd58
runtime.goexit()
runtime/asm_arm.s:859 +0x4 fp=0xc25fec sp=0xc25fec pc=0x8df84
created by runtime.gcenable in goroutine 1
runtime/mgc.go:201 +0xbc
goroutine 5 [finalizer wait]:
runtime.gopark(0x509830, 0x824e94, 0x10, 0x14, 0x1)
runtime/proc.go:398 +0x104 fp=0xc26788 sp=0xc26774 pc=0x56920
runtime.runfinq()
runtime/mfinal.go:193 +0x110 fp=0xc267ec sp=0xc26788 pc=0x2cc00
runtime.goexit()
runtime/asm_arm.s:859 +0x4 fp=0xc267ec sp=0xc267ec pc=0x8df84
created by runtime.createfing in goroutine 1
runtime/mfinal.go:163 +0x5c
Architecture
# cat /proc/cpuinfo
Processor : ARM926EJ-S rev 5 (v5l)
BogoMIPS : 540.67
Features : swp half fastmult vfp edsp java
CPU implementer : 0x41
CPU architecture: 5TEJ
CPU variant : 0x0
CPU part : 0x926
CPU revision : 5
Hardware : ARM-Versatile PB
Revision : 0000
Serial : 0000000000000000
Additional info
Maybe be related https://github.com/golang/go/issues/24980
# ./chisel --version
1.9.1
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the ARM v5 reproduction command and trace the startup path through main.go, server/server.go, and share/ccrypto/keys_helpers.go, where the stack reaches crypto/ecdsa.GenerateKey. Compare the failure with the linked Go issue and verify the server starts without the runtime netpoll crash on the reported ARM926EJ-S environment.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- operating-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100