Description:
Created small disk data file of 5 MB using the following:
$sth = $dbhM->prepare("CREATE LOGFILE GROUP TPCB_LOG
ADD UNDOFILE './tpcb_log/undofile.dat'
INITIAL_SIZE 150M
UNDO_BUFFER_SIZE = 1M
ENGINE=NDB;")
or die "Prepare CREATE LOGFILE GROUP error: ", $dbhM->errstr;
$sth->execute()
or die "CREATE LOGFILE GROUP error: ", $sth->errstr;
$sth->finish();
$sth = $dbhM->prepare("ALTER LOGFILE GROUP TPCB_LOG
ADD UNDOFILE './tpcb_log/undofile2.dat'
INITIAL_SIZE 150M
ENGINE=NDB;")
or die "Prepare ALTER LOGFILE GROUP error: ", $dbhM->errstr;
$sth->execute()
or die "ALTER LOGFILE GROUP error: ", $sth->errstr;
$sth->finish();
$sth = $dbhM->prepare("CREATE TABLESPACE TPCB_TS
ADD DATAFILE './tpcb_ts/datafile.dat'
USE LOGFILE GROUP TPCB_LOG
INITIAL_SIZE 5M
ENGINE=NDB;")
or die "Prepare CREATE TABLESPACE error: ", $dbhM->errstr;
Started insert of 10000000 rows of data into accounts table. At row 39,600 ndb data node aborted with:
Time: Tuesday 24 January 2006 - 01:18:48
Status: Ndbd file system error, restart node initial
Message: Read underflow (Ndbd file system inconsistency error, please report a bug)
Error: 2816
Error data: PGMAN: File system read failed. OS errno: 1000
Error object: PGMAN (Line: 1814) 0x0000000a
Program: /home/ndbdev/jmiller/builds/libexec/ndbd
Pid: 7155
Trace: /space/run/ndb_4_trace.log.1
Version: Version 5.1.6 (alpha)
***EOM***
--------------- Signal ----------------
r.bn: 261 "PGMAN", r.proc: 4, r.sigId: 8496200 gsn: 263 "FSREADREF" prio: 1
s.bn: 253 "NDBFS", s.proc: 4, s.sigId: 8496199 length: 4 trace: 1 #sec: 0 fragInf: 0
UserPointer: 129
ErrorCode: 2816, Read underflow
OS ErrorCode: 1000
--------------- Signal ----------------
r.bn: 253 "NDBFS", r.proc: 4, r.sigId: 8496199 gsn: 164 "CONTINUEB" prio: 1
s.bn: 253 "NDBFS", s.proc: 4, s.sigId: 8496193 length: 1 trace: 0 #sec: 0 fragInf: 0
Scanning the memory channel again with no delay
--------------- Signal ----------------
r.bn: 253 "NDBFS", r.proc: 4, r.sigId: 8496198 gsn: 267 "FSSYNCREQ" prio: 0
s.bn: 247 "DBLQH", s.proc: 4, s.sigId: 8496194 length: 3 trace: 2 #sec: 0 fragInf: 0
How to repeat:
Edit load_tpcb.pl and change the INITIAL_SIZE to 5M and change account to == 10000000 and start perl script
Suggested fix:
The cluster should notice that it is almost out of space leaving some room in the file. It should issue warnings/errors and not allow file to fill.
Description: Created small disk data file of 5 MB using the following: $sth = $dbhM->prepare("CREATE LOGFILE GROUP TPCB_LOG ADD UNDOFILE './tpcb_log/undofile.dat' INITIAL_SIZE 150M UNDO_BUFFER_SIZE = 1M ENGINE=NDB;") or die "Prepare CREATE LOGFILE GROUP error: ", $dbhM->errstr; $sth->execute() or die "CREATE LOGFILE GROUP error: ", $sth->errstr; $sth->finish(); $sth = $dbhM->prepare("ALTER LOGFILE GROUP TPCB_LOG ADD UNDOFILE './tpcb_log/undofile2.dat' INITIAL_SIZE 150M ENGINE=NDB;") or die "Prepare ALTER LOGFILE GROUP error: ", $dbhM->errstr; $sth->execute() or die "ALTER LOGFILE GROUP error: ", $sth->errstr; $sth->finish(); $sth = $dbhM->prepare("CREATE TABLESPACE TPCB_TS ADD DATAFILE './tpcb_ts/datafile.dat' USE LOGFILE GROUP TPCB_LOG INITIAL_SIZE 5M ENGINE=NDB;") or die "Prepare CREATE TABLESPACE error: ", $dbhM->errstr; Started insert of 10000000 rows of data into accounts table. At row 39,600 ndb data node aborted with: Time: Tuesday 24 January 2006 - 01:18:48 Status: Ndbd file system error, restart node initial Message: Read underflow (Ndbd file system inconsistency error, please report a bug) Error: 2816 Error data: PGMAN: File system read failed. OS errno: 1000 Error object: PGMAN (Line: 1814) 0x0000000a Program: /home/ndbdev/jmiller/builds/libexec/ndbd Pid: 7155 Trace: /space/run/ndb_4_trace.log.1 Version: Version 5.1.6 (alpha) ***EOM*** --------------- Signal ---------------- r.bn: 261 "PGMAN", r.proc: 4, r.sigId: 8496200 gsn: 263 "FSREADREF" prio: 1 s.bn: 253 "NDBFS", s.proc: 4, s.sigId: 8496199 length: 4 trace: 1 #sec: 0 fragInf: 0 UserPointer: 129 ErrorCode: 2816, Read underflow OS ErrorCode: 1000 --------------- Signal ---------------- r.bn: 253 "NDBFS", r.proc: 4, r.sigId: 8496199 gsn: 164 "CONTINUEB" prio: 1 s.bn: 253 "NDBFS", s.proc: 4, s.sigId: 8496193 length: 1 trace: 0 #sec: 0 fragInf: 0 Scanning the memory channel again with no delay --------------- Signal ---------------- r.bn: 253 "NDBFS", r.proc: 4, r.sigId: 8496198 gsn: 267 "FSSYNCREQ" prio: 0 s.bn: 247 "DBLQH", s.proc: 4, s.sigId: 8496194 length: 3 trace: 2 #sec: 0 fragInf: 0 How to repeat: Edit load_tpcb.pl and change the INITIAL_SIZE to 5M and change account to == 10000000 and start perl script Suggested fix: The cluster should notice that it is almost out of space leaving some room in the file. It should issue warnings/errors and not allow file to fill.