Bug #20073 information_schema.FILES for UNDO LOG give incorrect EXTENT_SIZE, FREE_EXTENTS,
Submitted: 25 May 2006 18:38 Modified: 18 Oct 2006 10:17
Reporter: Jonathan Miller Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Cluster: Disk Data Severity:S3 (Non-critical)
Version:5.1.12 OS:Linux (Linux 32 Bit OS)
Assigned to: Stewart Smith CPU Architecture:Any
Tags: Test blocking

[25 May 2006 18:38] Jonathan Miller
Description:
information_schema.FILES for UNDO LOG give incorrect EXTENT_SIZE, FREE_EXTENTS, and TOTAL_EXTENTS.

Consider the FILE_TYPE: DATAFILE first
*************************** 3. row ***************************
           FILE_NAME: datafile3.dat
           FILE_TYPE: DATAFILE
     TABLESPACE_NAME: ts3
  LOGFILE_GROUP_NAME: lg2
LOGFILE_GROUP_NUMBER: 0
         EXTENT_SIZE: 1048576
        FREE_EXTENTS: 12
       TOTAL_EXTENTS: 12
        INITIAL_SIZE: 12582912
        MAXIMUM_SIZE: 12582912
              STATUS: NORMAL
               EXTRA: CLUSTER_NODE=2

So 1048576 * 12 = 12582912

Now lets look at FILE_TYPE: UNDO LOG
           FILE_NAME: undofile.dat
           FILE_TYPE: UNDO LOG
     TABLESPACE_NAME: ts2
  LOGFILE_GROUP_NAME: lg2
LOGFILE_GROUP_NUMBER: 10
         EXTENT_SIZE: 4
        FREE_EXTENTS: 4184068
       TOTAL_EXTENTS: 1048576
        INITIAL_SIZE: 16777216
        MAXIMUM_SIZE: 16777216
              STATUS: NORMAL
               EXTRA: CLUSTER_NODE=3

EXTENT_SIZE: 4 ?
FREE_EXTENTS: 4184068 ?
TOTAL_EXTENTS: 1048576 ?

How to repeat:
 CREATE LOGFILE GROUP lg2 ADD UNDOFILE 'undofile.dat' INITIAL_SIZE 16M UNDO_BUFFER_SIZE = 1M ENGINE=NDB;
CREATE TABLESPACE ts1 ADD DATAFILE 'datafile2.dat' USE LOGFILE GROUP lg2 INITIAL_SIZE 12M ENGINE NDB;
select FILE_NAME, FILE_TYPE,TABLESPACE_NAME,LOGFILE_GROUP_NAME,
LOGFILE_GROUP_NUMBER,EXTENT_SIZE,FREE_EXTENTS,
TOTAL_EXTENTS,INITIAL_SIZE, MAXIMUM_SIZE,STATUS,EXTRA  from information_schema.FILES\G
[7 Jun 2006 15:04] Stewart Smith
patch

Attachment: 20073.diff (text/x-patch), 1.05 KiB.

[19 Jun 2006 14:30] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/7856
[19 Jun 2006 14:33] Stewart Smith
pushed to 5.1.12
[19 Jun 2006 17:43] Jon Stephens
Thank you for your bug report. This issue has been committed to our
source repository of that product and will be incorporated into the
next release.

If necessary, you can access the source repository and build the latest
available version, including the bugfix, yourself. More information 
about accessing the source trees is available at
    http://www.mysql.com/doc/en/Installing_source_tree.html

Additional info:

Documented bugfix in 5.1.12 changelog. Closed.
[20 Jun 2006 4:25] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/7890
[12 Jul 2006 12:07] Jonathan Miller
Hi, I have tried the team and main tree. Both pulled and built fresh, and I am still getting same issues as before.

+ SELECT FILE_NAME, FREE_EXTENTS,
+ TOTAL_EXTENTS FROM INFORMATION_SCHEMA.FILES;
+ FILE_NAME     FREE_EXTENTS    TOTAL_EXTENTS
+ datafile2.dat 5               5
+ datafile2.dat 5               5
+ datafile3.dat 5               5
+ datafile3.dat 5               5
+ datafile.dat  5               5
+ datafile.dat  5               5
+ undofile03.dat3381644         1310720
+ undofile03.dat3381644         1310720
+ undofile.dat  3381644         1048576
+ undofile.dat  3381644         1048576
+ undofile02.dat3381644         1048576
+ undofile02.dat3381644         1048576

Thanks
[8 Aug 2006 9:30] Stewart Smith
sent this mail to jonas and jeb following discussion with david (and waiting for their thoughts):

is fixed except for the case where you have multiple undo
files.

we report back the free space in the log file group, not the individual
undo files.

the free log space in the logfile group is probably the information the
user wants to know.

so, the proposal i have is to fix it like this:

for each UNDO FILE, report FREE_EXTENTS as NULL.
add a row for each log file group, where the FREE_EXTENTS for the LFG is
reported.

so if we have undo1 and undo2 in lfg1, both files 10MB, the row for the
lfg will be:
FILE_NAME: NULL
FILE_TYPE: UNDO LOG
TABLESPACE_NAME: NULL
LOGFILE_GROUP_NAME: lfg1
EXTENT_SIZE: 4
TOTAL_EXTENTS: 20M/4
FREE_EXTENTS: (some value less than or equal to 20MB/4)
INITIAL_SIZE: 20M
MAXIMUM_SIZE: 2^32? or 2^64?
STATUS: NORMAL
EXTRA: NULL

OR, the other way to do this would to in PGMAN, report back usage in
each log file  and let the user do a SQL query to work out how much free
log space they have in the LFG.

i prefer the first option.
[8 Aug 2006 11:46] Jonathan Miller
Sent this one back :-)

I prefer the second as that is what you are doing with TS data files.

We can add some math to the docs.

Thanks,
/jeb
[18 Sep 2006 5:01] Stewart Smith
fix about ready.
[18 Sep 2006 15:44] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/12144

ChangeSet@1.2308, 2006-09-19 01:44:32+10:00, stewart@willster.(none) +4 -0
  BUG#20073 information_schema.FILES for UNDO LOG give incorrect EXTENT_SIZE, FREE_EXTENTS,
  
  Change things around so that we add a row for each log file group that lists
  the free space for that log file group.
[20 Sep 2006 7:16] Stewart Smith
pushed to 5.1-ndb
[20 Sep 2006 18:05] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/12292

ChangeSet@1.2317, 2006-09-20 20:04:58+02:00, mskold@mysql.com +1 -0
  bug#20073 information_schema.FILES for UNDO LOG give incorrect EXTENT_SIZE, FREE_EXTENTS,: Updated reslt file
[18 Oct 2006 10:17] Jon Stephens
Thank you for your bug report. This issue has been committed to our source repository of that product and will be incorporated into the next release.

If necessary, you can access the source repository and build the latest available version, including the bug fix. More information about accessing the source trees is available at

    http://dev.mysql.com/doc/en/installing-source.html

Documented fix in 5.1.12 changelog.