-
Notifications
You must be signed in to change notification settings - Fork 530
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
process exit with code 132 #39
Comments
@ArmiT Maybe your Intel CPU is too old to support SSE 4.2 instructions? |
@agentzh, AMD Athlon(tm) II X2 250 seems supports SSE 4.2. |
@agentzh, Uups. Looks like, does not supports. SSE4A can be used as a replacement? |
@ArmiT I don't think so since we need the CRC32 instructions in LuaJIT, which was first added to SSE 4.2. Better build your own binary image directly in that box from the following OpenResty source tarball: https://openresty.org/download/openresty-1.11.2.4rc0.4.tar.gz This new version of OpenResty can correctly detect the lack of SSE 4.2 instructions in your current machine's CPU. |
@ArmiT Mind you, without the SSE 4.2 CRC32 instructions, creating new Lua strings can be VERY SLOW in worse cases. |
So in the end, there is no issue here? I'm going to morph this into a documentation issue -- to let people know that the Docker Hub doesn't support some things (e.g. ARM) or include some things (SSE 4.2) and users should build their own images locally. |
So is there a way to enable/disable the -msse4.2 in configure args, bcs our build env all supported SSE 4.2 but some target host is AMD platform. |
@pkking you can try the But it is STRONGLY discouraged to disable SSE 4.2 for builds running on boxes with SSE 4.2. |
@agentzh thx for the suggestion, we are considering replacing these AMD box :) |
@pkking In special cases, it can be orders of magnitude. |
+1 |
I have added this documentation to the README in 8fba29b. |
While it (maybe) affects performance (well, "orders of magnitude" is not a benchmark), |
@isage This cannot easily be done at runtime and even if it could, it cannot be added without runtime overhead in the hot code path. We use completely different code paths for The C compiler cannot do this automatically. Well, even modern optimization compilers are not magic. GCC always keeps backward compatibility for these SSE primitives otherwise it's a bug for it. Below is some real benchmark for this if you are interested: Please do not judge us without actually looking at the code... That would not usually be helpful. |
I'm pretty sure that you aware of such thing as cpuid. Luajit already calls cpuid on start to determine what opcodes to emit. |
@isage Talk is cheap. Show me the code. |
@agentzh worst argument ever. Here you go isage/luajit2@0fcdf12 |
@isage That looks good. Will you please create a pull request so that it's easier to review and discuss? |
Badly need this guys, just realized one of our servers doesn't have sse4.2, took me awhile to track down what exactly was causing openresty to throw invalid opcode in VMs. |
Just hit this on my Synology NAS which has a Intel Atom CPU D2700 . Will there be a docker hub image with pre-disabled or dynamic SSE4.2? |
Tried building a custom image with this docker-compose: openresty:
image: torarnv/openresty:stretch
build:
context: git://github.com/openresty/docker-openresty.git
dockerfile: stretch/Dockerfile
args:
RESTY_CONFIG_OPTIONS_MORE: --with-luajit-xcflags='-mno-sse4.2'
cache_from:
- openresty/openresty:stretch But got a warning about "One or more build-args [RESTY_CONFIG_OPTIONS_MORE] were not consumed" Perhaps the Tips & Pitfalls section should highlight that these build args only work for the fat images that build ngnix from source? |
@torarnv Now that the automated builds are beefed up (they weren't before when this build was made). If Travis can build Each "Building" section says what Dockerfiles they work with (although I see Bionic was missing and will add that) -- and note it's all the build-from-source images that take those options. Although I'm open to documentation enhancements, I don't want to add a line that says "make sure you read the advanced sections below very carefully and know you are in the right one". If you have a specific text suggestion, or can identify what confused you, I'm happy to merge or edit the README. If you didn't see it, these are the options for customizing the Stretch images. BTW, I think it's cool that you were trying to get this running on an embedded NAS. |
Thanks @neomantra! I ended up basing on the alpine image, which also builds from source, and I built my image on macOS since the Synology docker is too broken to build images :) |
When I try to start a docker container using the command:
docker run -it -p 8888:80 openresty/openresty:alpine
it stops with exit code 132.
dmesg says:
docker info
docker images openresty/openresty:alpine
Any idea what this could be?
The text was updated successfully, but these errors were encountered: