jpillora / chisel

A fast TCP/UDP tunnel over HTTP
MIT License
12.36k stars 1.32k forks source link

ARM v5 crash #491

Open noraj opened 5 months ago

noraj commented 5 months ago

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