Package: libdbd-sqlite2-perl
Version: 2:0.33-3

Running two concurrent queries with DBD::SQLite2 crashes the Perl interpreter with a segmentation fault. Here is a sample script and database that reproduces the problem:

#!/usr/bin/perl

use strict;
use warnings;
use DBI;

my($dbh,$q1,$q2);
$dbh = DBI->connect("dbi:SQLite2:test.db");

$q1 = $dbh->prepare("SELECT * FROM test WHERE col1 = ?");
$q1->execute(0);
$q2 = $dbh->prepare("SELECT * FROM test WHERE col1 = ?");
$q2->execute(1);

my (@row);
while (1) {
    if (@row = $q1->fetchrow()) {
        print "q1 fetch, id=$row[0], col1=$row[1], col2=$row[2]\n";
    } elsif (@row = $q2->fetchrow()) {
        print "q2 fetch, id=$row[0], col1=$row[1], col2=$row[2]\n";
    } else {
        last;
    }
}

$q1->finish();
$q2->finish();

$dbh->disconnect();

exit 0;

Create "test.db" using the following SQL:

create table test (id INTEGER PRIMARY KEY, col1 INTEGER, col2 INTEGER);
insert into test (id, col1, col2) values (1, 0, 0);
insert into test (id, col1, col2) values (2, 0, 1);
insert into test (id, col1, col2) values (3, 1, 0);
insert into test (id, col1, col2) values (4, 1, 1);

The output of the script with this database is:

q1 fetch, id=1, col1=0, col2=0
q1 fetch, id=2, col1=0, col2=1
q2 fetch, id=3, col1=1, col2=0
Segmentation fault

I expect that the final line should be "q2 fetch, id=4, col1=1, col2=1".

Debian 3.1, kernel 2.4.30, libc 2.3.2.ds1-22, Perl 5.8.4. All the expected dependencies are current with sarge and any released security updates.

--
Steve Madsen <[EMAIL PROTECTED]>


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to