-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
fix weird flake in integration tests with sqlite #17036
Comments
I was just looking at this!! Yea it seems to have cropped up consistently. |
Doesn't always happen on older versions of sqlite: https://github.com/PrefectHQ/prefect/actions/runs/13203592361/job/36861326261?pr=17033 |
This is still very much alive, my proposed fix didn't change anything |
i have this error too in my cicd :) I am using the prefect docker image with tag "3.2.2-python3.12" and with minimal custom changes (nothing related to versions). I am starting the ephemeral sever via the prefect_test_harness method 08:17:42.562 | INFO | prefect - Starting temporary server on http://127.0.0.1:8693/
See https://docs.prefect.io/3.0/manage/self-host#self-host-a-prefect-server for more information on running a dedicated Prefect server.
/usr/local/lib/python3.12/site-packages/alembic/script/revision.py:241: UserWarning: Revision 8644a9595a08 referenced from 8644a9595a08 -> cc510aec4689 (head), Automation event follower is not present
util.warn(
08:17:56.725 | ERROR | uvicorn.error - Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 693, in lifespan
async with self.lifespan_context(app) as maybe_state:
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/contextlib.py", line 210, in __aenter__
return await anext(self.gen)
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/prefect/server/api/server.py", line 606, in lifespan
await run_migrations()
File "/usr/local/lib/python3.12/site-packages/prefect/server/api/server.py", line 586, in run_migrations
await db.create_db()
File "/usr/local/lib/python3.12/site-packages/prefect/server/database/interface.py", line 77, in create_db
await self.run_migrations_upgrade()
File "/usr/local/lib/python3.12/site-packages/prefect/server/database/interface.py", line 85, in run_migrations_upgrade
await run_sync_in_worker_thread(alembic_upgrade)
File "/usr/local/lib/python3.12/site-packages/prefect/utilities/asyncutils.py", line 233, in run_sync_in_worker_thread
result = await anyio.to_thread.run_sync(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/anyio/to_thread.py", line 56, in run_sync
return await get_async_backend().run_sync_in_worker_thread(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 2461, in run_sync_in_worker_thread
return await future
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 962, in run
result = context.run(func, *args)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/prefect/utilities/asyncutils.py", line 243, in call_with_mark
return call()
^^^^^^
File "/usr/local/lib/python3.12/site-packages/prefect/server/database/alembic_commands.py", line 36, in wrapper
return fn(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/prefect/server/database/alembic_commands.py", line 72, in alembic_upgrade
alembic.command.upgrade(alembic_config(), revision, sql=dry_run)
File "/usr/local/lib/python3.12/site-packages/alembic/command.py", line [40](https://git.tech.rz.db.de/house-of-ai/ki-dispo/mlops/prefect-kidispo/-/jobs/307958789#L40)6, in upgrade
script.run_env()
File "/usr/local/lib/python3.12/site-packages/alembic/script/base.py", line 586, in run_env
util.load_python_file(self.dir, "env.py")
File "/usr/local/lib/python3.12/site-packages/alembic/util/pyfiles.py", line 95, in load_python_file
module = load_module_py(module_id, path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/alembic/util/pyfiles.py", line 113, in load_module_py
spec.loader.exec_module(module) # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen importlib._bootstrap_external>", line 999, in exec_module
File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
File "/usr/local/lib/python3.12/site-packages/prefect/server/database/_migrations/env.py", line 201, in <module>
run_async_from_worker_thread(apply_migrations)
File "/usr/local/lib/python3.12/site-packages/prefect/utilities/asyncutils.py", line 254, in run_async_from_worker_thread
return anyio.from_thread.run(call)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/anyio/from_thread.py", line 59, in run
return async_backend.run_async_from_thread(func, args, token=token)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 2501, in run_async_from_thread
return f.result()
^^^^^^^^^^
File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 456, in result
return self.__get_result()
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 401, in __get_result
raise self._exception
File "/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 2488, in task_wrapper
return await func(*args)
^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/prefect/server/database/_migrations/env.py", line 190, in apply_migrations
await connection.run_sync(do_run_migrations)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/engine.py", line 887, in run_sync
return await greenlet_spawn(
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 203, in greenlet_spawn
result = context.switch(value)
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/prefect/server/database/_migrations/env.py", line 159, in do_run_migrations
context.run_migrations()
File "<string>", line 8, in run_migrations
File "/usr/local/lib/python3.12/site-packages/alembic/runtime/environment.py", line 946, in run_migrations
self.get_context().run_migrations(**kw)
File "/usr/local/lib/python3.12/site-packages/alembic/runtime/migration.py", line 611, in run_migrations
for step in self._migrations_fn(heads, self):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/alembic/command.py", line 395, in upgrade
return script._upgrade_revs(revision, rev)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/alembic/script/base.py", line 462, in _upgrade_revs
for script in reversed(list(revs))
^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/alembic/script/revision.py", line 814, in iterate_revisions
revisions, heads = fn(
^^^
File "/usr/local/lib/python3.12/site-packages/alembic/script/revision.py", line 1447, in _collect_upgrade_revisions
for rev in self._parse_upgrade_target(
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/alembic/script/revision.py", line 1234, in _parse_upgrade_target
return self.get_revisions(target)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/alembic/script/revision.py", line 544, in get_revisions
resolved_id, branch_label = self._resolve_revision_number(id_)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/alembic/script/revision.py", line 768, in _resolve_revision_number
self._revision_map
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 1145, in __get__
obj.__dict__[self.__name__] = result = self.fget(obj)
^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/alembic/script/revision.py", line 245, in _revision_map
down_revision = map_[downrev]
~~~~^^^^^^^^^
KeyError: '8644a9595a08'
08:17:56.737 | ERROR | uvicorn.error - Application startup failed. Exiting.
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "/builds/marcml/integration.py", line 48, in <module>
main()
File "/builds/marcml/integration.py", line 18, in main
with prefect_test_harness():
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/contextlib.py", line 137, in __enter__
return next(self.gen)
^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/prefect/testing/utilities.py", line 166, in prefect_test_harness
test_server.start(
File "/usr/local/lib/python3.12/site-packages/prefect/server/api/server.py", line 832, in start
raise RuntimeError(error_message)
RuntimeError: Timed out while attempting to connect to ephemeral Prefect API server.
08:18:13.506 | INFO | prefect - Stopping temporary server on http://127.0.0.1:8735
/usr/local/lib/python3.12/site-packages/alembic/script/revision.py:2[41](https://git.tech.rz.db.de/house-of-ai/ki-dispo/mlops/prefect-kidispo/-/jobs/307958789#L41): UserWarning: Revision 8644a9595a08 referenced from 8644a9595a08 -> cc510aec4689 (head), Automation event follower is not present
util.warn(
08:18:15.359 | ERROR | uvicorn.error - Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 693, in lifespan
async with self.lifespan_context(app) as maybe_state:
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/contextlib.py", line 210, in __aenter__
return await anext(self.gen)
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/prefect/server/api/server.py", line 606, in lifespan
await run_migrations()
File "/usr/local/lib/python3.12/site-packages/prefect/server/api/server.py", line 586, in run_migrations
await db.create_db()
File "/usr/local/lib/python3.12/site-packages/prefect/server/database/interface.py", line 77, in create_db
await self.run_migrations_upgrade()
File "/usr/local/lib/python3.12/site-packages/prefect/server/database/interface.py", line 85, in run_migrations_upgrade
await run_sync_in_worker_thread(alembic_upgrade)
File "/usr/local/lib/python3.12/site-packages/prefect/utilities/asyncutils.py", line 233, in run_sync_in_worker_thread
result = await anyio.to_thread.run_sync(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/anyio/to_thread.py", line 56, in run_sync
return await get_async_backend().run_sync_in_worker_thread(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 2461, in run_sync_in_worker_thread
return await future
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 962, in run
result = context.run(func, *args)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/prefect/utilities/asyncutils.py", line 2[43](https://git.tech.rz.db.de/house-of-ai/ki-dispo/mlops/prefect-kidispo/-/jobs/307958789#L43), in call_with_mark
return call()
^^^^^^
File "/usr/local/lib/python3.12/site-packages/prefect/server/database/alembic_commands.py", line 36, in wrapper
return fn(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/prefect/server/database/alembic_commands.py", line 72, in alembic_upgrade
alembic.command.upgrade(alembic_config(), revision, sql=dry_run)
File "/usr/local/lib/python3.12/site-packages/alembic/command.py", line 406, in upgrade
script.run_env()
File "/usr/local/lib/python3.12/site-packages/alembic/script/base.py", line 586, in run_env
util.load_python_file(self.dir, "env.py")
File "/usr/local/lib/python3.12/site-packages/alembic/util/pyfiles.py", line 95, in load_python_file
module = load_module_py(module_id, path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/alembic/util/pyfiles.py", line 113, in load_module_py
spec.loader.exec_module(module) # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen importlib._bootstrap_external>", line 999, in exec_module
File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
File "/usr/local/lib/python3.12/site-packages/prefect/server/database/_migrations/env.py", line 201, in <module>
run_async_from_worker_thread(apply_migrations)
File "/usr/local/lib/python3.12/site-packages/prefect/utilities/asyncutils.py", line 254, in run_async_from_worker_thread
return anyio.from_thread.run(call)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/anyio/from_thread.py", line 59, in run
return async_backend.run_async_from_thread(func, args, token=token)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 2501, in run_async_from_thread
return f.result()
^^^^^^^^^^
File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 456, in result
return self.__get_result()
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 401, in __get_result
raise self._exception
File "/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 2488, in task_wrapper
return await func(*args)
^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/prefect/server/database/_migrations/env.py", line 190, in apply_migrations
await connection.run_sync(do_run_migrations)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/engine.py", line 887, in run_sync
return await greenlet_spawn(
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 203, in greenlet_spawn
result = context.switch(value)
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/prefect/server/database/_migrations/env.py", line 159, in do_run_migrations
context.run_migrations()
File "<string>", line 8, in run_migrations
File "/usr/local/lib/python3.12/site-packages/alembic/runtime/environment.py", line 946, in run_migrations
self.get_context().run_migrations(**kw)
File "/usr/local/lib/python3.12/site-packages/alembic/runtime/migration.py", line 611, in run_migrations
for step in self._migrations_fn(heads, self):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/alembic/command.py", line 395, in upgrade
return script._upgrade_revs(revision, rev)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/alembic/script/base.py", line 462, in _upgrade_revs
for script in reversed(list(revs))
^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/alembic/script/revision.py", line 814, in iterate_revisions
revisions, heads = fn(
^^^
File "/usr/local/lib/python3.12/site-packages/alembic/script/revision.py", line 1[44](https://git.tech.rz.db.de/house-of-ai/ki-dispo/mlops/prefect-kidispo/-/jobs/307958789#L44)7, in _collect_upgrade_revisions
for rev in self._parse_upgrade_target(
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/alembic/script/revision.py", line 1234, in _parse_upgrade_target
return self.get_revisions(target)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/alembic/script/revision.py", line 544, in get_revisions
resolved_id, branch_label = self._resolve_revision_number(id_)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/alembic/script/revision.py", line 768, in _resolve_revision_number
self._revision_map
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 11[45](https://git.tech.rz.db.de/house-of-ai/ki-dispo/mlops/prefect-kidispo/-/jobs/307958789#L45), in __get__
obj.__dict__[self.__name__] = result = self.fget(obj)
^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/alembic/script/revision.py", line 245, in _revision_map
down_revision = map_[downrev]
~~~~^^^^^^^^^
KeyError: '8644a9595a08' |
Got the same issue in my Docker deployment, and confirmed this is only happend on v3.2.2 with SQLite as database. I got |
Bug summary
see https://github.com/PrefectHQ/prefect/actions/runs/13191059627/job/36823978425#step:3:2242
Version info
Additional context
No response
The text was updated successfully, but these errors were encountered: