Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-5612

my_rename() deletes files when it shouldn't

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 5.1.67, 5.2.14, 5.3.12, 5.5.35, 10.0.7
    • Fix Version/s: 10.0.9
    • Component/s: None
    • Labels:
    • Environment:
      Windows

      Description

      On Windows my_rename() deletes the target file before renaming. But if the source file does not exist, it means that a target file was deleted erroneously.

      It particular, this is a problem for handler::rename_table() that renames all files from handler::bas_ext(). It assumes that the table was renamed successfully if at least some files existed and were renamed. On Windows it would delete all other target files though.

      Possible fixes:

      • verify that the source file exists in my_rename() — unnecessary overhead?
      • verify that the source file exists in handler::rename_table()
      • add a special MYF flag to my_rename() that tells to verify whether the source exists before deleting; use this flag in handler::rename_table()

        Gliffy Diagrams

          Attachments

            Activity

            Hide
            svoj Sergey Vojtovich added a comment -

            What's the point for handler::rename_table() not to remove all target files? We'll get a mix of old and new files in this case, which may or may not be desired.
            OTOH I agree that my_rename() should be more consistent.

            Show
            svoj Sergey Vojtovich added a comment - What's the point for handler::rename_table() not to remove all target files? We'll get a mix of old and new files in this case, which may or may not be desired. OTOH I agree that my_rename() should be more consistent.
            Hide
            svoj Sergey Vojtovich added a comment -

            Sergei, please review fix for this bug.

            Show
            svoj Sergey Vojtovich added a comment - Sergei, please review fix for this bug.
            Hide
            serg Sergei Golubchik added a comment -

            ok to push

            Show
            serg Sergei Golubchik added a comment - ok to push
            Hide
            svoj Sergey Vojtovich added a comment -

            Fixed in 10.0.9, revno: 4008, revision-id: svoj@mariadb.org-20140226085528-80vzk8f2c4b4ugxm

            Show
            svoj Sergey Vojtovich added a comment - Fixed in 10.0.9, revno: 4008, revision-id: svoj@mariadb.org-20140226085528-80vzk8f2c4b4ugxm

              People

              • Assignee:
                svoj Sergey Vojtovich
                Reporter:
                serg Sergei Golubchik
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: