Issue10811
Created on 2011-01-03 01:33 by Erick.Tryzelaar, last changed 2022-04-11 14:57 by admin. This issue is now closed.
| Files | ||||
|---|---|---|---|---|
| File name | Uploaded | Description | Edit | |
| sqlite-crash.py | Erick.Tryzelaar, 2011-01-03 01:33 | |||
| Messages (7) | |||
|---|---|---|---|
| msg125148 - (view) | Author: Erick Tryzelaar (Erick.Tryzelaar) | Date: 2011-01-03 01:33 | |
I found that the sqlite3 function executemany module crashes when passed in a generator that it iself is executing a query. It looks like this confuses the statement cache, and causes it to get cleared inappropriately in this case. I've attached a file that exhibits the problem, which results in this stack trace: Program received signal EXC_BAD_ACCESS, Could not access memory. Reason: KERN_INVALID_ADDRESS at address: 0x0000000000000028 pysqlite_statement_mark_dirty (self=0x0) at /Users/Shared/erickt/Projects/py3k/Modules/_sqlite/statement.c:367 367 self->in_use = 1; (gdb) bt #0 pysqlite_statement_mark_dirty (self=0x0) at /Users/Shared/erickt/Projects/py3k/Modules/_sqlite/statement.c:367 #1 0x000000010067e125 in _pysqlite_query_execute (self=0x100568880, multiple=1, args=<value temporarily unavailable, due to optimizations>) at /Users/Shared/erickt/Projects/py3k/Modules/_sqlite/cursor.c:625 #2 0x00000001000af6a2 in PyEval_EvalFrameEx (f=0x1003579f0, throwflag=<value temporarily unavailable, due to optimizations>) at Python/ceval.c:3874 #3 0x00000001000b000a in PyEval_EvalCodeEx (_co=0x1004977a0, globals=<value temporarily unavailable, due to optimizations>, locals=<value temporarily unavailable, due to optimizations>, args=0x0, argcount=0, kws=0x0, kwcount=0, defs=0x0, defcount=0, kwdefs=0x0, closure=0x0) at Python/ceval.c:3310 #4 0x00000001000b031f in PyEval_EvalCode (co=<value temporarily unavailable, due to optimizations>, globals=<value temporarily unavailable, due to optimizations>, locals=<value temporarily unavailable, due to optimizations>) at Python/ceval.c:760 #5 0x00000001000d71eb in run_mod [inlined] () at /Users/Shared/erickt/Projects/py3k/Python/pythonrun.c:1759 #6 0x00000001000d71eb in PyRun_FileExFlags (fp=0x7fff703f6f40, filename=0x1005c9190 "/Users/erickt/sqlite-crash.py", start=<value temporarily unavailable, due to optimizations>, globals=0x100325220, locals=0x100325220, closeit=1, flags=0x7fff5fbfef90) at Python/pythonrun.c:1716 #7 0x00000001000d74b9 in PyRun_SimpleFileExFlags (fp=0x7fff703f6f40, filename=0x1005c9190 "/Users/erickt/sqlite-crash.py", closeit=1, flags=0x7fff5fbfef90) at Python/pythonrun.c:1241 #8 0x00000001000ebe13 in Py_Main (argc=4832928, argv=<value temporarily unavailable, due to optimizations>) at Modules/main.c:297 #9 0x0000000100000abf in main (argc=2, argv=0x7fff5fbff090) at ./Modules/python.c:59 |
|||
| msg135574 - (view) | Author: Roundup Robot (python-dev) ![]() |
Date: 2011-05-09 10:24 | |
New changeset c6523d6faef4 by Gerhard Haering in branch 'default': #10811: Fix recursive usage of cursors. Instead of crashing, raise a ProgrammingError now. http://hg.python.org/cpython/rev/c6523d6faef4 |
|||
| msg135582 - (view) | Author: Roundup Robot (python-dev) ![]() |
Date: 2011-05-09 12:46 | |
New changeset 2fdabf0dc8f7 by Victor Stinner in branch 'default': Issue #10811: Use TestCase.assertRaises() in the new test http://hg.python.org/cpython/rev/2fdabf0dc8f7 |
|||
| msg148302 - (view) | Author: Ezio Melotti (ezio.melotti) * ![]() |
Date: 2011-11-25 04:46 | |
Can this be closed? |
|||
| msg152499 - (view) | Author: Petri Lehtinen (petri.lehtinen) * ![]() |
Date: 2012-02-03 09:13 | |
It seems to me that the fix still needs to be backported to 3.2 and 2.7. |
|||
| msg152765 - (view) | Author: Roundup Robot (python-dev) ![]() |
Date: 2012-02-06 20:07 | |
New changeset 631e99961c5f by Petri Lehtinen in branch '2.7': Issue #10811: Fix recursive usage of cursors. Instead of crashing, raise a ProgrammingError now. http://hg.python.org/cpython/rev/631e99961c5f New changeset d51ceef4b62f by Petri Lehtinen in branch '3.2': Issue #10811: Fix recursive usage of cursors. Instead of crashing, raise a ProgrammingError now. http://hg.python.org/cpython/rev/d51ceef4b62f |
|||
| msg152766 - (view) | Author: Petri Lehtinen (petri.lehtinen) * ![]() |
Date: 2012-02-06 20:08 | |
It's now fixed in all branches. Thanks for reporting! |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022-04-11 14:57:10 | admin | set | github: 55020 |
| 2012-02-06 20:08:04 | petri.lehtinen | set | status: open -> closed resolution: fixed messages: + msg152766 |
| 2012-02-06 20:07:08 | python-dev | set | messages: + msg152765 |
| 2012-02-03 09:13:33 | petri.lehtinen | set | status: pending -> open versions: + Python 2.7, Python 3.3 nosy: + petri.lehtinen messages: + msg152499 |
| 2011-11-25 04:46:20 | ezio.melotti | set | status: open -> pending nosy: + ezio.melotti messages: + msg148302 |
| 2011-05-09 12:46:19 | python-dev | set | messages: + msg135582 |
| 2011-05-09 10:24:20 | python-dev | set | nosy:
+ python-dev messages: + msg135574 |
| 2011-01-03 01:43:24 | pitrou | set | assignee: ghaering nosy: + ghaering |
| 2011-01-03 01:33:45 | Erick.Tryzelaar | create | |

