Details

      Description

      there are the bug fixes as compared to c01fc2134d439282a21a2ddf687566e198ddee28 @ https://code.google.com/p/google-mysql/ (branch 17-scrubbing)

        Gliffy Diagrams

          Attachments

            Activity

            Hide
            serg Sergei Golubchik added a comment -

            Jonas Oreland, what does this patch fix? The patch includes the test case but it passes for me without any code changes.

            Show
            serg Sergei Golubchik added a comment - Jonas Oreland , what does this patch fix? The patch includes the test case but it passes for me without any code changes.
            Hide
            jonaso Jonas Oreland added a comment -

            Hi,

            It fixes
            1) a race condition where the redo log contains an update of the crypt data,
            and it's currently inuse by other threads participating in recovery.
            prior to patch, the code would delete the old object and replace it with new found in redolog, this could lead to use-after-free problems.
            after patch, the code instead verifies that update is reasonable, and adjust an the existing object instead.

            2) an bug with temporary innodb tables where they were dropped before crypt "sub-system" was initialized.
            this is the testcase, I'm not sure why it doesn't fail for you. maybe Jan merged the code to put the initialization in the "right" place to start with.

            this part of the patch split the initialization into fil_crypt_init() and fil_crypt_threads_init(),
            and I see the the patch I uploaded is missing the calling of fil_crypt_threads_init and only adds a call to fil_crypt_init,
            it should be that the call is added, and the old call should be changed.

            Hope this makes sense

            /Jonas

            Show
            jonaso Jonas Oreland added a comment - Hi, It fixes 1) a race condition where the redo log contains an update of the crypt data, and it's currently inuse by other threads participating in recovery. prior to patch, the code would delete the old object and replace it with new found in redolog, this could lead to use-after-free problems. after patch, the code instead verifies that update is reasonable, and adjust an the existing object instead. 2) an bug with temporary innodb tables where they were dropped before crypt "sub-system" was initialized. this is the testcase, I'm not sure why it doesn't fail for you. maybe Jan merged the code to put the initialization in the "right" place to start with. this part of the patch split the initialization into fil_crypt_init() and fil_crypt_threads_init(), and I see the the patch I uploaded is missing the calling of fil_crypt_threads_init and only adds a call to fil_crypt_init, it should be that the call is added, and the old call should be changed. — Hope this makes sense /Jonas
            Hide
            serg Sergei Golubchik added a comment -

            Thanks!

            Show
            serg Sergei Golubchik added a comment - Thanks!

              People

              • Assignee:
                serg Sergei Golubchik
                Reporter:
                jonaso Jonas Oreland
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0 minutes
                  0m
                  Logged:
                  Time Spent - 30 minutes
                  30m