• Vladislav Vaintroub's avatar
    MDEV-16944 Fix file sharing issues on Windows in mysqltest · 061adae9
    Vladislav Vaintroub authored
    On Windows systems, occurrences of ERROR_SHARING_VIOLATION due to
    conflicting share modes between processes accessing the same file can
    result in CreateFile failures.
    
    mysys' my_open() already incorporates a workaround by implementing
    wait/retry logic on Windows.
    
    But this does not help if files are opened using shell redirection like
    mysqltest traditionally did it, i.e via
    
    --echo exec "some text" > output_file
    
    In such cases, it is cmd.exe, that opens the output_file, and it
    won't do any sharing-violation retries.
    
    This commit addresses the issue by introducing a new built-in command,
    'write_line', in mysqltest. This new command serves as a brief alternative
    to 'write_file', with a single line output, that also resolves variables
    like "exec" would.
    
    Internally, this command will use my_open(), and therefore retry-on-error
    logic.
    
    Hopefully this will eliminate the very sporadic "can't open file because
    it is used by another process" error on CI.
    061adae9
alter_rename_existing.test 2.96 KB