Prysm: Can't run beacon-chain on macOS 10.13.6

Created on 29 Mar 2020  路  18Comments  路  Source: prysmaticlabs/prysm

I'm trying to run the beacon-chain under macOS 10.13.6 following the doc with the following command, but I'm getting an error:

./prysm.sh beacon-chain --clear-db --datadir=$HOME/prysm

At the beginning of the output I can see this:

Latest Prysm version is v0.3.8.
Beacon chain is up to date.
Validator is up to date.
Starting Prysm beacon-chain 

But right after it I get the following error

dyld: lazy symbol binding failed: Symbol not found: ____chkstk_darwin
  Referenced from: /Users/alr/Desktop/prysm/./dist/beacon-chain-v0.3.8-darwin-amd64
  Expected in: flat namespace

dyld: Symbol not found: ____chkstk_darwin
  Referenced from: /Users/alr/Desktop/prysm/./dist/beacon-chain-v0.3.8-darwin-amd64
  Expected in: flat namespace

...

I don't get the flat namespace. Any ideas?

All 18 comments

Can any Mac owner take a look please?
@rauljordan @terencechain @0xKiwi

it works for me, running 10.15.2 (19C57)

I talked with @0xKiwi and he wasn't able to reproduce. Can you try on a newer version of Mac OS?

Hi @alrevuelta can you try brew install cmake && brew install make and retry? Seems like that worked in other projects that encountered the similar error message: https://github.com/nodegui/nodegui/issues/391

Confirmed it works for me, I am running 10.15.3

Closing due to inactivity

Some error here even after i try brew install cmake && brew install make

Latest Prysm version is v1.0.0-alpha.4.

Beacon chain is up to date.
Validator is up to date.
Starting Prysm validator accounts
reatem--keystore-path=/Users/xxxx/validator
assword=xxxx
^[[?1;2cSIGILL: illegal instruction
PC=0x406b270 m=0 sigcode=1

goroutine 1 [running, locked to thread]:
runtime.asyncPreempt()
    src/runtime/preempt_amd64.s:8 fp=0xc000066e90 sp=0xc000066e88 pc=0x406b270
time.init()
    GOROOT/src/time/format.go:394 fp=0xc000066e98 sp=0xc000066e90 pc=0x40d1f50
runtime.doInit(0x5b22c20)
    GOROOT/src/runtime/proc.go:5414 +0x8a fp=0xc000066ec8 sp=0xc000066e98 pc=0x4045c1a
runtime.doInit(0x5b25080)
    GOROOT/src/runtime/proc.go:5409 +0x57 fp=0xc000066ef8 sp=0xc000066ec8 pc=0x4045be7
runtime.doInit(0x5b29100)
    GOROOT/src/runtime/proc.go:5409 +0x57 fp=0xc000066f28 sp=0xc000066ef8 pc=0x4045be7
runtime.doInit(0x5b26820)
    GOROOT/src/runtime/proc.go:5409 +0x57 fp=0xc000066f58 sp=0xc000066f28 pc=0x4045be7
runtime.doInit(0x5b2fc00)
    GOROOT/src/runtime/proc.go:5409 +0x57 fp=0xc000066f88 sp=0xc000066f58 pc=0x4045be7
runtime.main()
    GOROOT/src/runtime/proc.go:190 +0x1ce fp=0xc000066fe0 sp=0xc000066f88 pc=0x403901e
runtime.goexit()
    src/runtime/asm_amd64.s:1373 +0x1 fp=0xc000066fe8 sp=0xc000066fe0 pc=0x40699f1

rax    0x5b22c20
rbx    0x7
rcx    0x0
rdx    0x5b22c58
rdi    0x30
rsi    0x40d1f50
rbp    0xc000066eb8
rsp    0xc000066e88
r8     0xe004e08
r9     0x203000
r10    0x6
r11    0xfb
r12    0xfb
r13    0x0
r14    0x51fc6c7
r15    0x0
rip    0x406b270
rflags 0x10202
cs     0x2b
fs     0x0
gs     0x0

Reopen the issue please.

ok reopening this issue @hacktar . This looks like a regression which was introduced in go 1.14, the fix for this has been included in go 1.14.1 .
https://github.com/golang/go/issues/37459
https://github.com/golang/go/issues/37478

After we update prysm to 1.14.1, this issue should no longer be a problem

@hacktar You can keep an eye on #5535, this should fix your issues.

@hacktar You can keep an eye on #5535, this should fix your issues.

I pulled the branch

On branch updatego1.14.1
Your branch is up to date with 'origin/updatego1.14.1'.

But still doesn't work :-(

Latest Prysm version is v1.0.0-alpha.4.
Beacon chain is up to date.
Validator is up to date.
Starting Prysm validator accounts
reatem--keystore-path=/Users/xxxx/validator
assword=xxxx
^[[?1;2cSIGILL: illegal instruction
PC=0x406b270 m=0 sigcode=1

goroutine 1 [running, locked to thread]:
runtime.asyncPreempt()
    src/runtime/preempt_amd64.s:8 fp=0xc000185d70 sp=0xc000185d68 pc=0x406b270
github.com/syndtr/goleveldb/leveldb/memdb.init()
    external/com_github_syndtr_goleveldb/leveldb/memdb/memdb.go:22 fp=0xc000185d78 sp=0xc000185d70 pc=0x458db00
runtime.doInit(0x5b24ea0)
    GOROOT/src/runtime/proc.go:5414 +0x8a fp=0xc000185da8 sp=0xc000185d78 pc=0x4045c1a
runtime.doInit(0x5b30300)
    GOROOT/src/runtime/proc.go:5409 +0x57 fp=0xc000185dd8 sp=0xc000185da8 pc=0x4045be7
runtime.doInit(0x5b2a3e0)
    GOROOT/src/runtime/proc.go:5409 +0x57 fp=0xc000185e08 sp=0xc000185dd8 pc=0x4045be7
runtime.doInit(0x5b306c0)
    GOROOT/src/runtime/proc.go:5409 +0x57 fp=0xc000185e38 sp=0xc000185e08 pc=0x4045be7
runtime.doInit(0x5b35580)
    GOROOT/src/runtime/proc.go:5409 +0x57 fp=0xc000185e68 sp=0xc000185e38 pc=0x4045be7
runtime.doInit(0x5b33240)
    GOROOT/src/runtime/proc.go:5409 +0x57 fp=0xc000185e98 sp=0xc000185e68 pc=0x4045be7
runtime.doInit(0x5b29680)
    GOROOT/src/runtime/proc.go:5409 +0x57 fp=0xc000185ec8 sp=0xc000185e98 pc=0x4045be7
runtime.doInit(0x5b305c0)
    GOROOT/src/runtime/proc.go:5409 +0x57 fp=0xc000185ef8 sp=0xc000185ec8 pc=0x4045be7
runtime.doInit(0x5b2afc0)
    GOROOT/src/runtime/proc.go:5409 +0x57 fp=0xc000185f28 sp=0xc000185ef8 pc=0x4045be7
runtime.doInit(0x5b29880)
    GOROOT/src/runtime/proc.go:5409 +0x57 fp=0xc000185f58 sp=0xc000185f28 pc=0x4045be7
runtime.doInit(0x5b2fc00)
    GOROOT/src/runtime/proc.go:5409 +0x57 fp=0xc000185f88 sp=0xc000185f58 pc=0x4045be7
runtime.main()
    GOROOT/src/runtime/proc.go:190 +0x1ce fp=0xc000185fe0 sp=0xc000185f88 pc=0x403901e
runtime.goexit()
    src/runtime/asm_amd64.s:1373 +0x1 fp=0xc000185fe8 sp=0xc000185fe0 pc=0x40699f1

goroutine 8 [runnable]:
github.com/ethereum/go-ethereum/consensus/ethash.(*Ethash).remote(0xc0001401c0, 0x0, 0x0, 0x0, 0x0)
    external/com_github_ethereum_go_ethereum/consensus/ethash/sealer.go:200 +0x15c
created by github.com/ethereum/go-ethereum/consensus/ethash.New
    external/com_github_ethereum_go_ethereum/consensus/ethash/ethash.go:496 +0x35c

goroutine 7 [chan receive]:
github.com/ethereum/go-ethereum/metrics.(*meterArbiter).tick(0x5c4b140)
    external/com_github_ethereum_go_ethereum/metrics/meter.go:289 +0x78
created by github.com/ethereum/go-ethereum/metrics.NewMeterForced
    external/com_github_ethereum_go_ethereum/metrics/meter.go:70 +0x105

rax    0x5b24ea0
rbx    0x9
rcx    0x0
rdx    0x5b24ee8
rdi    0xc00006fe90
rsi    0x458db00
rbp    0xc000185d98
rsp    0xc000185d68
r8     0x11
r9     0x11
r10    0x51fc69c
r11    0x1
r12    0xffffffffffffffff
r13    0x1ea
r14    0x1e9
r15    0x200
rip    0x406b270
rflags 0x10202
cs     0x2b
fs     0x0
gs     0x0

do I have to wait for it to be released on the master?

Hey it will not work like that. The script only fetches the precompiled binaries. So you will have to wait till the next release with this

Hey it will not work like that. The script only fetches the precompiled binaries. So you will have to wait till the next release with this

sorry, what a shame! :-/

Thanks a lot ;-)

@hacktar v1.0.0-alpha.5 has been released with this change included. Thanks

It doesn't work... maybe some problem with MacOS version!

dyld: Symbol not found: ____chkstk_darwin
  Referenced from: /Users/xxx/Documents/Code/prysm/./dist/validator-v1.0.0-alpha.5-darwin-amd64
  Expected in: flat namespace

It doesn't matter, carry on :-(

something went wrong with cross-compiling it looks like, @prestonvanloon any idea ?
@hacktar re-opening this again.

Please install mac OS X 10.14 or greater. I'll update docs site requirements for Mac OS X

Please install mac OS X 10.14 or greater. I'll update docs site requirements for Mac OS X

Unfortunately macOS High Sierra 10.13.6 version is the latest available for certain older types of mac computers.

Anyway thanks

Sorry to hear that. You can still run with docker or compile from source,
but our precompiled binaries will only work on 10.14 or greater.

Was this page helpful?
0 / 5 - 0 ratings