#34772: Exception with psycopg3 binary package on Ubuntu 20.04
-----------------------------------------+------------------------
Reporter: goffioul | Owner: nobody
Type: Uncategorized | Status: new
Component: Uncategorized | Version: 4.2
Severity: Normal | Keywords:
Triage Stage: Unreviewed | Has patch: 0
Needs documentation: 0 | Needs tests: 0
Patch needs improvement: 0 | Easy pickings: 0
UI/UX: 0 |
-----------------------------------------+------------------------
After upgrading my app to django-4.2.4, I attempted to upgrade to psycopg3
(3.1.10) using the binary package on my Ubuntu 20.04 server. I installed
psycopg3 with pip using `pip install psycopg[binary]`. But the app then
started to throw exceptions in various views, in particular in form views
during rendering of a related field (list views seem fine, as well we form
views without a related field):
{{{
NotSupportedError at [snip]/units/new/
server-side cursors not supported in pipeline mode
}}}
The last entry in the backtrace is as follows:
{{{
[snip]/lib/python3.8/site-packages/psycopg/server_cursor.py, line 286, in
execute
raise e.NotSupportedError( …
Local vars
Variable Value
binary None
kwargs {}
params ()
query ('SELECT "config_networkprofile"."id",
"config_networkprofile"."name", '
'"config_networkprofile"."primaryVoip", '
'"config_networkprofile"."primarySipProxy" FROM
"config_networkprofile" ORDER '
'BY "config_networkprofile"."name" ASC')
self Error in formatting: ValueError: 32653 is not a valid
PipelineStatus
}}}
What cauth my attention is the formatting error due to invalid/unexpected
PipelineStatus value. As this is precompiled binary, I figured this might
be due to some ABI incompatibility. I tried pure-python ("psycopg") and
local-install ("psycopg[c]") and they both work fine, no exception is
thrown. I also don't get any exception if I disable server-side cursors
with `DISABLE_SERVER_SIDE_CURSORS`.
Things that I think are relevant:
- my database uses defaults for ATOMIC_REQUESTS (False) and AUTOCOMMIT
(True)
- I don't use transaction pooling, as mentioned in django docs
- I've reported the issue to psycopg project, but they appear to think the
problem is on django side and closed the ticket
(https://github.com/psycopg/psycopg/issues/622)
- I've also tried to use `server_side_binding`, as suggested in the forum,
but that didn't help (https://forum.djangoproject.com/t/error-problem-
with-psycopg3-and-server-side-cursors/22964)
--
Ticket URL: <https://code.djangoproject.com/ticket/34772>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/01070189e5f5064e-348f7bcd-2873-4db0-b11b-2658ccb157fd-000000%40eu-central-1.amazonses.com.