Code

Opened 3 years ago

Closed 3 years ago

#16265 closed Bug (needsinfo)

DatabaseError: ORA-01403: no data found on Oracle

Reported by: Tiziano Owned by: nobody
Component: Database layer (models, ORM) Version: 1.1
Severity: Normal Keywords: oracle
Cc: Triage Stage: Accepted
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description (last modified by aaugustin)

We had a strange problem today: filtering on a model on an object resulted in an ORA-01403: no data found (we use Oracle 11g). Objects is there indeed.

We found the problem to be a lob field (not in the where conditions at all!) that contained a particular log of our application (maybe some content to be escaped??). We updated with a blank value and now all the filtering works. Do you know if this could be a known bug and how can be corrected for future?

This is the code and the traceback for reference:

>>> us=MyModel.objects.filter(pk=123456)
>>> print us
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/usr/lib/python2.5/site-packages/Django-1.1-py2.5.egg/django/db/models/query.py", line 68, in __repr__
    data = list(self[:REPR_OUTPUT_SIZE + 1])
  File "/usr/lib/python2.5/site-packages/Django-1.1-py2.5.egg/django/db/models/query.py", line 83, in __len__
    self._result_cache.extend(list(self._iter))
  File "/usr/lib/python2.5/site-packages/Django-1.1-py2.5.egg/django/db/models/query.py", line 238, in iterator
    for row in self.query.results_iter():
  File "/usr/lib/python2.5/site-packages/Django-1.1-py2.5.egg/django/db/models/sql/query.py", line 298, in results_iter
    row = self.resolve_columns(row, fields)
  File "/usr/lib/python2.5/site-packages/Django-1.1-py2.5.egg/django/db/backends/oracle/query.py", line 53, in resolve_columns
    values.append(self.convert_values(value, field))
  File "/usr/lib/python2.5/site-packages/Django-1.1-py2.5.egg/django/db/backends/oracle/query.py", line 58, in convert_values
    value = value.read()
DatabaseError: ORA-01403: no data found

Thanks in advance to all!

Attachments (0)

Change History (2)

comment:1 Changed 3 years ago by aaugustin

  • Description modified (diff)
  • Keywords oracle added
  • Needs documentation unset
  • Needs tests unset
  • Patch needs improvement unset
  • Triage Stage changed from Unreviewed to Accepted
  • Type changed from Uncategorized to Bug

Your description is a bit vague: "a particular log..."; it's hard to reproduce the bug with this information. It looks like in some circumstances, the Oracle backend reads more data than is available. Could you create an isolated test case that exhibits the problem?

Also, I see that you are using Django 1.1; that version is no longer supported (https://docs.djangoproject.com/en/dev/internals/release-process/#supported-versions). Is it possible to check if this bug also occurs in Django 1.3?

comment:2 Changed 3 years ago by russellm

  • Resolution set to needsinfo
  • Status changed from new to closed

I'm going to close this needsinfo. It sounds like there *might* be a legitimate bug in here, but the report is too vague for it to be actionable on our part.

Feel free to reopen if you can:

  • Confirm that it's still an issue with Django 1.3
  • Provide clear instructions for others to reproduce the problem

Add Comment

Modify Ticket

Change Properties
<Author field>
Action
as closed
as The resolution will be set. Next status will be 'closed'
The resolution will be deleted. Next status will be 'new'
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.