----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/58281/#review171444 -----------------------------------------------------------
sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/persistent/DeltaTransactionBlock.java Lines 87 (patched) <https://reviews.apache.org/r/58281/#comment244381> Is it possible for the following scenario to happen? There are two Sentry server instances running. Request A goes to Sentry A, and add a perm update. At the same time HMSFollower at Sentry B gets a path update. Both Sentry A and Sentry B calls this function to persist update. And both get lastChangeID to be, for example, 3. If Sentry A calls "pm.makePersistent" first, the "SentryStore.getLastProcessedChangeIDCore" is 4 now. Then Sentry B calls "pm.makePersistent", and the "SentryStore.getLastProcessedChangeIDCore" remains as 4, but it should be 5 as a new update is persisted (will this cause exception as two update entries are having the same changeID?). sentry-provider/sentry-provider-db/src/test/java/org/apache/sentry/provider/db/service/persistent/TestSentryStore.java Lines 2581 (patched) <https://reviews.apache.org/r/58281/#comment244382> did you reproduce the original issue using this test code? If not, then it cannot verify the fix for the original issue. - Na Li On April 8, 2017, 12:38 a.m., Lei Xu wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/58281/ > ----------------------------------------------------------- > > (Updated April 8, 2017, 12:38 a.m.) > > > Review request for sentry. > > > Bugs: SENTRY-1643 > https://issues.apache.org/jira/browse/SENTRY-1643 > > > Repository: sentry > > > Description > ------- > > When it relies on the SQL auto increment primary key as ChangeID, it can not > guarentee the consectivity of the IDs, because while each transaction claims > new ID from the table counter, the concurrent transactions which were not > success would not return the claimed changeIDs to the pool, thus it can not > guarateen the consectivity of change IDs. > > This patch changes to use application logic to force the consectivity of IDs. > > > Diffs > ----- > > > sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/model/MSentryPathChange.java > a0d34459d7b2f70e863ef6e078401df81381c91b > > sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/model/MSentryPermChange.java > 476fbcb2ad26de23757842111beb12b154e1562b > > sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/persistent/DeltaTransactionBlock.java > f590a5296c047e1acedd39a4f2e4f1de98008d32 > > sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/persistent/SentryStore.java > 802b9c6cbf8e9ad015e37037b809b58c956de746 > > sentry-provider/sentry-provider-db/src/test/java/org/apache/sentry/provider/db/service/persistent/TestSentryStore.java > aaa0b9fd30bb68fded67f885af4f77bc71398e77 > > > Diff: https://reviews.apache.org/r/58281/diff/1/ > > > Testing > ------- > > Add a new test to conurrently insert changes. > > mvn test -Dtest=TestSentryStore. > > > Thanks, > > Lei Xu > >
