Skip Menu |

This queue is for tickets about the DBD-SQLite CPAN distribution.

Report information
The Basics
Id: 9792
Status: resolved
Priority: 0/
Queue: DBD-SQLite

Owner: Nobody in particular

Bug Information
Severity: Important
Broken in: (no value)
Fixed in: (no value)

Subject: Crashes upon re-executing a statement
Download (untitled) / with headers
text/plain 1.7k
When I build a statement and execute it twice with selectall_arrayref, I get a segfault. I don't get the segfault when I build a fresh statement each time. The statement is just a simple 'select <column> from <table> where <column> = ?', bound to different value each time. The relevant backtrace is: #0 0xb71e74ac in vdbeUnbind (p=0x0, i=0) at vdbeapi.c:425 #1 0xb71e755c in bindText (pStmt=0x0, i=1, zData=0x87403b0, nData=0, xDel=0, encoding=1) at vdbeapi.c:455 #2 0xb71e7796 in sqlite3_bind_text (pStmt=0x0, i=0, zData=0x0, nData=0, xDel=0) at vdbeapi.c:514 #3 0xb71be6d1 in sqlite_st_execute (sth=0x870f558, imp_sth=0x873c8f0) at dbdimp.c:355 #4 0xb71aafc7 in XS_DBD__SQLite__db_selectall_arrayref (my_perl=0x814c008, cv=0x871384c) at SQLite.xsi:136 #5 0xb7208b30 in XS_DBI_dispatch () from /usr/lib/perl5/auto/DBI/ And the relevant trace obtained by setting $dbh->trace('4|ALL|SQL') is: -> selectall_arrayref for DBD::SQLite::db (DBI::db=HASH(0x8737ad0)~0x8737db8 DBI::st=HASH(0x87385b8) HASH(0x8765bd4) 'vek') thr#814c008 sqlite trace: bind into 0x8722fe8: 1 => vek (0) pos 0 at dbdimp.c line 434 sqlite trace: re-prepare statement at dbdimp.c line 316 sqlite trace: params left in 0x8722fe8: 0 at dbdimp.c line 330 sqlite trace: bind 0 type 0 as vek at dbdimp.c line 331 zsh: segmentation fault (core dumped) ./xxxv Note: I first thought that I am passing a wrong reference and so I filed bug #9789. That bug might thus be a false alarm (though it can't hurt to improve sanity-checking). Note: This bug might be related to bugs #9643 and #9663, though neither of them mentions crashing. I'll try to get extra information, if you ask me. My configuration: Debian unstable, perl 5.8.4-5, sqlite3 3.0.8-3, DBI::SQLite 1.07 (installed manualy).
Download (untitled) / with headers
text/plain 319b
Unfortunately, I can't replicate your problem. My main issue is that I'm not sure exactly how you use selectall_arrayref on a statement twice, since it's a dbh method and does a one shot prepare and execute. Resolving this for now, I'll need a sample failing test script to continue, it this is still failing for you.

This service is sponsored and maintained by Best Practical Solutions and runs on infrastructure.

Please report any issues with to