PrefectHQ / prefect

Prefect is a workflow orchestration framework for building resilient data pipelines in Python.
https://prefect.io
Apache License 2.0
15.95k stars 1.57k forks source link

Upgrade uvicorn dependency to 0.30.1 #14318

Closed srisudarsan closed 3 months ago

srisudarsan commented 3 months ago

First check

Prefect Version

2.x

Describe the current behavior

Currently, prefect has a requirement on uvicorn which is defined as uvicorn >= 0.14.0, < 0.29.0 uvicorn has released new versions, which has fixed issues related to signalling termination to child processes.

I have an application which uses prefect and I run my application using uvicorn, due to this dependency criteria, we are not able to upgrade uvicorn to tha latest version. (0.30.1 at the time of writing this issue)

Can we please have this upgraded ?

Describe the proposed behavior

Upgrade uvicorn dependency to 0.30.1

Example Use

No response

Additional context

Found this PR related, but not sure why it was close, looks like a few failing tests https://github.com/PrefectHQ/prefect/pull/14106

aaazzam commented 3 months ago

Thanks @srisudarsan for the heads up!

I've submitted a PR to remove this pin and we'll see if it's fixed the issues that caused us to pin this in the first place. It's running through our test suite now and I can report back on how that went.

srisudarsan commented 3 months ago

Appreciate the quick turn around. There have been changes related to signal handling in versions 0.29.0 and 0.30.0, we managed to quickly test this out, and the results were as expected. But I see the smoke tests failing, was there feedback from community on what this could be as there were earlier attempts to upgrade to latest and it probably failed at the same stage as this ?

aaazzam commented 3 months ago

Hey @srisudarsan! Heads up, I'm seeing uvicorn==0.30.1 fail our current test suite. 😢

The good news it only fails four tests, which are fewer failures than it was before!

I'll have a think and see what's going on or see if others pick this up!

aaazzam commented 3 months ago

Commented at literally the same time, reading your comment now.

aaazzam commented 3 months ago

I think @bunchesofdonald investigated this in https://github.com/PrefectHQ/prefect/pull/12463, but can't figure out from the PR what the issue specifically was

bunchesofdonald commented 3 months ago

It was causing issues with our login via browser feature (which is what those tests are for). Specifically it was python 3.12 and Uvicorn 0.29.0 it would throw asyncio.exceptions.CancelledError after successfully logging in via the browser. It seemed to be an issue with the new signal handling introduced in 0.29.0.

I can take a look at 0.30.1 and see what's up with that.