You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Removal of private C-API breaks uwsgi compilation #121758
plugins/python/python_plugin.c: In function ‘uwsgi_python_pre_uwsgi_fork’:
plugins/python/python_plugin.c:1376:17: error: implicit declaration of function ‘_PyImport_AcquireLock’ [-Werror=implicit-function-declaration]
1376 | _PyImport_AcquireLock(interp);
| ^~~~~~~~~~~~~~~~~~~~~
plugins/python/python_plugin.c: In function ‘uwsgi_python_post_uwsgi_fork’:
plugins/python/python_plugin.c:1393:25: error: implicit declaration of function ‘_PyImport_ReleaseLock’ [-Werror=implicit-function-declaration]
1393 | _PyImport_ReleaseLock(interp);
| ^~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
Is there any other available API we can use?
I can make it compile by importing the internal header but does not look like a proper solution:
Activity
[-]Removal of private API breaks uwsgi compilation[/-][+]Removal of private C-API breaks uwsgi compilation[/+]vstinner commentedon Jul 14, 2024
Why calling _PyImport_AcquireLock() in uwsgi_python_pre_uwsgi_fork(), instead of PyOS_BeforeFork()?
By the way, I'm not sure that it's safe to call PyOS_AfterFork_Child() in uwsgi_python_post_uwsgi_fork() without calling PyOS_BeforeFork().
xrmx commentedon Jul 16, 2024
I think the code predates PyOS_BeforeFork by years 😅 and we didn't give it enough attention until it broke.
Thanks
vstinner commentedon Jul 16, 2024
Can you try PyOS_BeforeFork() and tell me how it goes?
xrmx commentedon Jul 21, 2024
Opened a PR here, CI passes but haven't tested it unbit/uwsgi#2655
vstinner commentedon Aug 27, 2024
@xrmx: Since there is now a pending uwsgi PR, is it still useful to have a Python issue? Or can we close this issue?
xrmx commentedon Aug 27, 2024
Closing, thanks @vstinner !