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

2.0.24 / 2.0.25 / 2.0.26 #24

Closed
asottile-sentry opened this issue Aug 9, 2024 · 12 comments
Closed

2.0.24 / 2.0.25 / 2.0.26 #24

asottile-sentry opened this issue Aug 9, 2024 · 12 comments

Comments

@asottile-sentry
Copy link

hi! any plans to publish newer versions?

2.0.23.post0 locks up after reload for python 3.12:

(not quite minimal but minimal-enough reproduction)

UWSGI_AUTO_PROCNAME=true \
UWSGI_BINARY_PATH=$PWD/venv/bin/python3 \
UWSGI_BUFFER_SIZE=32768 \
UWSGI_DIE_ON_TERM=true \
UWSGI_DISABLE_LOGGING=false \
UWSGI_DISABLE_WRITE_EXCEPTION=true \
UWSGI_ENABLE_THREADS=true \
UWSGI_GID=20 \
UWSGI_HARAKIRI=600 \
UWSGI_HONOUR_STDIN=true \
UWSGI_HTTP_CHUNKED_INPUT=true \
UWSGI_HTTP_KEEPALIVE=true \
UWSGI_HTTP_SOCKET=127.0.0.1:9001 \
UWSGI_HTTP_TIMEOUT=600 \
UWSGI_IGNORE_SIGPIPE=true \
UWSGI_IGNORE_WRITE_ERRORS=true \
UWSGI_LAZY_APPS=true \
UWSGI_LIMIT_POST=1073741824 \
UWSGI_LOG_X_FORWARDED_FOR=false \
UWSGI_MASTER=true \
UWSGI_MAX_REQUESTS=20 \
UWSGI_MEMORY_REPORT=true \
UWSGI_MODULE=wsgi:application \
UWSGI_NEED_APP=true \
UWSGI_POST_BUFFERING=65536 \
UWSGI_PROCNAME_PREFIX_SPACED=[Sentry] \
UWSGI_PROTOCOL=http \
UWSGI_RELOAD_ON_RSS=600 \
UWSGI_SINGLE_INTERPRETER=true \
UWSGI_THUNDER_LOCK=false \
UWSGI_UID=501 \
UWSGI_VACUUM=true \
UWSGI_VIRTUALENV=$PWD/venv \
UWSGI_WORKERS=2 \
UWSGI_WSGI_FILE=wsgi.py \
    uwsgi

# adding `UWSGI_THREADS` triggers a separate bug where the workers hang until killed on reload
# UWSGI_THREADS=2 \
# wsgi.py
def application(environ, start_response):
    status = '200 OK'
    output = b'Hello World!'

    response_headers = [('Content-type', 'text/plain'),
                        ('Content-Length', str(len(output)))]
    start_response(status, response_headers)

    return [output]
# run this a few times
yes | head -100 | xargs -P4 --replace curl localhost:9001/health-check/; echo
@ipmb
Copy link
Member

ipmb commented Aug 9, 2024

wow... new releases!

I'll work on it.

@ipmb
Copy link
Member

ipmb commented Aug 9, 2024

@asottile-sentry builds are failing and I won't have time to debug in the near future. I'm not using uWSGI anymore.

Would you like to be added as a maintainer?

@ipmb
Copy link
Member

ipmb commented Aug 9, 2024

#25

@asottile-sentry
Copy link
Author

sure! you can add @asottile my non-work account

@ipmb
Copy link
Member

ipmb commented Aug 9, 2024

sent 📧

@asottile-sentry
Copy link
Author

awesome -- will take a look at this over the weekend -- the build failures should be pretty easy to get there

@ipmb
Copy link
Member

ipmb commented Aug 12, 2024

Thanks for getting things working @asottile! Merged and released 🎉
https://pypi.org/project/pyuwsgi/2.0.26/

@ipmb ipmb closed this as completed Aug 12, 2024
@asottile
Copy link
Collaborator

so good news bad news -- the new version didn't actually resolve my problem -- but it looks like I have a fix for that unbit/uwsgi#2659 and unbit/uwsgi#2660

is there any policy around cherry-picking patches for the pyuwsgi wheels? not sure how long I want to wait on upstream 🙂

@ipmb
Copy link
Member

ipmb commented Aug 19, 2024

No policy. I'd prefer to track upstream, but understand where you're coming from.

I'd be open to doing a pre-release that isn't picked up by the general public, but is accessible on PyPI. Would that work?

@asottile
Copy link
Collaborator

the tricky part about that is picking the version (I wouldn't want to (for instance) release 1.0.27a1 and then surprise surprise uwsgi releases 1.1.0).

though maybe it'll be easier for everyone if I make a sentry-specific fork? (and then I'm free to 1.0.26.post1 or whatever with the clear disclaimer that it's "sentry-forked-pyuwsgi" or whatever)

@ipmb
Copy link
Member

ipmb commented Aug 19, 2024

but then we'd just release 1.1.0 and everything would be fine? If there's a pre-release that ends up being on the wrong version, that's not a problem.

I'm also fine if you want to fork (not that you need permission)

@asottile
Copy link
Collaborator

hmmm true. I guess I'll do 1.0.27a1 then -- will try and put together a PR for that soon!

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

3 participants