Skip to content

DeprecationWarning from os.fork() on Python 3.14 runtime #420

@Robak23

Description

@Robak23

Description

When using runtime = "python314" for Cloud Run Functions, gunicorn's Arbiter.spawn_worker() triggers a deprecation warning:
/layers/google.python.pip/pip/lib/python3.14/site-packages/gunicorn/arbiter.py:694: DeprecationWarning: This process (pid=1) is multi-threaded, use of fork() may lead to deadlocks in the child. pid = os.fork()

Python 3.14 warns about fork() in multi-threaded processes. The functions-framework has gunicorn>=22.0.0 as a hard dependency (setup.py line 54), and gunicorn uses fork() to spawn workers.

Impact

  • The warning cannot be suppressed from user code because os.fork() is called by gunicorn before the user's module is imported
  • This will likely become an error in a future Python version
  • Affects every Cloud Run Function using python314 runtime

Suggested fix

Replace gunicorn with a server that uses spawn instead of fork (e.g., uvicorn supports --workers N with spawn), or wait for gunicorn to add spawn support.

Reproduction

Deploy any Cloud Run Function with runtime = "python314" and observe the warning in logs.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions