• Marko Mäkelä's avatar
    MDEV-32511 Assertion !os_aio_pending_writes() failed · bf7c6fc2
    Marko Mäkelä authored
    In MemorySanitizer builds of 10.10 and 10.11, we would rather often
    have the assertion fail in innodb_init() during mariadb-backup --prepare.
    The assertion could also fail during InnoDB startup, but less often.
    
    Before commit 685d958e in 10.8 the
    log file cleanup after a successfully applied backup is different,
    and the os_aio_pending_writes() assertion is in srv0start.cc.
    
    IORequest::write_complete(): Invoke node->complete_write() before
    releasing the page latch, so that a log checkpoint that is about to
    execute concurrently will not miss a fdatasync() or fsync() on the
    file, in case this was the first write since the last such call.
    
    create_log_file(), srv_start(): Replace the debug assertion with
    a debug check. For all intents and purposes, all writes could have
    been completed but some write_io_callback() may not have invoked
    io_slots::release() yet.
    bf7c6fc2
fil0fil.cc 93 KB