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

mev-boost failing to start #106

Closed
pepawel opened this issue Sep 18, 2022 · 3 comments · Fixed by #113
Closed

mev-boost failing to start #106

pepawel opened this issue Sep 18, 2022 · 3 comments · Fixed by #113
Assignees

Comments

@pepawel
Copy link

pepawel commented Sep 18, 2022

Describe the bug
On my machine, mev-boost docker container can't start because of illegal instruction error.

To Reproduce

  1. Run sedge cli and go thru instructions.
  2. Run docker logs mev-boost
  3. Observe the error. See "Additional context" for full logs.

Expected behavior
mev-boost should start.

Desktop (please complete the following information):

  • OS: Ubuntu 20.04
  • CPU: Intel i7-4770K

Additional context
Docker logs:

SIGILL: illegal instruction
PC=0x72a12e m=0 sigcode=2
signal arrived during cgo execution
instruction bytes: 0xf3 0x4c 0xf 0x38 0xf6 0xcf 0x66 0x4c 0xf 0x38 0xf6 0xd5 0xc4 0xe2 0xc3 0xf6

goroutine 1 [syscall, locked to thread]:
runtime.cgocall(0x70c860, 0xc000129ba8)
        runtime/cgocall.go:157 +0x5c fp=0xc000129b80 sp=0xc000129b48 pc=0x40a7bc
github.com/supranational/blst/bindings/go._Cfunc_blst_sk_to_pk2_in_g1(0x0, 0xc0001ca360, 0xc00018e320)
        _cgo_gotypes.go:1317 +0x45 fp=0xc000129ba8 sp=0xc000129b80 pc=0x67b605
github.com/supranational/blst/bindings/go.(*_Ctype_struct___4).From(...)
        github.com/supranational/blst@v0.3.7/bindings/go/blst.go:219
github.com/flashbots/go-boost-utils/bls.PublicKeyFromSecretKey(...)
        github.com/flashbots/go-boost-utils@v1.1.1/bls/bls.go:40
github.com/flashbots/mev-boost/server.init()
        github.com/flashbots/mev-boost/server/mock_relay.go:25 +0xec fp=0xc000129bf0 sp=0xc000129ba8 pc=0
x709aec
runtime.doInit(0xa3d220)
        runtime/proc.go:6222 +0x126 fp=0xc000129d20 sp=0xc000129bf0 pc=0x44b9c6
runtime.doInit(0xa3ab20)
        runtime/proc.go:6199 +0x71 fp=0xc000129e50 sp=0xc000129d20 pc=0x44b911
runtime.doInit(0xa355a0)
        runtime/proc.go:6199 +0x71 fp=0xc000129f80 sp=0xc000129e50 pc=0x44b911
runtime.main()
        runtime/proc.go:233 +0x1d3 fp=0xc000129fe0 sp=0xc000129f80 pc=0x43eb53
runtime.goexit()
        runtime/asm_amd64.s:1571 +0x1 fp=0xc000129fe8 sp=0xc000129fe0 pc=0x46bb41

rax    0x0
rbx    0x8775c0
rcx    0x877040
rdx    0x7817fc679976fff5
rdi    0xc25f1572e1a87b0e
rsi    0x877540
rbp    0x2b7cd71362065849
rsp    0x7ffdd544ca88
r8     0x1f36a914d1d1ca54
r9     0xe3f09cc9f448ab2c
r10    0x53ae4ce3194e4adf
r11    0x988f6b1f351f9469
r12    0xf0030d9fa553ae92
r13    0x8e738258ad84f1f6
r14    0x685276af035ca2f
r15    0x0
rip    0x72a12e
rflags 0x10246
cs     0x33
fs     0x0
gs     0x0

/proc/cpuinfo (just first entry, the rest looks the same):

processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 60
model name	: Intel(R) Core(TM) i7-4770K CPU @ 3.50GHz
stepping	: 3
microcode	: 0x28
cpu MHz		: 3699.869
cache size	: 8192 KB
physical id	: 0
siblings	: 4
core id		: 0
cpu cores	: 4
apicid		: 0
initial apicid	: 0
fpu		: yes
fpu_exception	: yes
cpuid level	: 13
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm cpuid_fault invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt dtherm ida arat pln pts md_clear flush_l1d
bugs		: cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit srbds
bogomips	: 6999.76
clflush size	: 64
cache_alignment	: 64
address sizes	: 39 bits physical, 48 bits virtual
power management:
@pepawel
Copy link
Author

pepawel commented Sep 21, 2022

Just found this in mev-boost README:

If mev-boost crashes with flashbots/mev-boost#256 then you need to use a portable build

So it would be great if sedge somehow detect CPU features and use the correct build. In my case it is flashbots/mev-boost:latest-portable.

@pepawel
Copy link
Author

pepawel commented Sep 21, 2022

Maybe allow user to choose docker image for mev-boost?

For example, choosing execution client require user to specify this option in command line:
-e, --execution string Execution engine client, e.g. geth, nethermind, besu, erigon. Additionally, you can use this syntax '<CLIENT>:<DOCKER_IMAGE>' to override the docker image used for the client. If you want to use the default docker image, just use the client name

Similiar approach could be used for mev-boost.

@cbermudez97
Copy link
Contributor

Thanks @pepawel for opening this issue. It would be difficult to detect which arch works for mev-boost. I think in this case we should go with letting you use a specfic image for mev-boost like you suggested.

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

Successfully merging a pull request may close this issue.

2 participants