Bug #16738 DD: Cluster does not handle running out of space in disk data file
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.
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.040 sec. using MySQL 8.4.7-u6-cloud
Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the
respective copyright holders.
It is not reviewed in advance
by Oracle and does not necessarily represent the opinion of
Oracle or any other party.
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.