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

Crashes with SIGILL on Linux/amd64 i7 CPU #291

Closed
karalabe opened this issue Apr 24, 2023 · 3 comments
Closed

Crashes with SIGILL on Linux/amd64 i7 CPU #291

karalabe opened this issue Apr 24, 2023 · 3 comments

Comments

@karalabe
Copy link
Member

Caught SIGILL in blst_cgo_init [...]

@karalabe
Copy link
Member Author

Seems my older laptop CPU is too old for for some instructions. This is bad really, the upstream solution is "if it crashes, rebuild with flag xyz". Can we please fix the upstream BLS library to detect and not use unavailable CPU. instructions, or alternatively have this library add the "portable" flags via CGO build constraints? I cannot add the flag downstream into Geth.

@jtraglia
Copy link
Member

We cannot add __BLST_PORTABLE__ to the CGO_CFLAGS either. I suggest you make a PR to blst.

@karalabe
Copy link
Member Author

I'm reluctant to accept that suggestion as a viable one.

The issuer was opened on their repo 3 years ago and they don't seem to care: supranational/blst#10

In the issue, it's also written that about 25% of cloud VMs will crash, interestingly, at random since you don't know exactly which CPU you will get (unless you pay enough to have a specifically new gen one).

As for fixing it upstream, with all due respect, it is your dependency - and hence your library - that is broken. It is your task to fix it or work around a broken dependency. My choices are either to use CKZG or to not (and be very vocal about why it is broken so others won't use it either).

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

No branches or pull requests

2 participants