Re: [Django] #34267: QuerySet.union() crashes with IndexError when getting cached results.

1 view
Skip to first unread message

Django

unread,
Jan 17, 2023, 7:30:19 PM1/17/23
to django-...@googlegroups.com
#34267: QuerySet.union() crashes with IndexError when getting cached results.
-------------------------------------+-------------------------------------
Reporter: Raphaël Stefanini | Owner: Francesco
| Panico
Type: Bug | Status: assigned
Component: Database layer | Version: 4.2
(models, ORM) |
Severity: Release blocker | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Francesco Panico):

* owner: nobody => Francesco Panico
* status: new => assigned


--
Ticket URL: <https://code.djangoproject.com/ticket/34267#comment:4>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

Django

unread,
Jan 17, 2023, 7:33:19 PM1/17/23
to django-...@googlegroups.com
#34267: QuerySet.union() crashes with IndexError when getting cached results.
-------------------------------------+-------------------------------------
Reporter: Raphaël Stefanini | Owner: Francesco
| Panico
Type: Bug | Status: assigned
Component: Database layer | Version: 4.2
(models, ORM) |
Severity: Release blocker | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------

Comment (by Simon Charette):

It seems that the issue is likely due the
[https://github.com/django/django/commit/3d734c09ff0138441dfe0a59010435871d17950f
#diff-
f58de2deaccecd2d53199c5ca29e3e1050ec2adb80fb057cdfc0b4e6accdf14fR547-R551
if sliced] branch which was hoping to port the optimization that made
`union().exists()` have all the involved subqueries augmented with `LIMIT
1` if supported by the backend.

I believe that this optimization can likely be removed since backends are
likely smart enough to perform this optimization themselves when `EXISTS`
is used.

--
Ticket URL: <https://code.djangoproject.com/ticket/34267#comment:5>

Django

unread,
Jan 18, 2023, 5:55:37 PM1/18/23
to django-...@googlegroups.com
#34267: QuerySet.union() crashes with IndexError when getting cached results.
-------------------------------------+-------------------------------------
Reporter: Raphaël Stefanini | Owner: Francesco
| Panico
Type: Bug | Status: assigned
Component: Database layer | Version: 4.2
(models, ORM) |
Severity: Release blocker | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Francesco Panico):

* has_patch: 0 => 1


Comment:

[https://github.com/django/django/pull/16486 PR]

--
Ticket URL: <https://code.djangoproject.com/ticket/34267#comment:6>

Django

unread,
Jan 19, 2023, 2:09:29 AM1/19/23
to django-...@googlegroups.com
#34267: QuerySet.union() crashes with IndexError when getting cached results.
-------------------------------------+-------------------------------------
Reporter: Raphaël Stefanini | Owner: Francesco
| Panico
Type: Bug | Status: assigned
Component: Database layer | Version: 4.2
(models, ORM) |
Severity: Release blocker | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 1

Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Mariusz Felisiak):

* needs_better_patch: 0 => 1


--
Ticket URL: <https://code.djangoproject.com/ticket/34267#comment:7>

Django

unread,
Jan 19, 2023, 6:08:42 PM1/19/23
to django-...@googlegroups.com
#34267: QuerySet.union() crashes with IndexError when getting cached results.
-------------------------------------+-------------------------------------
Reporter: Raphaël Stefanini | Owner: Francesco
| Panico
Type: Bug | Status: assigned
Component: Database layer | Version: 4.2
(models, ORM) |
Severity: Release blocker | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0

Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Francesco Panico):

* needs_better_patch: 1 => 0


--
Ticket URL: <https://code.djangoproject.com/ticket/34267#comment:8>

Django

unread,
Jan 20, 2023, 2:52:51 AM1/20/23
to django-...@googlegroups.com
#34267: QuerySet.union() crashes with IndexError when getting cached results.
-------------------------------------+-------------------------------------
Reporter: Raphaël Stefanini | Owner: Francesco
| Panico
Type: Bug | Status: assigned
Component: Database layer | Version: 4.2
(models, ORM) |
Severity: Release blocker | Resolution:
Keywords: | Triage Stage: Ready for
| checkin

Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Mariusz Felisiak):

* stage: Accepted => Ready for checkin


--
Ticket URL: <https://code.djangoproject.com/ticket/34267#comment:9>

Django

unread,
Jan 20, 2023, 3:24:40 AM1/20/23
to django-...@googlegroups.com
#34267: QuerySet.union() crashes with IndexError when getting cached results.
-------------------------------------+-------------------------------------
Reporter: Raphaël Stefanini | Owner: Francesco
| Panico
Type: Bug | Status: closed

Component: Database layer | Version: 4.2
(models, ORM) |
Severity: Release blocker | Resolution: fixed

Keywords: | Triage Stage: Ready for
| checkin
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Mariusz Felisiak <felisiak.mariusz@…>):

* status: assigned => closed
* resolution: => fixed


Comment:

In [changeset:"cc8aa6bf9c127a493e6dd005012b9e6397b3f319" cc8aa6bf]:
{{{
#!CommitTicketReference repository=""
revision="cc8aa6bf9c127a493e6dd005012b9e6397b3f319"
Fixed #34267 -- Fixed sliced QuerySet.union() crash.

Regression in 3d734c09ff0138441dfe0a59010435871d17950f.

Thanks Raphaël Stefanini for the report.
}}}

--
Ticket URL: <https://code.djangoproject.com/ticket/34267#comment:10>

Django

unread,
Jan 20, 2023, 3:25:51 AM1/20/23
to django-...@googlegroups.com
#34267: QuerySet.union() crashes with IndexError when getting cached results.
-------------------------------------+-------------------------------------
Reporter: Raphaël Stefanini | Owner: Francesco
| Panico
Type: Bug | Status: closed
Component: Database layer | Version: 4.2
(models, ORM) |
Severity: Release blocker | Resolution: fixed
Keywords: | Triage Stage: Ready for
| checkin
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------

Comment (by Mariusz Felisiak <felisiak.mariusz@…>):

In [changeset:"84927e110e813c3bea6a600e4474eb577e15f2b9" 84927e1]:
{{{
#!CommitTicketReference repository=""
revision="84927e110e813c3bea6a600e4474eb577e15f2b9"
[4.2.x] Fixed #34267 -- Fixed sliced QuerySet.union() crash.

Regression in 3d734c09ff0138441dfe0a59010435871d17950f.

Thanks Raphaël Stefanini for the report.

Backport of cc8aa6bf9c127a493e6dd005012b9e6397b3f319 from main
}}}

--
Ticket URL: <https://code.djangoproject.com/ticket/34267#comment:11>

Reply all
Reply to author
Forward
0 new messages