[Django] #22879: Database errors coming from cursor iterator are not converted to Django database errors

42 views
Skip to first unread message

Django

unread,
Jun 21, 2014, 4:20:53 PM6/21/14
to django-...@googlegroups.com
#22879: Database errors coming from cursor iterator are not converted to Django
database errors
-------------------------------+--------------------
Reporter: denisenkom@… | Owner: nobody
Type: Uncategorized | Status: new
Component: Uncategorized | Version: 1.6
Severity: Normal | Keywords:
Triage Stage: Unreviewed | Has patch: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------+--------------------
Here is one possible situation:

{{{
Traceback (most recent call last):
File "/opt/python-2.7/lib/python2.7/threading.py", line 552, in
__bootstrap_inner
self.run()
File "/opt/python-2.7/lib/python2.7/threading.py", line 505, in run
self.__target(*self.__args, **self.__kwargs)
File "/home/denisenk/django-
sqlserver/env/src/django/tests/select_for_update/tests.py", line 245, in
raw
connection.ops.for_update_sql(nowait=True)
File "/home/denisenk/django-
sqlserver/env/src/django/django/db/models/query.py", line 1427, in
__iter__
for values in query:
File "/home/denisenk/django-sqlserver/env/lib/python2.7/site-
packages/six.py", line 473, in next
return type(self).__next__(self)
File "/home/denisenk/django-sqlserver/env/src/pytds/pytds/__init__.py",
line 703, in __next__
row = self.fetchone()
File "/home/denisenk/django-sqlserver/env/src/pytds/pytds/__init__.py",
line 676, in fetchone
row = self._session.fetchone()
File "/home/denisenk/django-sqlserver/env/src/pytds/pytds/tds.py", line
3429, in fetchone
if not self.next_row():
File "/home/denisenk/django-sqlserver/env/src/pytds/pytds/tds.py", line
3443, in next_row
self.process_end(marker)
File "/home/denisenk/django-sqlserver/env/src/pytds/pytds/tds.py", line
2654, in process_end
self.raise_db_exception()
File "/home/denisenk/django-sqlserver/env/src/pytds/pytds/tds.py", line
2443, in raise_db_exception
raise ex
OperationalError: Lock request time out period exceeded.
}}}

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

Django

unread,
Jun 28, 2014, 10:10:24 AM6/28/14
to django-...@googlegroups.com
#22879: Database errors coming from cursor iterator are not converted to Django
database errors
-------------------------------------+-------------------------------------

Reporter: denisenkom@… | Owner: nobody
Type: Uncategorized | Status: new
Component: Database layer | Version: 1.6
(models, ORM) | Resolution:
Severity: Normal | Triage Stage:
Keywords: | Unreviewed
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0

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

* needs_docs: => 0
* has_patch: 0 => 1
* component: Uncategorized => Database layer (models, ORM)
* needs_tests: => 0
* needs_better_patch: => 0


Comment:

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

--
Ticket URL: <https://code.djangoproject.com/ticket/22879#comment:1>

Django

unread,
Aug 31, 2014, 3:01:51 PM8/31/14
to django-...@googlegroups.com
#22879: Database errors coming from cursor iterator are not converted to Django
database errors
-------------------------------------+-------------------------------------

Reporter: denisenkom@… | Owner: nobody
Type: Uncategorized | Status: new
Component: Database layer | Version: 1.6
(models, ORM) | Resolution:
Severity: Normal | Triage Stage: Accepted
Keywords: | Needs documentation: 0
Has patch: 1 | Patch needs improvement: 0
Needs tests: 0 | UI/UX: 0
Easy pickings: 0 |
-------------------------------------+-------------------------------------
Changes (by aaugustin):

* stage: Unreviewed => Accepted


--
Ticket URL: <https://code.djangoproject.com/ticket/22879#comment:2>

Django

unread,
Sep 2, 2014, 4:30:08 PM9/2/14
to django-...@googlegroups.com
#22879: Database errors coming from cursor iterator are not converted to Django
database errors
-------------------------------------+-------------------------------------
Reporter: denisenkom@… | Owner: nobody
Type: Bug | Status: new

Component: Database layer | Version: 1.6
(models, ORM) | Resolution:
Severity: Normal | Triage Stage: Accepted
Keywords: | Needs documentation: 0
Has patch: 1 | Patch needs improvement: 0
Needs tests: 0 | UI/UX: 0
Easy pickings: 0 |
-------------------------------------+-------------------------------------
Changes (by aaugustin):

* type: Uncategorized => Bug


--
Ticket URL: <https://code.djangoproject.com/ticket/22879#comment:3>

Django

unread,
Sep 30, 2014, 8:17:22 AM9/30/14
to django-...@googlegroups.com
#22879: Database errors coming from cursor iterator are not converted to Django
database errors
-------------------------------------+-------------------------------------
Reporter: denisenkom@… | Owner: nobody

Type: Bug | Status: new
Component: Database layer | Version: 1.6
(models, ORM) | Resolution:
Severity: Normal | Triage Stage: Accepted
Keywords: | Needs documentation: 0
Has patch: 1 | Patch needs improvement: 1
Needs tests: 1 | UI/UX: 0
Easy pickings: 0 |
-------------------------------------+-------------------------------------
Changes (by tchaumeny):

* needs_better_patch: 0 => 1
* needs_tests: 0 => 1


Comment:

As discussed on https://github.com/django/django/pull/2839, the patch
could be simplified a bit.

--
Ticket URL: <https://code.djangoproject.com/ticket/22879#comment:4>

Django

unread,
Oct 2, 2014, 9:47:04 AM10/2/14
to django-...@googlegroups.com
#22879: Database errors coming from cursor iterator are not converted to Django
database errors
-------------------------------------+-------------------------------------
Reporter: denisenkom@… | Owner: nobody

Type: Bug | Status: new
Component: Database layer | Version: 1.6
(models, ORM) | Resolution:
Severity: Normal | Triage Stage: Accepted
Keywords: | Needs documentation: 0
Has patch: 1 | Patch needs improvement: 0

Needs tests: 1 | UI/UX: 0
Easy pickings: 0 |
-------------------------------------+-------------------------------------
Changes (by timgraham):

* needs_better_patch: 1 => 0


Comment:

Patch is now simpler. How about including a regression test for MSSQL
Server even if it passes on all the bundled backends?

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

Django

unread,
Oct 2, 2014, 7:36:21 PM10/2/14
to django-...@googlegroups.com
#22879: Database errors coming from cursor iterator are not converted to Django
database errors
-------------------------------------+-------------------------------------
Reporter: denisenkom@… | Owner: nobody

Type: Bug | Status: new
Component: Database layer | Version: 1.6
(models, ORM) | Resolution:
Severity: Normal | Triage Stage: Ready for
Keywords: | checkin

Has patch: 1 | Needs documentation: 0
Needs tests: 1 | Patch needs improvement: 0

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

* stage: Accepted => Ready for checkin


Comment:

According to the PR, there is already such a test in Django's test suite.

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

Django

unread,
Oct 27, 2014, 8:43:15 AM10/27/14
to django-...@googlegroups.com
#22879: Database errors coming from cursor iterator are not converted to Django
database errors
-------------------------------------+-------------------------------------
Reporter: denisenkom@… | Owner: nobody
Type: Bug | Status: closed

Component: Database layer | Version: 1.6
(models, ORM) | Resolution: fixed

Severity: Normal | Triage Stage: Ready for
Keywords: | checkin
Has patch: 1 | Needs documentation: 0
Needs tests: 1 | Patch needs improvement: 0

Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Anssi Kääriäinen <akaariai@…>):

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


Comment:

In [changeset:"d4bc0bf435402f32d1e31aeffd280276349283d8"]:
{{{
#!CommitTicketReference repository=""
revision="d4bc0bf435402f32d1e31aeffd280276349283d8"
Fixed #22879 -- Intercept errors coming from cursor.__next__()
}}}

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

Reply all
Reply to author
Forward
0 new messages