Hello Alexey Serbin, Kudu Jenkins, Adar Dembo, Grant Henke, Hao Hao,

I'd like you to reexamine a change. Please visit

    http://gerrit.cloudera.org:8080/13384

to look at the new patch set (#2).

Change subject: hms: fix flakiness of master-stress-test from managed tables
......................................................................

hms: fix flakiness of master-stress-test from managed tables

The switch to managed tables opened the door for the race described in
HIVE-21759, described with more Kudu-specific details below:

1. Master A* sends a create table request for T.
2. The HMS creates a directory for that table and an entry in the HMS
   catalog.
3. Before A* can write this to the Kudu catalog, master B* becomes
   leader. A's write fails, and A sends a drop request to the HMS to
   roll back the created metadata for T.
4. The HMS receives A's drop request, and the HMS entry is dropped.
   Note: In the process of dropping a table from the HMS, the last thing
   the operation will do is drop any underlying data in the HMS (the
   directory, in this case).
5. The create request for T is retried by B*. Because the HMS entry for
   T is already dropped in the HMS, the request will be processed.
6. The HMS finally drops the underlying directory for T created by A.
7. Along the path of creating the table, the request from B* hits a "Not
   found" exception, expecting for the directory for T to exist.
8. The create table request is failed, since the HMS transaction to
   create the table is failed.

The end result is that the table doesn't exist in Kudu or in the HMS
following this sequence of events. This patch addresses this by catching
such errors with the HMS enabled and checking that an underlying Kudu
table and HMS entry is not created if so.

Without this patch, master-stress-test failed 24/300 times with 7 stress
threads. With it, it failed 9/300 times (mostly due to KUDU-2779).

Change-Id: I1233e5b133035d36f98ce08265c0273570caa454
---
M src/kudu/integration-tests/master-stress-test.cc
1 file changed, 36 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/84/13384/2
--
To view, visit http://gerrit.cloudera.org:8080/13384
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I1233e5b133035d36f98ce08265c0273570caa454
Gerrit-Change-Number: 13384
Gerrit-PatchSet: 2
Gerrit-Owner: Andrew Wong <aw...@cloudera.com>
Gerrit-Reviewer: Adar Dembo <a...@cloudera.com>
Gerrit-Reviewer: Alexey Serbin <aser...@cloudera.com>
Gerrit-Reviewer: Andrew Wong <aw...@cloudera.com>
Gerrit-Reviewer: Grant Henke <granthe...@apache.org>
Gerrit-Reviewer: Hao Hao <hao....@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins (120)

Reply via email to