• Alfranio Correia's avatar
    Bug #42861 Assigning invalid directories to --slave-load-tmpdir crashes the slave · 2f16f070
    Alfranio Correia authored
    Compiling with debug and assigning an invalid directory to --slave-load-tmpdir
    was crashing the slave due to the following assertion DBUG_ASSERT(! is_set() ||
    can_overwrite_status). This assertion assumes that a thread can change its
    state once (i.e. ok,error, etc) before aborting, cleaning/resuming or completing
    its execution unless the overwrite flag (i.e. can_overwrite_status) is true.
    
    The Append_block_log_event::do_apply_event which is responsible for creating
    temporary file(s) was not cleaning the thread state. Thus a failure while
    trying to create a file in an invalid temporary directory was causing the crash.
    
    To fix the problem we check if the temporary directory is valid before starting
    the SQL Thread and reset the thread state before creating a file in
    Append_block_log_event::do_apply_event.
    2f16f070
slave.cc 143 KB