• unknown's avatar
    InnoDB: Avoid test suite failures caused by a locking conflict · 2386a58a
    unknown authored
    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.
    2386a58a
srv0start.c 48.4 KB