mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 13:32:33 +01:00
e829e96dbc
Print full command name to log files Convert table type to supported onces on ALTER TABLE
62 lines
1.6 KiB
Diff
62 lines
1.6 KiB
Diff
# This patch fixes a bug caused mysqld to get a core dump while
|
|
# bdb tries to resolve the log file after mysqld was killed with kill -9.
|
|
#
|
|
# Author: Michael Ubell, Sleepycat Software
|
|
# Mon, 26 Feb 2001 12:56:23 -0500 (EST)
|
|
#
|
|
|
|
*** log/log_rec.c 2001/02/08 03:05:01 11.50
|
|
--- log/log_rec.c 2001/02/24 00:42:46 11.51
|
|
***************
|
|
*** 50,55 ****
|
|
--- 50,56 ----
|
|
#include "db_am.h"
|
|
#include "log.h"
|
|
|
|
+ static int __log_check_master __P((DB_ENV *, u_int8_t *, char *));
|
|
static int __log_do_open __P((DB_ENV *, DB_LOG *,
|
|
u_int8_t *, char *, DBTYPE, int32_t, db_pgno_t));
|
|
static int __log_open_file __P((DB_ENV *, DB_LOG *, __log_register_args *));
|
|
***************
|
|
*** 341,346 ****
|
|
--- 342,350 ----
|
|
* Verify that we are opening the same file that we were
|
|
* referring to when we wrote this log record.
|
|
*/
|
|
+ if (meta_pgno != PGNO_BASE_MD &&
|
|
+ __log_check_master(dbenv, uid, name) != 0)
|
|
+ goto not_right;
|
|
if (memcmp(uid, dbp->fileid, DB_FILE_ID_LEN) != 0) {
|
|
memset(zeroid, 0, DB_FILE_ID_LEN);
|
|
if (memcmp(dbp->fileid, zeroid, DB_FILE_ID_LEN) != 0)
|
|
***************
|
|
*** 359,364 ****
|
|
--- 363,390 ----
|
|
(void)__log_add_logid(dbenv, lp, NULL, ndx);
|
|
|
|
return (ENOENT);
|
|
+ }
|
|
+
|
|
+ static int
|
|
+ __log_check_master(dbenv, uid, name)
|
|
+ DB_ENV *dbenv;
|
|
+ u_int8_t *uid;
|
|
+ char *name;
|
|
+ {
|
|
+ DB *dbp;
|
|
+ int ret;
|
|
+
|
|
+ ret = 0;
|
|
+ if ((ret = db_create(&dbp, dbenv, 0)) != 0)
|
|
+ return (ret);
|
|
+ dbp->type = DB_BTREE;
|
|
+ ret = __db_dbopen(dbp, name, 0, __db_omode("rw----"), PGNO_BASE_MD);
|
|
+
|
|
+ if (ret == 0 && memcmp(uid, dbp->fileid, DB_FILE_ID_LEN) != 0)
|
|
+ ret = EINVAL;
|
|
+
|
|
+ (void) dbp->close(dbp, 0);
|
|
+ return (ret);
|
|
}
|
|
|
|
/*
|