Skip to content

Commit 5c44a9f

Browse files
committed
Bug#21664268 - IMPROVE THE DEBUG IB_LOG MESSAGES
Problem: ------- On debug builds, when --debug=d,ib_log is passed to mysqld, it prints the redo log records scanned and applied. It prints the redo log records as number instead of strings. For example, 2 instead of MLOG_2BYTES Fix: ---- Use strings to print redo log records. For example it will look like "recv_group_scan_log_recs: ib_log: scan 2123238: log rec MLOG_TRUNCATE len 15 page 78:0" Reviewed-by: Marko Makela <[email protected]> RB: 9966
1 parent 6dd5417 commit 5c44a9f

File tree

1 file changed

+189
-6
lines changed

1 file changed

+189
-6
lines changed

storage/innobase/log/log0recv.cc

Lines changed: 189 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,14 @@ mysql_pfs_key_t recv_writer_thread_key;
152152
volatile bool recv_writer_thread_active = false;
153153
#endif /* !UNIV_HOTBACKUP */
154154

155+
#ifndef DBUG_OFF
156+
/** Return string name of the redo log record type.
157+
@param[in] type record log record enum
158+
@return string name of record log record */
159+
const char*
160+
get_mlog_string(mlog_id_t type);
161+
#endif /* !DBUG_OFF */
162+
155163
/* prototypes */
156164

157165
#ifndef UNIV_HOTBACKUP
@@ -1967,9 +1975,9 @@ recv_recover_page_func(
19671975

19681976
DBUG_PRINT("ib_log",
19691977
("apply " LSN_PF ":"
1970-
" %d len " ULINTPF " page %u:%u",
1978+
" %s len " ULINTPF " page %u:%u",
19711979
recv->start_lsn,
1972-
recv->type, recv->len,
1980+
get_mlog_string(recv->type), recv->len,
19731981
recv_addr->space,
19741982
recv_addr->page_no));
19751983

@@ -2740,10 +2748,11 @@ recv_parse_log_recs(
27402748
#endif /* UNIV_LOG_LSN_DEBUG */
27412749
default:
27422750
DBUG_PRINT("ib_log",
2743-
("scan " LSN_PF ": log rec %d"
2751+
("scan " LSN_PF ": log rec %s"
27442752
" len " ULINTPF
27452753
" page " ULINTPF ":" ULINTPF,
2746-
old_lsn, type, len, space, page_no));
2754+
old_lsn, get_mlog_string(type),
2755+
len, space, page_no));
27472756

27482757
switch (store) {
27492758
case STORE_NO:
@@ -2812,11 +2821,11 @@ recv_parse_log_recs(
28122821
}
28132822

28142823
DBUG_PRINT("ib_log",
2815-
("scan " LSN_PF ": multi-log rec %d"
2824+
("scan " LSN_PF ": multi-log rec %s"
28162825
" len " ULINTPF
28172826
" page " ULINTPF ":" ULINTPF,
28182827
recv_sys->recovered_lsn,
2819-
type, len, space, page_no));
2828+
get_mlog_string(type), len, space, page_no));
28202829
}
28212830

28222831
new_recovered_lsn = recv_calc_lsn_on_data_add(
@@ -3999,3 +4008,177 @@ recv_dblwr_t::find_page(ulint space_id, ulint page_no)
39994008

40004009
return(result);
40014010
}
4011+
4012+
#ifndef DBUG_OFF
4013+
/** Return string name of the redo log record type.
4014+
@param[in] type record log record enum
4015+
@return string name of record log record */
4016+
const char*
4017+
get_mlog_string(mlog_id_t type)
4018+
{
4019+
switch (type) {
4020+
case MLOG_SINGLE_REC_FLAG:
4021+
return("MLOG_SINGLE_REC_FLAG");
4022+
4023+
case MLOG_1BYTE:
4024+
return("MLOG_1BYTE");
4025+
4026+
case MLOG_2BYTES:
4027+
return("MLOG_2BYTES");
4028+
4029+
case MLOG_4BYTES:
4030+
return("MLOG_4BYTES");
4031+
4032+
case MLOG_8BYTES:
4033+
return("MLOG_8BYTES");
4034+
4035+
case MLOG_REC_INSERT:
4036+
return("MLOG_REC_INSERT");
4037+
4038+
case MLOG_REC_CLUST_DELETE_MARK:
4039+
return("MLOG_REC_CLUST_DELETE_MARK");
4040+
4041+
case MLOG_REC_SEC_DELETE_MARK:
4042+
return("MLOG_REC_SEC_DELETE_MARK");
4043+
4044+
case MLOG_REC_UPDATE_IN_PLACE:
4045+
return("MLOG_REC_UPDATE_IN_PLACE");
4046+
4047+
case MLOG_REC_DELETE:
4048+
return("MLOG_REC_DELETE");
4049+
4050+
case MLOG_LIST_END_DELETE:
4051+
return("MLOG_LIST_END_DELETE");
4052+
4053+
case MLOG_LIST_START_DELETE:
4054+
return("MLOG_LIST_START_DELETE");
4055+
4056+
case MLOG_LIST_END_COPY_CREATED:
4057+
return("MLOG_LIST_END_COPY_CREATED");
4058+
4059+
case MLOG_PAGE_REORGANIZE:
4060+
return("MLOG_PAGE_REORGANIZE");
4061+
4062+
case MLOG_PAGE_CREATE:
4063+
return("MLOG_PAGE_CREATE");
4064+
4065+
case MLOG_UNDO_INSERT:
4066+
return("MLOG_UNDO_INSERT");
4067+
4068+
case MLOG_UNDO_ERASE_END:
4069+
return("MLOG_UNDO_ERASE_END");
4070+
4071+
case MLOG_UNDO_INIT:
4072+
return("MLOG_UNDO_INIT");
4073+
4074+
case MLOG_UNDO_HDR_DISCARD:
4075+
return("MLOG_UNDO_HDR_DISCARD");
4076+
4077+
case MLOG_UNDO_HDR_REUSE:
4078+
return("MLOG_UNDO_HDR_REUSE");
4079+
4080+
case MLOG_UNDO_HDR_CREATE:
4081+
return("MLOG_UNDO_HDR_CREATE");
4082+
4083+
case MLOG_REC_MIN_MARK:
4084+
return("MLOG_REC_MIN_MARK");
4085+
4086+
case MLOG_IBUF_BITMAP_INIT:
4087+
return("MLOG_IBUF_BITMAP_INIT");
4088+
4089+
#ifdef UNIV_LOG_LSN_DEBUG
4090+
case MLOG_LSN:
4091+
return("MLOG_LSN");
4092+
#endif /* UNIV_LOG_LSN_DEBUG */
4093+
4094+
case MLOG_INIT_FILE_PAGE:
4095+
return("MLOG_INIT_FILE_PAGE");
4096+
4097+
case MLOG_WRITE_STRING:
4098+
return("MLOG_WRITE_STRING");
4099+
4100+
case MLOG_MULTI_REC_END:
4101+
return("MLOG_MULTI_REC_END");
4102+
4103+
case MLOG_DUMMY_RECORD:
4104+
return("MLOG_DUMMY_RECORD");
4105+
4106+
case MLOG_FILE_DELETE:
4107+
return("MLOG_FILE_DELETE");
4108+
4109+
case MLOG_COMP_REC_MIN_MARK:
4110+
return("MLOG_COMP_REC_MIN_MARK");
4111+
4112+
case MLOG_COMP_PAGE_CREATE:
4113+
return("MLOG_COMP_PAGE_CREATE");
4114+
4115+
case MLOG_COMP_REC_INSERT:
4116+
return("MLOG_COMP_REC_INSERT");
4117+
4118+
case MLOG_COMP_REC_CLUST_DELETE_MARK:
4119+
return("MLOG_COMP_REC_CLUST_DELETE_MARK");
4120+
4121+
case MLOG_COMP_REC_SEC_DELETE_MARK:
4122+
return("MLOG_COMP_REC_SEC_DELETE_MARK");
4123+
4124+
case MLOG_COMP_REC_UPDATE_IN_PLACE:
4125+
return("MLOG_COMP_REC_UPDATE_IN_PLACE");
4126+
4127+
case MLOG_COMP_REC_DELETE:
4128+
return("MLOG_COMP_REC_DELETE");
4129+
4130+
case MLOG_COMP_LIST_END_DELETE:
4131+
return("MLOG_COMP_LIST_END_DELETE");
4132+
4133+
case MLOG_COMP_LIST_START_DELETE:
4134+
return("MLOG_COMP_LIST_START_DELETE");
4135+
4136+
case MLOG_COMP_LIST_END_COPY_CREATED:
4137+
return("MLOG_COMP_LIST_END_COPY_CREATED");
4138+
4139+
case MLOG_COMP_PAGE_REORGANIZE:
4140+
return("MLOG_COMP_PAGE_REORGANIZE");
4141+
4142+
case MLOG_ZIP_WRITE_NODE_PTR:
4143+
return("MLOG_ZIP_WRITE_NODE_PTR");
4144+
4145+
case MLOG_ZIP_WRITE_BLOB_PTR:
4146+
return("MLOG_ZIP_WRITE_BLOB_PTR");
4147+
4148+
case MLOG_ZIP_WRITE_HEADER:
4149+
return("MLOG_ZIP_WRITE_HEADER");
4150+
4151+
case MLOG_ZIP_PAGE_COMPRESS:
4152+
return("MLOG_ZIP_PAGE_COMPRESS");
4153+
4154+
case MLOG_ZIP_PAGE_COMPRESS_NO_DATA:
4155+
return("MLOG_ZIP_PAGE_COMPRESS_NO_DATA");
4156+
4157+
case MLOG_ZIP_PAGE_REORGANIZE:
4158+
return("MLOG_ZIP_PAGE_REORGANIZE");
4159+
4160+
case MLOG_FILE_RENAME2:
4161+
return("MLOG_FILE_RENAME2");
4162+
4163+
case MLOG_FILE_NAME:
4164+
return("MLOG_FILE_NAME");
4165+
4166+
case MLOG_CHECKPOINT:
4167+
return("MLOG_CHECKPOINT");
4168+
4169+
case MLOG_PAGE_CREATE_RTREE:
4170+
return("MLOG_PAGE_CREATE_RTREE");
4171+
4172+
case MLOG_COMP_PAGE_CREATE_RTREE:
4173+
return("MLOG_COMP_PAGE_CREATE_RTREE");
4174+
4175+
case MLOG_INIT_FILE_PAGE2:
4176+
return("MLOG_INIT_FILE_PAGE2");
4177+
4178+
case MLOG_TRUNCATE:
4179+
return("MLOG_TRUNCATE");
4180+
}
4181+
DBUG_ASSERT(0);
4182+
return(NULL);
4183+
}
4184+
#endif /* !DBUG_OFF */

0 commit comments

Comments
 (0)