hallo,
ich benutze seit längerer zeit xxv und war immer zufrieden damit (bis auf kleinere unschönheiten)
doch nachdem ich meinen vdr ein paar wochen nicht mehr benutzt habe, startet xxv nicht mehr. das init script wird noch korrekt ausgeführt, direkt danach wird aber dann folgende fehlermeldung auf der konsole ausgegeben:
Code
Can't use an undefined value as an ARRAY reference at /usr/lib/xxv/XXV/MODULES/TIMERS.pm line 356.
sagt mir leider überhaupt nichts
an der besagten stelle steht folgendes:
Code
if(tableExists($obj->{dbh}, 'TIMERS')) {
my $fields = fields($obj->{dbh}, 'select * from TIMERS');
$obj->{dbh}->do('drop table TIMERS') <<< zeile 356
unless(scalar @$fields == 17);
}
das log file (xxvd.log) sagt mir das:
Code
[23:49:03] TIMERS: DBD::mysql::st execute failed: Can't open file: 'TIMERS.MYI' (errno: 145) at /usr/lib/xxv/Tools.pm line 225.
10 (501) [23:49:03] TIMERS: Can't open file: 'TIMERS.MYI' (errno: 145) - select * from TIMERS WHERE 0 = 1
11 (550) [23:49:03] TIMERS: Can't use an undefined value as an ARRAY reference at /usr/lib/xxv/XXV/MODULES/TIMERS.pm line 356.
Zeile 225 der Tools.pm sieht so aus:
Code
# ------------------
sub fields {
# ------------------
my $dbh = shift || return error ('No DBH!' );
my $str = shift || return error ('No SQL!');
$str =~ s/order\s+by.+//sig;
my $sql = sprintf('%s %s 0 = 1', $str, ($str =~ /where/i ? 'AND' : 'WHERE'));
my $sth = $dbh->prepare($sql) or return error("$DBI::errstr - $sql");
$sth->execute or return error("$DBI::errstr - $sql"); <<< zeile 225
my $fields = $sth->{'NAME'};
return $fields;
}
Alles anzeigen
der vdr läuft und funktioniert tadellos
ich habe eher den verdacht dass es an mysql liegt, aber auch der mysql server läuft
ich benutze xxv 0.80 und gentoo
gruß
leif