summaryrefslogtreecommitdiff
path: root/innobase/include/os0file.h
diff options
context:
space:
mode:
authorunknown <marko@hundin.mysql.fi>2005-04-06 15:09:15 +0300
committerunknown <marko@hundin.mysql.fi>2005-04-06 15:09:15 +0300
commitcde615c9cbff404b6a6c82a1ab7a6bcb8742b88e (patch)
tree01e8bb5906da4d81b81fcc444d2f985fb80550a8 /innobase/include/os0file.h
parentd5b7547597f6620037deb3f5473d02e9dede4c21 (diff)
downloadmariadb-git-cde615c9cbff404b6a6c82a1ab7a6bcb8742b88e.tar.gz
InnoDB: Avoid test suite failures caused by a locking conflict
between two server instances at server shutdown/startup. This conflict on advisory locks appears to be the result of a bug in the operating system; these locks should be released when the files are closed, but somehow that does not always happen immediately in Linux. (Bug #9381) innobase/include/os0file.h: Add OS_FILE_OPEN_RETRY for os_file_create()ing ibdata1 innobase/os/os0file.c: os_file_lock(): Do not close the file on failure, but let the callers do that. os_file_create(): If create_mode==OS_FILE_OPEN_RETRY and os_file_lock() fails, keep retrying for 100 seconds. innobase/srv/srv0start.c: open_or_create_data_files(): Open the first data file with OS_FILE_OPEN_RETRY, to resolve a conflict with a shutting-down instance of the MySQL server.
Diffstat (limited to 'innobase/include/os0file.h')
-rw-r--r--innobase/include/os0file.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/innobase/include/os0file.h b/innobase/include/os0file.h
index d1439faf29f..ebc014df9fd 100644
--- a/innobase/include/os0file.h
+++ b/innobase/include/os0file.h
@@ -65,6 +65,8 @@ log. */
#define OS_FILE_OVERWRITE 53
#define OS_FILE_OPEN_RAW 54
#define OS_FILE_CREATE_PATH 55
+#define OS_FILE_OPEN_RETRY 56 /* for os_file_create() on
+ the first ibdata file */
#define OS_FILE_READ_ONLY 333
#define OS_FILE_READ_WRITE 444