Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HADOOP-16520 dynamodb ms version race refactor. #1576

Merged

Conversation

bgaborg
Copy link

@bgaborg bgaborg commented Oct 2, 2019

The following should be included: HADOOP-16349. DynamoDBMetadataStore.getVersionMarkerItem() to log at info/warn on retry.

Notes:

  • Why there's no ITestDynamoDBMetadataStoreTableHandler if there's ITestDynamoDBMetadataStore, and why do I added the tests there?
    For readability and to avoid duplication. DynamoDBMetadataStoreTableHandler is just basically parts factored out from DynamoDBMetadataStore, and some helper methods.

  • Why there's only testTableVersioning->checkVerifyVersionMarkerCompatibility to cover the full functionality of the version marker checking and recovery with dynamo, and not 6 different methods?
    Creating and deleting tables takes a lot of time. Minutes. I use the same table during the test and add/remove the version tag and item to cover all combinations.

  • Why there's log on info level at DynamoDBMetadataStoreTableHandler#verifyVersionCompatibility?
    I think it's useful for know what's going on with the versions. It's not a lot logging at that level, but I find it useful.

Things to add:

  • md docs about version handling - I'll add once we settled with the implementation
  • maybe more tests: imho the test coverage is good enough, and adding more test will take more and more testing time. But I can try to add some non-integration (so simple junit, surefire) tests if asked.

Tested against ireland. Some tables won't be deleted for me so I get a timeout. I don't think that's related, maybe I'm just over the limit of creating and deleting tables now.

@steveloughran
Copy link
Contributor

yeah, anything which avoids creating duplicate tables is good. I did some of that the last time I worked on ITestDynamoDBMetadataStore


if (versionMarkerItem == null && versionMarkerFromTag == null) {
if (!isEmptyTable(tableName, amazonDynamoDB)) {
LOG.error("Table is not empty but missing the version maker. Failing.");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we need to make sure the s3guard docs are up to date with these new error messages

@steveloughran
Copy link
Contributor

I tested out on the command line while doing things to the DDB tables

" Version marker in the dynamo table was null"

How about "No version marker found in the DynamoDB table " + table name?

Issue: we always patch the table, even on fsck, destroy and bucket-info calls. Should we? I'm happy with it as is, as trying to be clever complicates life.

Issue: What do we think makes a good retry interval? I think it is too big, as a bucket info is now sleeping for 3 minutes before giving up.

(that's on a table with no version Tag BTW) .

> bin/hadoop s3guard prune -tombstone -seconds 0  s3a://hwdev-steve-ireland-new

...
2019-10-02 17:37:49,476 [main] WARN  s3guard.DynamoDBMetadataStoreTableHandler (DynamoDBMetadataStoreTableHandler.java:getVersionMarkerItem(564)) - Version marker in the dynamo table was null. Sleeping 629 ms before next retry
2019-10-02 17:37:50,127 [main] WARN  s3guard.DynamoDBMetadataStoreTableHandler (DynamoDBMetadataStoreTableHandler.java:getVersionMarkerItem(564)) - Version marker in the dynamo table was null. Sleeping 1048 ms before next retry
2019-10-02 17:37:51,200 [main] WARN  s3guard.DynamoDBMetadataStoreTableHandler (DynamoDBMetadataStoreTableHandler.java:getVersionMarkerItem(564)) - Version marker in the dynamo table was null. Sleeping 1149 ms before next retry
2019-10-02 17:37:52,375 [main] WARN  s3guard.DynamoDBMetadataStoreTableHandler (DynamoDBMetadataStoreTableHandler.java:getVersionMarkerItem(564)) - Version marker in the dynamo table was null. Sleeping 3756 ms before next retry
2019-10-02 17:37:56,155 [main] WARN  s3guard.DynamoDBMetadataStoreTableHandler (DynamoDBMetadataStoreTableHandler.java:getVersionMarkerItem(564)) - Version marker in the dynamo table was null. Sleeping 8933 ms before next retry
2019-10-02 17:38:05,115 [main] WARN  s3guard.DynamoDBMetadataStoreTableHandler (DynamoDBMetadataStoreTableHandler.java:getVersionMarkerItem(564)) - Version marker in the dynamo table was null. Sleeping 10687 ms before next retry
2019-10-02 17:38:15,829 [main] WARN  s3guard.DynamoDBMetadataStoreTableHandler (DynamoDBMetadataStoreTableHandler.java:getVersionMarkerItem(564)) - Version marker in the dynamo table was null. Sleeping 17912 ms before next retry
2019-10-02 17:38:33,766 [main] WARN  s3guard.DynamoDBMetadataStoreTableHandler (DynamoDBMetadataStoreTableHandler.java:getVersionMarkerItem(564)) - Version marker in the dynamo table was null. Sleeping 55424 ms before next retry
2019-10-02 17:39:29,212 [main] WARN  s3guard.DynamoDBMetadataStoreTableHandler (DynamoDBMetadataStoreTableHandler.java:getVersionMarkerItem(564)) - Version marker in the dynamo table was null. Sleeping 175876 ms before next retry
2019-10-02 17:42:25,409 [main] DEBUG s3guard.DynamoDBMetadataStoreTableHandler (DynamoDBMetadataStoreTableHandler.java:verifyVersionCompatibility(368)) - versionMarkerItem: null;  versionMarkerFromTag: { Item: {parent=../VERSION, child=../VERSION, table_version=100, table_created=0} }
2019-10-02 17:42:25,409 [main] INFO  s3guard.DynamoDBMetadataStoreTableHandler (DynamoDBMetadataStoreTableHandler.java:verifyVersionCompatibility(392)) - Table hwdev-steve-ireland-new contains no version marker ITEM but contains compatible version marker TAG. Restoring the version marker item from tag.
2019-10-02 17:42:25,409 [main] DEBUG s3guard.DynamoDBMetadataStoreTableHandler (DynamoDBMetadataStoreTableHandler.java:putItem(599)) - Putting item { Item: {parent=../VERSION, child=../VERSION, table_version=100, table_created=1570034545409} }
2019-10-02 17:42:25,470 [main] DEBUG s3guard.DynamoDBMetadataStoreTableHandler (DynamoDBMetadataStoreTableHandler.java:initTable(187)) - Using existing DynamoDB table hwdev-steve-ireland-new in region eu-west-1 created Wed Oct 02 17:42:25 BST 2019

I verified that incompatible item or tag values raised errors

  • tag version = 150
  • tag valid, item = 150
  • item lacks a numeric version field at all

In those situations, I think the error could include the full details which are logged at debug. I can see that being useful.

2019-10-02 18:08:57,286 [main] DEBUG s3guard.DynamoDBMetadataStoreTableHandler (DynamoDBMetadataStoreTableHandler.java:verifyVersionCompatibility(368)) 
 versionMarkerItem: { Item: {parent=../VERSION, table_created=1570034545409, table_version=120, child=../VERSION} };
   versionMarkerFromTag: { Item: {parent=../VERSION, child=../VERSION, table_version=100, table_created=0} }

CLI run on an inconsistent version marker (even if there's a valid file entry) is noisy: it logs at error with stack and then throws. I'd prefer just the log without the stack here,

2019-10-02 18:06:00,690 [main] ERROR s3guard.S3Guard (S3Guard.java:getMetadataStore(120)) - Failed to instantiate metadata store org.apache.hadoop.fs.s3a.s3guard.DynamoDBMetadataStore defined in fs.s3a.metadatastore.impl: java.io.IOException: Database table is from an incompatible S3Guard version based on table TAG. Table hwdev-steve-ireland-new Expected version: 100 actual tag version: 150
java.io.IOException: Database table is from an incompatible S3Guard version based on table TAG. Table hwdev-steve-ireland-new Expected version: 100 actual tag version: 150
	at org.apache.hadoop.fs.s3a.s3guard.DynamoDBMetadataStoreTableHandler.throwExceptionOnVersionMismatch(DynamoDBMetadataStoreTableHandler.java:440)
	at org.apache.hadoop.fs.s3a.s3guard.DynamoDBMetadataStoreTableHandler.verifyVersionCompatibility(DynamoDBMetadataStoreTableHandler.java:418)
	at org.apache.hadoop.fs.s3a.s3guard.DynamoDBMetadataStoreTableHandler.initTable(DynamoDBMetadataStoreTableHandler.java:184)
	at org.apache.hadoop.fs.s3a.s3guard.DynamoDBMetadataStore.initialize(DynamoDBMetadataStore.java:426)
	at org.apache.hadoop.fs.s3a.s3guard.S3Guard.getMetadataStore(S3Guard.java:109)
	at org.apache.hadoop.fs.s3a.S3AFileSystem.initialize(S3AFileSystem.java:413)
	at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:3391)
	at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:137)
	at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:3440)
	at org.apache.hadoop.fs.FileSystem$Cache.getUnique(FileSystem.java:3414)
	at org.apache.hadoop.fs.FileSystem.newInstance(FileSystem.java:556)
	at org.apache.hadoop.fs.s3a.s3guard.S3GuardTool$BucketInfo.run(S3GuardTool.java:1208)
	at org.apache.hadoop.fs.s3a.s3guard.S3GuardTool.run(S3GuardTool.java:427)
	at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76)
	at org.apache.hadoop.fs.s3a.s3guard.S3GuardTool.run(S3GuardTool.java:1797)
	at org.apache.hadoop.fs.s3a.s3guard.S3GuardTool.main(S3GuardTool.java:1806)
java.io.IOException: Database table is from an incompatible S3Guard version based on table TAG. Table hwdev-steve-ireland-new Expected version: 100 actual tag version: 150
	at org.apache.hadoop.fs.s3a.s3guard.DynamoDBMetadataStoreTableHandler.throwExceptionOnVersionMismatch(DynamoDBMetadataStoreTableHandler.java:440)
	at org.apache.hadoop.fs.s3a.s3guard.DynamoDBMetadataStoreTableHandler.verifyVersionCompatibility(DynamoDBMetadataStoreTableHandler.java:418)
	at org.apache.hadoop.fs.s3a.s3guard.DynamoDBMetadataStoreTableHandler.initTable(DynamoDBMetadataStoreTableHandler.java:184)
	at org.apache.hadoop.fs.s3a.s3guard.DynamoDBMetadataStore.initialize(DynamoDBMetadataStore.java:426)
	at org.apache.hadoop.fs.s3a.s3guard.S3Guard.getMetadataStore(S3Guard.java:109)
	at org.apache.hadoop.fs.s3a.S3AFileSystem.initialize(S3AFileSystem.java:413)
	at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:3391)
	at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:137)
	at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:3440)
	at org.apache.hadoop.fs.FileSystem$Cache.getUnique(FileSystem.java:3414)
	at org.apache.hadoop.fs.FileSystem.newInstance(FileSystem.java:556)
	at org.apache.hadoop.fs.s3a.s3guard.S3GuardTool$BucketInfo.run(S3GuardTool.java:1208)
	at org.apache.hadoop.fs.s3a.s3guard.S3GuardTool.run(S3GuardTool.java:427)
	at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76)
	at org.apache.hadoop.fs.s3a.s3guard.S3GuardTool.run(S3GuardTool.java:1797)
	at org.apache.hadoop.fs.s3a.s3guard.S3GuardTool.main(S3GuardTool.java:1806)
2019-10-02 18:06:00,693 [main] INFO  util.ExitUtil (ExitUtil.java:terminate(210)) - Exiting with status -1: java.io.IOException: Database table is from an incompatible S3Guard version based on table TAG. Table hwdev-steve-ireland-new Exp

Side issue a prune with seconds 0 didn't delete tombstones from the DDB table.

> bin/hadoop s3guard prune -tombstone -seconds 0  s3a://hwdev-steve-ireland-new/
...
2019-10-02 17:56:25,011 [main] INFO  s3guard.S3GuardTool (S3GuardTool.java:initMetadataStore(324)) - Metadata store DynamoDBMetadataStore{region=eu-west-1, tableName=hwdev-steve-ireland-new, tableArn=arn:aws:dynamodb:eu-west-1:980678866538:table/hwdev-steve-ireland-new} is initialized.
2019-10-02 17:56:25,027 [main] DEBUG s3guard.DynamoDBMetadataStore (DynamoDBMetadataStore.java:prune(1519)) - Prune tombstones under /hwdev-steve-ireland-new with age 1569948985027
2019-10-02 17:56:25,033 [main] INFO  s3guard.DynamoDBMetadataStore (DurationInfo.java:<init>(72)) - Starting: Pruning DynamoDB Store
2019-10-02 17:56:25,066 [main] INFO  s3guard.DynamoDBMetadataStore (DurationInfo.java:close(87)) - Pruning DynamoDB Store: duration 0:00.032s
2019-10-02 17:56:25,066 [main] DEBUG s3guard.DynamoDBMetadataStore (DynamoDBMetadataStore.java:close(2267)) - Auditing #(Prune-0001)
2019-10-02 17:56:25,066 [main] INFO  s3guard.DynamoDBMetadataStore (DynamoDBMetadataStore.java:innerPrune(1596)) - Finished pruning 0 items in batches of 25
2019-10-02 17:56:25,068 [shutdown-hook-0] DEBUG s3a.S3AFileSystem (S3AFileSystem.java:close(3048)) - Filesystem s3a://hwdev-steve-ireland-new is closed
2019-10-02 17:56:25,070 [shutdown-hook-0] DEBUG s3a.S3AFileSystem (S3AUtils.java:closeAll(1628)) - Closing NullMetadataStore
2019-10-02 17:56:25,070 [shutdown-hook-0] DEBUG s3a.S3AFileSystem (S3AUtils.java:closeAll(1628)) - Closing org.apache.hadoop.fs.s3a.S3AInstrumentation@27968269
2019-10-02 17:56:25,071 [shutdown-hook-0] DEBUG s3a.S3AFileSystem (S3AUtils.java:closeAutocloseables(1651)) - Closing AWSCredentialProviderList[refcount= 2: [TemporaryAWSCredentialsProvider, SimpleAWSCredentialsProvider, EnvironmentVariableCredentialsProvider, org.apache.hadoop.fs.s3a.auth.IAMInstanceCredentialsProvider@63a12c68] last provider: SimpleAWSCredentialsProvider
2019-10-02 17:56:25,071 [shutdown-hook-0] DEBUG s3a.AWSCredentialProviderList (AWSCredentialProviderList.java:close(311)) - Not closing AWSCredentialProviderList[refcount= 1: [TemporaryAWSCredentialsProvider, SimpleAWSCredentialsProvider, EnvironmentVariableCredentialsProvider, org.apache.hadoop.fs.s3a.auth.IAMInstanceCredentialsProvider@63a12c68] last provider: SimpleAWSCredentialsProvider

But when I said -seconds 1, it did

> bin/hadoop s3guard prune -tombstone -seconds 1  s3a://hwdev-steve-ireland-new/

...
2019-10-02 17:58:55,815 [main] DEBUG s3guard.DynamoDBMetadataStore (DynamoDBMetadataStore.java:prune(1519)) - Prune tombstones under /hwdev-steve-ireland-new with age 1570035534815
2019-10-02 17:58:55,821 [main] INFO  s3guard.DynamoDBMetadataStore (DurationInfo.java:<init>(72)) - Starting: Pruning DynamoDB Store
2019-10-02 17:58:55,882 [main] DEBUG s3guard.DynamoDBMetadataStore (DynamoDBMetadataStore.java:innerPrune(1548)) - Prune entry s3a://hwdev-steve-ireland-new/terasort-directory/validate/_SUCCESS
2019-10-02 17:58:55,883 [main] DEBUG s3guard.DynamoDBMetadataStore (DynamoDBMetadataStore.java:innerPrune(1548)) - Prune entry s3a://hwdev-steve-ireland-new/terasort-directory/validate/part-r-00000
2019-10-02 17:58:55,883 [main] DEBUG s3guard.DynamoDBMetadataStore (DynamoDBMetadataStore.java:innerPrune(1548)) - Prune entry s3a://hwdev-steve-ireland-new/terasort-magic/validate/__magic/app-attempt-0001/tasks/attempt_1570028934823_0006_m_000000_0/__base
2019-10-02 17:58:55,883 [main] DEBUG s3guard.DynamoDBMetadataStore (DynamoDBMetadataStore.java:innerPrune(1548)) - Prune entry s3a://hwdev-steve-ireland-new/user/stevel/target/test/data/Nhh2EnrZqv
2019-10-02 17:58:55,884 [main] DEBUG s3guard.DynamoDBMetadataStore (DynamoDBMetadataStore.java:innerPrune(1548)) - Prune entry s3a://hwdev-steve-ireland-new/user/stevel/target/test/data/PEzrLmEa92
2019-10-02 17:58:55,884 [main] DEBUG s3guard.DynamoDBMetadataStore (DynamoDBMetadataStore.java:innerPrune(1548)) - Prune entry s3a://hwdev-steve-ireland-new/user/stevel/target/test/data/rogKpvLQQU
2019-10-02 17:58:55,884 [main] DEBUG s3guard.DynamoDBMetadataStore (DynamoDBMetadataStore.java:innerPrune(1548)) - Prune entry s3a://hwdev-steve-ireland-new/terasort-magic/sortin/__magic/app-attempt-0001/tasks/attempt_1570019599148_0002_
...
2019-10-02 17:58:57,212 [main] DEBUG s3guard.DynamoDBMetadataStore (DynamoDBMetadataStore.java:get(711)) - result of get s3a://hwdev-steve-ireland-new/test/prune-cli-keep is: null
2019-10-02 17:58:57,212 [main] DEBUG s3guard.DynamoDBMetadataStore (DynamoDBMetadataStore.java:lambda$removeAuthoritativeDirFlag$10(1640)) - No parent s3a://hwdev-steve-ireland-new/test/prune-cli-keep; skipping
2019-10-02 17:58:57,212 [main] DEBUG s3guard.DynamoDBMetadataStore (DynamoDBMetadataStore.java:removeAuthoritativeDirFlag(1666)) - innerPut on metas: []
2019-10-02 17:58:57,213 [main] INFO  s3guard.DynamoDBMetadataStore (DurationInfo.java:close(87)) - Pruning DynamoDB Store: duration 0:01.391s
2019-10-02 17:58:57,213 [main] DEBUG s3guard.DynamoDBMetadataStore (DynamoDBMetadataStore.java:close(2267)) - Auditing #(Prune-0001)
2019-10-02 17:58:57,213 [main] INFO  s3guard.DynamoDBMetadataStore (DynamoDBMetadataStore.java:innerPrune(1596)) - Finished pruning 104 items in batches of 25

I don't think it is at all related -but have a try on your system and see what happens.

@steveloughran
Copy link
Contributor

I should add -overall patch LGTM; these are very minor changes. Impressed that the tag update means that you get this version resilience automatically,

one thought there: should we think about tagging the table explicitly with some "s3guard" string, e.g "s3guard-version" - makes it clearer to admins looking at tables which are guarded

@steveloughran
Copy link
Contributor

  • handle the situation where client doesn't have the rights to tag the table

@steveloughran steveloughran changed the title Hadoop 16520 dynamodb ms version race refactor. HADOOP-16520 dynamodb ms version race refactor. Oct 8, 2019
@apache apache deleted a comment from hadoop-yetus Oct 8, 2019
@steveloughran
Copy link
Contributor

One change for this: can we stop telling the user all is good at info? It's the good state.

I saw this on a bucket-info command where this is the first message everyone sees. Assuming this is constant for all other commands, it's a distraction

bin/hadoop s3guard bucket-info -guarded s3a://landsat-pds/
2019-10-08 18:14:02,439 [main] INFO  s3guard.DynamoDBMetadataStoreTableHandler (DynamoDBMetadataStoreTableHandler.java:verifyVersionCompatibility(423)) - Table s3guard-us-west-2 contains correct version marker TAG and ITEM.
Filesystem s3a://landsat-pds
Location: us-west-2
Filesystem s3a://landsat-pds is using S3Guard with store DynamoDBMetadataStore{region=us-west-2, tableName=s3guard-us-west-2, tableArn=arn:aws:dynamodb:us-west-2:980678866538:table/s3guard-us-west-2}

Gabor Bota added 5 commits October 9, 2019 14:16
…compile and verify OK after refactor

Change-Id: Ia83e92b9039ccb780090c99c41b4f71ef7539d35
Change-Id: I34704f7def441af72a1b85be44fcb91fc8d2b2ce
Change-Id: I3ab87ca8c31d9e06ec1562691edd316536cfc883
Change-Id: I924347a550cecf991d37c9a1a8f1f1071967c3db
…meout for version marker ITEM check

Change-Id: Idf960a0c0541c2d2088cbcafe045f6d43f366383
@apache apache deleted a comment from hadoop-yetus Oct 9, 2019
@apache apache deleted a comment from hadoop-yetus Oct 9, 2019
@apache apache deleted a comment from hadoop-yetus Oct 9, 2019
Change-Id: Ief4db248f46be18d1838743dc0b212d6a4bbfd83
@bgaborg bgaborg force-pushed the HADOOP-16520-dynamodb-ms-version-race-refactor branch from fffc5e9 to ecd49f4 Compare October 9, 2019 13:37
@bgaborg
Copy link
Author

bgaborg commented Oct 9, 2019

last patch:

  • renamed handler to manager
  • S3GUARD_DDB_THROTTLE_RETRY_INTERVAL_DEFAULT is left at 100ms but S3GUARD_DDB_MAX_RETRIES is set to 10 now instead of 20.
  • docs added

@hadoop-yetus
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
0 reexec 38 Docker mode activated.
_ Prechecks _
+1 dupname 0 No case conflicting files found.
+1 @author 0 The patch does not contain any @author tags.
+1 test4tests 0 The patch appears to include 5 new or modified test files.
_ trunk Compile Tests _
+1 mvninstall 1206 trunk passed
+1 compile 35 trunk passed
+1 checkstyle 24 trunk passed
+1 mvnsite 37 trunk passed
+1 shadedclient 879 branch has no errors when building and testing our client artifacts.
+1 javadoc 26 trunk passed
0 spotbugs 58 Used deprecated FindBugs config; considering switching to SpotBugs.
+1 findbugs 55 trunk passed
-0 patch 77 Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+1 mvninstall 32 the patch passed
+1 compile 27 the patch passed
+1 javac 27 the patch passed
-0 checkstyle 19 hadoop-tools/hadoop-aws: The patch generated 15 new + 36 unchanged - 0 fixed = 51 total (was 36)
+1 mvnsite 31 the patch passed
-1 whitespace 0 The patch has 4 line(s) that end in whitespace. Use git apply --whitespace=fix <<patch_file>>. Refer https://git-scm.com/docs/git-apply
+1 shadedclient 855 patch has no errors when building and testing our client artifacts.
+1 javadoc 24 the patch passed
-1 findbugs 74 hadoop-tools/hadoop-aws generated 1 new + 0 unchanged - 0 fixed = 1 total (was 0)
_ Other Tests _
+1 unit 76 hadoop-aws in the patch passed.
+1 asflicense 33 The patch does not generate ASF License warnings.
3565
Reason Tests
FindBugs module:hadoop-tools/hadoop-aws
Boxing/unboxing to parse a primitive org.apache.hadoop.fs.s3a.s3guard.DynamoDBMetadataStoreTableManager.getVersionMarkerFromTags(Table, AmazonDynamoDB) At DynamoDBMetadataStoreTableManager.java:org.apache.hadoop.fs.s3a.s3guard.DynamoDBMetadataStoreTableManager.getVersionMarkerFromTags(Table, AmazonDynamoDB) At DynamoDBMetadataStoreTableManager.java:[line 268]
Subsystem Report/Notes
Docker Client=19.03.3 Server=19.03.3 base: https://builds.apache.org/job/hadoop-multibranch/job/PR-1576/5/artifact/out/Dockerfile
GITHUB PR #1576
Optional Tests dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient findbugs checkstyle
uname Linux 2bb8da38171d 4.15.0-54-generic #58-Ubuntu SMP Mon Jun 24 10:55:24 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality personality/hadoop.sh
git revision trunk / 6f1ab95
Default Java 1.8.0_222
checkstyle https://builds.apache.org/job/hadoop-multibranch/job/PR-1576/5/artifact/out/diff-checkstyle-hadoop-tools_hadoop-aws.txt
whitespace https://builds.apache.org/job/hadoop-multibranch/job/PR-1576/5/artifact/out/whitespace-eol.txt
findbugs https://builds.apache.org/job/hadoop-multibranch/job/PR-1576/5/artifact/out/new-findbugs-hadoop-tools_hadoop-aws.html
Test Results https://builds.apache.org/job/hadoop-multibranch/job/PR-1576/5/testReport/
Max. process+thread count 427 (vs. ulimit of 5500)
modules C: hadoop-tools/hadoop-aws U: hadoop-tools/hadoop-aws
Console output https://builds.apache.org/job/hadoop-multibranch/job/PR-1576/5/console
versions git=2.7.4 maven=3.3.9 findbugs=3.1.0-RC1
Powered by Apache Yetus 0.10.0 http://yetus.apache.org

This message was automatically generated.

Change-Id: Ifce37b942f3a929dbf7e7ab9278f1ba0be22f95b
@bgaborg
Copy link
Author

bgaborg commented Oct 9, 2019

tested against ireland with no errors.

@hadoop-yetus
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
0 reexec 40 Docker mode activated.
_ Prechecks _
+1 dupname 0 No case conflicting files found.
+1 @author 0 The patch does not contain any @author tags.
+1 test4tests 0 The patch appears to include 5 new or modified test files.
_ trunk Compile Tests _
+1 mvninstall 1359 trunk passed
+1 compile 36 trunk passed
+1 checkstyle 25 trunk passed
+1 mvnsite 37 trunk passed
+1 shadedclient 843 branch has no errors when building and testing our client artifacts.
+1 javadoc 25 trunk passed
0 spotbugs 63 Used deprecated FindBugs config; considering switching to SpotBugs.
+1 findbugs 61 trunk passed
-0 patch 84 Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+1 mvninstall 34 the patch passed
+1 compile 27 the patch passed
+1 javac 27 the patch passed
-0 checkstyle 20 hadoop-tools/hadoop-aws: The patch generated 9 new + 36 unchanged - 0 fixed = 45 total (was 36)
+1 mvnsite 32 the patch passed
-1 whitespace 0 The patch has 4 line(s) that end in whitespace. Use git apply --whitespace=fix <<patch_file>>. Refer https://git-scm.com/docs/git-apply
+1 shadedclient 853 patch has no errors when building and testing our client artifacts.
+1 javadoc 23 the patch passed
+1 findbugs 61 the patch passed
_ Other Tests _
+1 unit 83 hadoop-aws in the patch passed.
+1 asflicense 28 The patch does not generate ASF License warnings.
3683
Subsystem Report/Notes
Docker Client=19.03.2 Server=19.03.2 base: https://builds.apache.org/job/hadoop-multibranch/job/PR-1576/6/artifact/out/Dockerfile
GITHUB PR #1576
Optional Tests dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient findbugs checkstyle
uname Linux a3886ec84734 4.15.0-60-generic #67-Ubuntu SMP Thu Aug 22 16:55:30 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality personality/hadoop.sh
git revision trunk / 2d81abc
Default Java 1.8.0_222
checkstyle https://builds.apache.org/job/hadoop-multibranch/job/PR-1576/6/artifact/out/diff-checkstyle-hadoop-tools_hadoop-aws.txt
whitespace https://builds.apache.org/job/hadoop-multibranch/job/PR-1576/6/artifact/out/whitespace-eol.txt
Test Results https://builds.apache.org/job/hadoop-multibranch/job/PR-1576/6/testReport/
Max. process+thread count 341 (vs. ulimit of 5500)
modules C: hadoop-tools/hadoop-aws U: hadoop-tools/hadoop-aws
Console output https://builds.apache.org/job/hadoop-multibranch/job/PR-1576/6/console
versions git=2.7.4 maven=3.3.9 findbugs=3.1.0-RC1
Powered by Apache Yetus 0.10.0 http://yetus.apache.org

This message was automatically generated.

@bgaborg
Copy link
Author

bgaborg commented Oct 11, 2019

@steveloughran can you take a look at this?
thanks

@bgaborg
Copy link
Author

bgaborg commented Oct 11, 2019

last commit:

  • renamed handler to manager
  • S3GUARD_DDB_THROTTLE_RETRY_INTERVAL_DEFAULT is left at 100ms but S3GUARD_DDB_MAX_RETRIES is set to 10 now instead of 20.
  • docs added

@@ -974,6 +1001,8 @@ in an incompatible manner. The version marker in tables exists to support
such an option if it ever becomes necessary, by ensuring that all S3Guard
client can recognise any version mismatch.

* Table versionin
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks like a leftover line

Copy link
Contributor

@steveloughran steveloughran left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM; did full test run of -DtestsThreadCount=8 -Ds3guard -Ddynamo -Dauth; then did a local hadoop build and explored the CLI. All seems good, and that needless info message on startup is gone.

+1

Change-Id: I94046bd08b0d22969a61ed8b6f0c7ec087ab0ac9
@bgaborg
Copy link
Author

bgaborg commented Oct 11, 2019

Thanks. I removed the leftover line from the docs, and merge this change.

@bgaborg bgaborg merged commit 4a700c2 into apache:trunk Oct 11, 2019
@bgaborg bgaborg deleted the HADOOP-16520-dynamodb-ms-version-race-refactor branch October 11, 2019 10:08
amahussein pushed a commit to amahussein/hadoop that referenced this pull request Oct 29, 2019
…pache#1576). Contributed by Gabor Bota.

Fixes HADOOP-16349. DynamoDBMetadataStore.getVersionMarkerItem() to log at info/warn on retry

Change-Id: Ia83e92b9039ccb780090c99c41b4f71ef7539d35
jojochuang pushed a commit to jojochuang/hadoop that referenced this pull request Feb 2, 2020
…pache#1576). Contributed by Gabor Bota.

Fixes HADOOP-16349. DynamoDBMetadataStore.getVersionMarkerItem() to log at info/warn on retry

Change-Id: Ia83e92b9039ccb780090c99c41b4f71ef7539d35
(cherry picked from commit 4a700c2)
RogPodge pushed a commit to RogPodge/hadoop that referenced this pull request Mar 25, 2020
…pache#1576). Contributed by Gabor Bota.

Fixes HADOOP-16349. DynamoDBMetadataStore.getVersionMarkerItem() to log at info/warn on retry

Change-Id: Ia83e92b9039ccb780090c99c41b4f71ef7539d35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants