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

segmentation fault (core dumped) #57

Open
jfarr opened this issue Jan 5, 2022 · 4 comments
Open

segmentation fault (core dumped) #57

jfarr opened this issue Jan 5, 2022 · 4 comments

Comments

@jfarr
Copy link

jfarr commented Jan 5, 2022

Hi, I followed the instructions under Running Locust on AWS Lambda but all I get is this error when I run invokr.py:

[2022-01-05 07:33:57,245] LM-C02C775WMD6R/ERROR/invokust.aws_lambda.lambda_load_test: error Unhandled: b'{"errorMessage":"RequestId: bb804730-df31-47d0-bc5f-ac734d0aa70e Error: Runtime exited with error: signal: segmentation fault (core dumped)","errorType":"Runtime.ExitError"}'

Any pointers what I might be doing wrong? I'm building the Lambda package on MacOS Big Sur using these commands:

docker run -it --volume=$PWD:/temp python:3.6 bash -c "pip install /temp --target=/temp/python-packages"
zip -q -r lambda_locust.zip lambda_locust.py locustfile_example.py python-packages
aws lambda create-function --function-name lambda_locust --timeout 300 --runtime python3.6 --role arn:aws:iam::XXXXXX --handler lambda_locust.handler --zip-file fileb://lambda_locust.zip
@jfarr
Copy link
Author

jfarr commented Jan 6, 2022

FYI after trying many different configurations the only way I could get this to work was as a Lambda container image. Here's the Dockerfile I used for reference:

FROM lambci/lambda:build-python3.6 AS lambda-build

RUN pip install invokust --target /temp/python-packages
COPY lambda_locust.py locustfile.py /temp/python-packages/

FROM public.ecr.aws/lambda/python:3.6

COPY --from=lambda-build /temp/python-packages "${LAMBDA_TASK_ROOT}"

CMD [ "lambda_locust.handler" ]

Then you have push the image to an ECR repository and create the lambda function with:

aws lambda create-function\
   --function-name lambda_locust\
   --package-type Image\
   --code ImageUri=9999999999.dkr.ecr.region-name.amazonaws.com/lambda_locust:latest\
   --role arn:aws:iam::9999999999:role/lambda_basic_execution\
   --timeout 300

@FutureSharks
Copy link
Owner

the only way I could get this to work was as a Lambda container image

That's annoying!

Any pointers what I might be doing wrong?

I don't have a solution but surely it's just a question of installing the pip packages using the correct docker image. Did you try using public.ecr.aws/lambda/python:3.6? I mean like:

docker run -it --volume=$PWD:/temp public.ecr.aws/lambda/python:3.6 bash -c "pip install /temp --target=/temp/python-packages"

@jfarr
Copy link
Author

jfarr commented Jan 11, 2022

I don't have a solution but surely it's just a question of installing the pip packages using the correct docker image. Did you try using public.ecr.aws/lambda/python:3.6? I mean like:

docker run -it --volume=$PWD:/temp public.ecr.aws/lambda/python:3.6 bash -c "pip install /temp --target=/temp/python-packages"

That image doesn't have the necessary toolchain.

jfarr1@LMTC-JFARR invokust % docker run -it --volume=$PWD:/temp --entrypoint="" public.ecr.aws/lambda/python:3.6 bash -c "pip install /temp --target=/temp/python-packages"
Unable to find image 'public.ecr.aws/lambda/python:3.6' locally
3.6: Pulling from lambda/python
[...]
    generating cffi module 'build/temp.linux-x86_64-3.6/gevent.libuv._corecffi.c'
    creating build/temp.linux-x86_64-3.6
    Running '(cd  "/tmp/pip-install-mj8r3csr/gevent/deps/libev"  && sh ./configure -C > configure-output.txt )' in /tmp/pip-install-mj8r3csr/gevent
    configure: error: in `/tmp/pip-install-mj8r3csr/gevent/deps/libev':
    configure: error: no acceptable C compiler found in $PATH
    See `config.log' for more details

@FutureSharks
Copy link
Owner

FutureSharks commented Jan 11, 2022

What if you run the pip install using the lambci/lambda:build-python3.6 image? i.e.

docker run -it --volume=$PWD:/temp lambci/lambda:build-python3.6 bash -c "pip install /temp --target=/temp/python-packages"

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