bookkeeper.git
24 hours agoISSUE #1075: Add a noop digest implentation master
JV [Sat, 17 Feb 2018 08:12:19 +0000 (16:12 +0800)] 
ISSUE #1075: Add a noop digest implentation

This digest will add a predefined digest key without actually computing
it. This can be used for testing or in situations/use-cases where digest
is considered overhead.

(bug W-3245776)
Signed-off-by: Venkateswararao Jujjuri (JV) <vjujjurisalesforce.com>
[Adapted to current patch]
Signed-off-by: Samuel Just <sjustsalesforce.com>
Author: JV <vjujjuri@salesforce.com>

Reviewers: Enrico Olivelli <eolivelli@gmail.com>, Sijie Guo <sijie@apache.org>

This closes #1087 from athanatos/forupstream/misc/dummy, closes #1075

24 hours agohandle zookeeper session expire in zk ledger manager
Sijie Guo [Sat, 17 Feb 2018 07:51:13 +0000 (15:51 +0800)] 
handle zookeeper session expire in zk ledger manager

Descriptions of the changes in this PR:

cherry-pick twitter/bookkeeperdfcda5cc2efdc03db99fe126499f8e3347f50484

This includes a test case to test `AbstractZkLedgerManager`, including

    1) create/delete/read/write ledger metadata
    2) register/unregister listeners
    3) handling various watched events

This also fixes a couple of cases in the `AbstractZkLedgerManager` what is caught with test case.

Author: Sijie Guo <sijie@apache.org>
Author: Sijie Guo <sijieg@twitter.com>

Reviewers: Enrico Olivelli <eolivelli@gmail.com>, Venkateswararao Jujjuri (JV) <None>

This closes #1130 from sijie/fix_session_expires

25 hours agoCall static methods and build callbacks in MavenClassLoader
Ivan Kelly [Sat, 17 Feb 2018 07:05:53 +0000 (15:05 +0800)] 
Call static methods and build callbacks in MavenClassLoader

To properly test some functionality we need to be able to call static
methods (e.g. for the creation of ByteBuf), and also to be able to
build callbacks (e.g. to call async methods).

This patch implements methods for doing this. For static methods, you
need to pass the className, the method name and a list of
arguments. It first tries to find the method using non-primitive
types, but falls back to trying primative types if possible.

Invokation looks like:
```
cl.callStaticMethod("org.apache.bookkeeper.client.BKException",
                    "create", [-101])
```

For callbacks you specify an interface and the a groovy closure.
It is assumed the closure will take as many arguments as the
callback. The invokation handler doesn't check the method name
called on the callback object, so it only works with callbacks
with a single method.

Invokation looks like:
```
def callback = classLoader.createCallback(
    "org.apache.bookkeeper.client.AsyncCallback\$AddCallback",
        { rc, _ledger, entryId, ctx ->
            // do something
        })
```

Author: Ivan Kelly <ivank@apache.org>

Reviewers: Enrico Olivelli <eolivelli@gmail.com>, Sijie Guo <sijie@apache.org>

This closes #1156 from ivankelly/mvn-cl-adv

25 hours ago[MERGE YAHOO REPO] YBK-160: Doing distributed random verification of ledger fragments
Govind Menon [Sat, 17 Feb 2018 06:41:06 +0000 (14:41 +0800)] 
[MERGE YAHOO REPO] YBK-160: Doing distributed random verification of ledger fragments

Descriptions of the changes in this PR:
This is cherry-pick from yahoo repo of branch yahoo-4.3.

original change is:
https://github.com/yahoo/bookkeeper/commit/280e39ee
https://github.com/yahoo/bookkeeper/commit/21c23ff1
https://github.com/yahoo/bookkeeper/commit/b1139ac9
YBK-160: Doing distributed random verification of ledger fragments
YBK-160: Addressing Review comments and fixing test
YBK-160: Doing verification only for stored entries

Author: Govind Menon <govindappumenon@gmail.com>
Author: Jia Zhai <zhaijia@apache.org>

Reviewers: Enrico Olivelli <eolivelli@gmail.com>, Sijie Guo <sijie@apache.org>

This closes #1085 from jiazhai/cherry_picks/i_230

25 hours agoBP-29 (task 1) : Introduce `metadataServiceUrl`
Sijie Guo [Sat, 17 Feb 2018 06:36:13 +0000 (14:36 +0800)] 
BP-29 (task 1) : Introduce `metadataServiceUrl`

Descriptions of the changes in this PR:

- introduce a new setting `metadataServiceUrl` for replacing implementation specific settings `zkServers` and `zkLedgersRootPath`.
- introduce a metadata driver interface for managing all the metadata interface
- introduce a metadata driver manager for resolving `metadataServiceUrl` and load specific metadata service url based on service scheme. This
  would replace configuring multiple different manager classes using one single `metadataServiceUrl`.

Please NOTE: this change only introduce the new classes, but it doesn't change the client and bookie to use the new setting. It will be done in
a subsequent change.

Master Issue: #1123

Author: Sijie Guo <sijie@apache.org>

Reviewers: Enrico Olivelli <eolivelli@gmail.com>, Venkateswararao Jujjuri (JV) <None>

This closes #1127 from sijie/introduce_service_uri

32 hours agoFix the travis config on building dlog module
Sijie Guo [Sat, 17 Feb 2018 00:11:32 +0000 (08:11 +0800)] 
Fix the travis config on building dlog module

Descriptions of the changes in this PR:

The original intention is building dlog module on 1) branches (non pull requests) 2) pull requests that modify dlog module. However the check logic was wrong in travis.yml. This change fixes the travis yml.

Author: Sijie Guo <sijie@apache.org>

Reviewers: Ivan Kelly <ivank@apache.org>

This closes #1154 from sijie/debug_travis

39 hours agoBP-27 (part 1): New BookKeeper CLI Skeleton
Sijie Guo [Fri, 16 Feb 2018 17:22:28 +0000 (01:22 +0800)] 
BP-27 (part 1): New BookKeeper CLI Skeleton

Descriptions of the changes in this PR:

This is first implementation of BP-27 (#1000). This change includes:

- introduce a bookkeeper-tools module for keep the commands and also for developing the new CLI
- introduce 4 command groups: `cluster`, `bookie`, `client`, `metadata`.
- move 3 command: `listbookies` under `cluster` group, `lastmark` under `bookie` group, `simpletest` under `client` group.
- unit tests for those 3 command.

Author: Sijie Guo <sijie@apache.org>

Reviewers: Charan Reddy Guttapalem <reddycharan18@gmail.com>, Yiming Zang <yzang2016@gmail.com>

This closes #1094 from sijie/bookie_shell_refactor

39 hours agoInstall pulsar keys when installing yahoo custom image
Ivan Kelly [Fri, 16 Feb 2018 17:05:52 +0000 (01:05 +0800)] 
Install pulsar keys when installing yahoo custom image

The pulsar installation script for installing the yahoo custom version
was missing a line to import the keys needed to verify the tarball.

This patch adds the line, and also deletes the original version of the
script which was in the wrong location.

Author: Ivan Kelly <ivank@apache.org>

Reviewers: Enrico Olivelli <eolivelli@gmail.com>, Sijie Guo <sijie@apache.org>

This closes #1158 from ivankelly/pulsar-script-again

39 hours agoISSUE #1109: Error out pending ops on TLS key mismatch exception
Kishore Udayashankar [Fri, 16 Feb 2018 17:04:02 +0000 (01:04 +0800)] 
ISSUE #1109: Error out pending ops on TLS key mismatch exception

Descriptions of the changes in this PR:

(W-4479117)

- Add Testcase to test certificate mismatch scenario
- On tls handshake failure, replace future.get() with channel.
- Print a warning message on exception caught in a netty context
on connection close, drain pendingOps

rev charan

Master Issue: #1109

Author: Kishore Udayashankar <kudayashankar@salesforce.com>

Reviewers: Enrico Olivelli <eolivelli@gmail.com>, Sijie Guo <sijie@apache.org>

This closes #1110 from kishorekasi/tls-keymismatch, closes #1109

39 hours agoIssue #1124: Lower memory usage in GarbageCollectionThread while extracting all ledge...
Kishor Patil [Fri, 16 Feb 2018 16:58:52 +0000 (00:58 +0800)] 
Issue #1124: Lower memory usage in GarbageCollectionThread while extracting all ledger meta data

Descriptions of the changes in this PR:

The PR contains the fix to cleanup non-existent ledger log entries from EntryLogMetadata while extracting all log entries.

Master Issue: #1124

Author: Kishor Patil <kpatil@yahoo-inc.com>

Reviewers: Yiming Zang <yzang2016@gmail.com>, Sijie Guo <sijie@apache.org>

This closes #1125 from kishorvpatil/gcThreadFix, closes #1124

39 hours ago[MERGE YAHOO REPO] AsyncReadLastEntry should trigger callback with error when ledger...
Jia Zhai [Fri, 16 Feb 2018 16:39:52 +0000 (00:39 +0800)] 
[MERGE YAHOO REPO] AsyncReadLastEntry should trigger callback with error when ledger is empty

Descriptions of the changes in this PR:
This is cherry-pick from yahoo repo of branch yahoo-4.3.

original change is:
https://github.com/yahoo/bookkeeper/commit/9560ab0f
AsyncReadLastEntry should trigger callback with error when ledger is empty

Author: Jia Zhai <zhaijia@apache.org>
Author: Matteo Merli <mmerli@yahoo-inc.com>
Author: Matteo Merli <mmerli@apache.org>

Reviewers: Enrico Olivelli <eolivelli@gmail.com>, Sijie Guo <sijie@apache.org>

This closes #1121 from jiazhai/cherry_picks/i_167

39 hours agoFix auditor shutdown logic and move decommision tests out of BookKeeperAdminTest
Sijie Guo [Fri, 16 Feb 2018 16:29:23 +0000 (00:29 +0800)] 
Fix auditor shutdown logic and move decommision tests out of BookKeeperAdminTest

Descriptions of the changes in this PR:

- the auditor shutdown logic is problematic. most of the tests can finish quickly however it spend more 30 seconds on shutting down.
  because the shutdown logic will be blocked until `awaitTermination` timed out.
- most of the tests in BookKeeperAdminTest don't need 6 bookies. so move the decommission tests to a separate class.

Author: Sijie Guo <sijie@apache.org>

Reviewers: Ivan Kelly <ivank@apache.org>, Charan Reddy Guttapalem <reddycharan18@gmail.com>, Jia Zhai <None>

This closes #1099 from sijie/improve_admin_tests

47 hours agoRun integration tests on precommit
Ivan Kelly [Fri, 16 Feb 2018 08:50:33 +0000 (09:50 +0100)] 
Run integration tests on precommit

Builds integration test docker images and runs all tests under tests/.

Author: Ivan Kelly <ivank@apache.org>

Reviewers: Enrico Olivelli <eolivelli@gmail.com>

This closes #1148 from ivankelly/jenkins-bc2

47 hours agoAdd script missing from custom yahoo docker image
Ivan Kelly [Fri, 16 Feb 2018 08:46:59 +0000 (09:46 +0100)] 
Add script missing from custom yahoo docker image

427eb81 references a script which I never added to the commit,
which means the image doesn't build.

This commit adds the script.

Author: Ivan Kelly <ivank@apache.org>

Reviewers: Enrico Olivelli <eolivelli@gmail.com>

This closes #1151 from ivankelly/missing-script

2 days agoReplace DoubleByteBuf with CompositeByteBuf because of perf regression with Netty...
Matteo Merli [Thu, 15 Feb 2018 23:27:33 +0000 (15:27 -0800)] 
Replace DoubleByteBuf with CompositeByteBuf because of perf regression with Netty > 4.1.12

Starting from Netty-4.1.13 some internal behavior has changed and that has introduced a performance penalty when using the `DoubleByteBuf`.

The problem resides in the fact that netty falls back to calling `nioBuffers()` and that is creating an array of unpooled direct `ByteBuffers`. That is pretty heavy and the JVM is taking 1 to 3 seconds GC pause to reclaim them.

Short term fix is to go back to `CompositeByteBuf` which doesn't have the problem (the `DirectByteBuffer` instances are pooled and reused). I have verified that GC is back to normal after this patch.

More mid-term, since `CompositeByteBuf` allocates a bunch of objects (counted ~10 per entry) I have a change to replace it with a `ByteBufList` holder class. I have the change almost done but it will take a while to test it to verify corner cases.

This should be considered for a 4.6.2 fix release.

Author: Matteo Merli <mmerli@apache.org>

Reviewers: Ivan Kelly <ivank@apache.org>, Enrico Olivelli <eolivelli@gmail.com>, Jia Zhai <None>, Sijie Guo <sijie@apache.org>, Venkateswararao Jujjuri (JV) <None>

This closes #1108 from merlimat/composite-byte-buf-master

2 days agoUpgrade arquillian-cube to latest version (0.15.1)
Ivan Kelly [Thu, 15 Feb 2018 22:40:36 +0000 (23:40 +0100)] 
Upgrade arquillian-cube to latest version (0.15.1)

This gets rid of an ugly exception that the framework was throwing.
https://github.com/arquillian/arquillian-cube/issues/957

Author: Ivan Kelly <ivank@apache.org>

Reviewers: Enrico Olivelli <eolivelli@gmail.com>

This closes #1150 from ivankelly/arq-upgrade

2 days agoInclude yahoo custom version in all versions image
Ivan Kelly [Thu, 15 Feb 2018 14:43:26 +0000 (15:43 +0100)] 
Include yahoo custom version in all versions image

To ensure compatibility between versions during the merge, we need the
yahoo custom version of bookkeeper.

The most straightforward way to get this version is through
pulsar. It's distributed as part of the pulsar distribution, with
scripts to start it and all.

Author: Ivan Kelly <ivank@apache.org>

Reviewers: Enrico Olivelli <eolivelli@gmail.com>, Sijie Guo <sijie@apache.org>

This closes #1146 from ivankelly/yahoo-in-image

2 days agoIntegration smoke test
Ivan Kelly [Thu, 15 Feb 2018 14:42:09 +0000 (15:42 +0100)] 
Integration smoke test

Most basic integration test we can have.
- Boots a cluster
- Writes a ledger
- Reads back the ledger
- Shutdown the cluster

If this test fails, something is very wrong.

Author: Ivan Kelly <ivank@apache.org>

Reviewers: Enrico Olivelli <eolivelli@gmail.com>, Sijie Guo <sijie@apache.org>

This closes #1133 from ivankelly/smoke-test

3 days agoSpecify repo in MavenClassLoader
Ivan Kelly [Wed, 14 Feb 2018 18:09:31 +0000 (02:09 +0800)] 
Specify repo in MavenClassLoader

This is required for testing yahoo's custom bookkeeper client, as it
doesn't reside in maven central.

Author: Ivan Kelly <ivank@apache.org>

Reviewers: Enrico Olivelli <eolivelli@gmail.com>, Sijie Guo <sijie@apache.org>

This closes #1135 from ivankelly/classloader-repo

3 days agoGather disk information before CI build
Ivan Kelly [Wed, 14 Feb 2018 16:35:37 +0000 (17:35 +0100)] 
Gather disk information before CI build

I suspect that we are getting quite a few flakes because of over-full
disks in the CI workers. I'd like to confirm this hypothesis and
gather some information before taking corrective action.

Author: Ivan Kelly <ivank@apache.org>

Reviewers: Enrico Olivelli <eolivelli@gmail.com>, Venkateswararao Jujjuri (JV) <None>

This closes #1142 from ivankelly/df-on-build

3 days agoSplit all versions images into released and latest
Ivan Kelly [Wed, 14 Feb 2018 15:13:21 +0000 (16:13 +0100)] 
Split all versions images into released and latest

The released tarballs rarely change, while the latest changes every
build. This patch splits the all version image into a base images with
the released tarballs, and a image which includes all released and the
very latest tarball.

This allows the released image to be cached/pushed to dockerhub, which
will in turn allow us to speed up our CI builds that use the all
version image.

Author: Ivan Kelly <ivank@apache.org>

Reviewers: Enrico Olivelli <eolivelli@gmail.com>, Sijie Guo <sijie@apache.org>

This closes #1131 from ivankelly/image-split

4 days agoFix shutdown race which left ZK session open
Ivan Kelly [Tue, 13 Feb 2018 16:52:54 +0000 (17:52 +0100)] 
Fix shutdown race which left ZK session open

There was a race when shutting down a bookie, where both the main
thread and the shutdown hook thread would try to close the bookie
service. This would result in them racing to set the lifecycle state
and neither would end up cleaning up properly. Specifically, the
starter latch would be counted down, so the main thread would start to
close, then the shutdown hook would run, try to close, and get an
exception when it tried to change the state. Once the all shutdown
hooks end, the process exits, even if main hasn't completed. This
leaves the zookeeper session open.

I've removed the close from main(). The shutdown hook always runs
on a graceful shutdown, so that's the place to do the cleanup.

Author: Ivan Kelly <ivank@apache.org>

Reviewers: Enrico Olivelli <eolivelli@gmail.com>, Sijie Guo <sijie@apache.org>

This closes #1132 from ivankelly/shut-race

4 days agoRequire green CI before merge
Ivan Kelly [Tue, 13 Feb 2018 16:50:36 +0000 (17:50 +0100)] 
Require green CI before merge

CI has been broken since the 2018-02-06, due to a non-green patch
being merged. With the recent flake fixes, CI should only go green if
there's a good reason. More over, any remaining problems will get
fixed faster, if people non-green builds start being a pain for
people.

So, this patch blocks merging with the merge script, if all checks are
not green. It can be overriden by adding a comment with the text
"Ignore CI" (case insensitive), on the PR.

Author: Ivan Kelly <ivank@apache.org>

Reviewers: Dave Rusek <dave.rusek@gmail.com>, Jia Zhai <None>, Enrico Olivelli <eolivelli@gmail.com>, Sijie Guo <sijie@apache.org>

This closes #1145 from ivankelly/require-green

4 days agoFix test regression due to change in default ledger manager
Ivan Kelly [Tue, 13 Feb 2018 14:09:32 +0000 (15:09 +0100)] 
Fix test regression due to change in default ledger manager

TestBenchmark#testReadThroughputLatency() regressed due to the change
in 3ddc5db, where the default ledger manager was changed from flat to
hierarchical.

The fix is to use flat for this test. I've also cleaned up the test a
little, and added some code to the benchmark to make the test run
faster.

Author: Ivan Kelly <ivank@apache.org>

Reviewers: Enrico Olivelli <eolivelli@gmail.com>, Sijie Guo <sijie@apache.org>

This closes #1137 from ivankelly/bench-broke

4 days agoIssue-1143 Error on Java 9 using BookKeeperAdmin API and bookkeeper-server-shaded
Enrico Olivelli [Tue, 13 Feb 2018 09:51:54 +0000 (10:51 +0100)] 
Issue-1143 Error on Java 9 using BookKeeperAdmin API and bookkeeper-server-shaded

Update Maven Shade Plugin to 3.1.0

Relates to issue #1143

Author: Enrico Olivelli <eolivelli@apache.org>

Reviewers: Ivan Kelly <ivank@apache.org>, Sijie Guo <sijie@apache.org>

This closes #1144 from eolivelli/fix/update-shade-plugin

8 days ago[MERGE YAHOO REPO] Only reorder read sequence if any bookie is not available
Jia Zhai [Sat, 10 Feb 2018 03:03:28 +0000 (11:03 +0800)] 
[MERGE YAHOO REPO] Only reorder read sequence if any bookie is not available

Descriptions of the changes in this PR:
This is cherry-pick from yahoo repo of branch yahoo-4.3.

original change is:
https://github.com/yahoo/bookkeeper/commit/1ddd14a1
Only reorder read sequence if any bookie is not available

Author: Jia Zhai <zhaijia@apache.org>
Author: Matteo Merli <mmerli@apache.org>

Reviewers: Enrico Olivelli <eolivelli@gmail.com>, Sijie Guo <sijie@apache.org>

This closes #1120 from jiazhai/cherry_picks/i_161

8 days agoRemove spammy log messages in Journal
Ivan Kelly [Fri, 9 Feb 2018 14:25:55 +0000 (15:25 +0100)] 
Remove spammy log messages in Journal

Looks like they were put in while debugging and not cleaned up.

Author: Ivan Kelly <ivank@apache.org>

Reviewers: Enrico Olivelli <eolivelli@gmail.com>

This closes #1134 from ivankelly/spam-log

8 days agoEntry count parameters for BenchBookie
Ivan Kelly [Fri, 9 Feb 2018 14:23:45 +0000 (15:23 +0100)] 
Entry count parameters for BenchBookie

So that they can be added in the test, to make the test run faster and
not timeout in CI and ruin an otherwise good test run.

Author: Ivan Kelly <ivank@apache.org>

Reviewers: Enrico Olivelli <eolivelli@gmail.com>

This closes #1136 from ivankelly/bench-flake

12 days agoBP-29: Metadata API module
Sijie Guo [Tue, 6 Feb 2018 06:12:46 +0000 (22:12 -0800)] 
BP-29: Metadata API module

Descriptions of the changes in this PR:

Related to BP-28 (#1113), this proposal is to propose how we want to organize the metadata modules, to support different metadata storage implementation.

Master Ticket: #1123

Author: Sijie Guo <sijie@apache.org>

Reviewers: Jia Zhai <None>, Sijie Guo <sijie@apache.org>, Venkateswararao Jujjuri (JV) <None>

This closes #1117 from sijie/BP-29-metadata-store-api

13 days agoUse BookieServer#getLocalAddress() in BookieClientTest
Sijie Guo [Mon, 5 Feb 2018 04:35:27 +0000 (20:35 -0800)] 
Use BookieServer#getLocalAddress() in BookieClientTest

Author: Sijie Guo <sijie@apache.org>

Reviewers: Charan Reddy Guttapalem <reddycharan18@gmail.com>

This closes #1119 from sijie/fix_bookie_client_test

2 weeks agoTravis CI should not use a hardcoded release version for check-release script
Sijie Guo [Sat, 3 Feb 2018 17:33:14 +0000 (09:33 -0800)] 
Travis CI should not use a hardcoded release version for check-release script

Descriptions of the changes in this PR:

CI is going to be broken when we bumped to 4.8.0.  since travis CI is using a hardcoded version for check-release script.

Author: Sijie Guo <sijie@apache.org>

Reviewers: Ivan Kelly <ivank@apache.org>, Jia Zhai <None>

This closes #1118 from sijie/fix_check_release_script

2 weeks agoCleanup registration client interface
Sijie Guo [Sat, 3 Feb 2018 17:32:25 +0000 (09:32 -0800)] 
Cleanup registration client interface

Descriptions of the changes in this PR:

This change is mainly to remove `zookeeper` reference from metadata interface. The existence of `Optional<ZooKeeper>` is to allow passing an external zookeeper client to bookkeeper, so bookkeeper can reuse that client instance. That is useful for services like pulsar broker, which they can only instantiate a zookeeper client and pass the zookeeper client around to construct bookkeeper client. However, this pollutes the registration client interface, change the method to `Optional<Object>` as an optional context object and let the implementation interpret it.

Author: Sijie Guo <sijie@apache.org>

Reviewers: Enrico Olivelli <eolivelli@gmail.com>, Jia Zhai <None>

This closes #1116 from sijie/clean_registration_client_interface

2 weeks agoChange default ledger manager factory from `Flat` to `Hierachical`
Sijie Guo [Sat, 3 Feb 2018 17:31:01 +0000 (09:31 -0800)] 
Change default ledger manager factory from `Flat` to `Hierachical`

Descriptions of the changes in this PR:

the discussion can be found at : http://mail-archives.apache.org/mod_mbox/bookkeeper-dev/201802.mbox/%3CCAO2yDyYdZ8%3D4tViNX1uL0Z67KX78JPD2XBGd7ermjO%3DK%3DscvcQ%40mail.gmail.com%3E

Author: Sijie Guo <sijie@apache.org>

Reviewers: Yiming Zang <yzang2016@gmail.com>, Jia Zhai <None>, Enrico Olivelli <eolivelli@gmail.com>

This closes #1115 from sijie/flip_default_ledger_manager

2 weeks agoUpdate PR template
Sijie Guo [Sat, 3 Feb 2018 05:36:02 +0000 (21:36 -0800)] 
Update PR template

Descriptions of the changes in this PR:

- JIRA is not used anymore. Remove it from PR template.

Author: Sijie Guo <sijie@apache.org>

Reviewers: Jia Zhai <None>

This closes #1111 from sijie/update_pr_template

2 weeks agoUpdate release schedule
Sijie Guo [Sat, 3 Feb 2018 00:37:16 +0000 (16:37 -0800)] 
Update release schedule

Descriptions of the changes in this PR:

- update current feature release to 4.7.0 and its release window
- add a section in release guide for instructions to update release schedule

Author: Sijie Guo <sijie@apache.org>

Reviewers: Enrico Olivelli <eolivelli@gmail.com>

This closes #1112 from sijie/update_release_schedule

2 weeks agoRevamped downloads page
Luc Perkins [Sat, 3 Feb 2018 00:36:01 +0000 (16:36 -0800)] 
Revamped downloads page

This PR addresses issue #1090 and significantly revamps the downloads page to bring it in line with Apache standards. It also makes some changes to the website's general setup and build process to make that process less brittle.

Author: Luc Perkins <lucperkins@gmail.com>

Reviewers: Jia Zhai <None>, Sijie Guo <sijie@apache.org>

This closes #1104 from lucperkins/lperkins/asf-compliance

2 weeks agoUse loopback network interface for testcases.
cguttapalem [Sat, 3 Feb 2018 00:34:12 +0000 (16:34 -0800)] 
Use loopback network interface for testcases.

Descriptions of the changes in this PR:

- tests would be more reliable irrespective of the environment (and availability of network connection), if the loopback address is used in testsuites.
- unless loopback address is set explicitly, in my env (while on company's VPN),
UpdateCookieCmdTest is failing most of the times.
- currently allowLoopback is set to true in BookKeeperClusterTestCase,
but it doesn't make Bookies to use loopback interface address.
- loopback network interface should be set explicitly as
listening interface to use loopback address.

Note:

1) will create Issue for this depending on the PR feedback.
2) in other places (where setAllowLoopback is set) also loopback interface needs to be set

Author: cguttapalem <cguttapalem@salesforce.com>

Reviewers: Samuel Just <sjust@salesforce.com>, Jia Zhai <None>, Sijie Guo <sijie@apache.org>

This closes #1097 from reddycharan/loopbackaddress

2 weeks agoBP-26 (task 4): run dlog tests when pull requests modify dlog modules
Sijie Guo [Sat, 3 Feb 2018 00:32:16 +0000 (16:32 -0800)] 
BP-26 (task 4): run dlog tests when pull requests modify dlog modules

Descriptions of the changes in this PR:

- enable dlog tests on all post commit CI jobs
- for pull requests, only run dlog tests on travis CI and only when the pull requests modify dlog modules.

Master Issue: #1024

Author: Sijie Guo <sijie@apache.org>

Reviewers: Yiming Zang <yzang2016@gmail.com>, Jia Zhai <None>

This closes #1096 from sijie/enable_dlog_ci

2 weeks agoBP-26 (task 3) : Build dlog shaded jar in bookkeeper way
Sijie Guo [Sat, 3 Feb 2018 00:31:07 +0000 (16:31 -0800)] 
BP-26 (task 3) : Build dlog shaded jar in bookkeeper way

Descriptions of the changes in this PR:

- discard dlog shaded artifacts and build `distributedlog-core-shaded` jar similar as `bookkeeper-server-shaded`
- discard bookkeeper-server shaded artifact
- move all shaded related tests to `tests/shaded`

Master Issue: #1024

Author: Sijie Guo <sijie@apache.org>

Reviewers: Dave Rusek <dave.rusek@gmail.com>, Jia Zhai <None>, Yiming Zang <yzang2016@gmail.com>

This closes #1095 from sijie/dlog_shade_jar

2 weeks agoISSUE #1067: PendingReadOp: recovery, return NoSuchEntry on wQ-aQ+1 errors
Samuel Just [Sat, 3 Feb 2018 00:26:45 +0000 (16:26 -0800)] 
ISSUE #1067: PendingReadOp: recovery, return NoSuchEntry on wQ-aQ+1 errors

In the case of a recovery read, we rely on a NoSuchEntry response on the
first missing entry to determine the final LAC.  As such, we need to
consider an entry to be gone once we see wQ-aQ+1 NoSuchEntry/Ledger
responses from bookies.  Otherwise, a zombie bookie can prevent ledger
recovery from suceeding indefinitely (it'll hit the timeout each time).

There was some preexisting logic from
https://issues.apache.org/jira/browse/BOOKKEEPER-365
b6c1a8bbd7c2d44c2edb59d9938fa073f6f478de,
but it seems to have been too conservative in that it waited for all
responses and required that there were no other errors present.  It
seems now to be unnecessary, and so has been removed.

TestParallelRead.testFailParallelReadMissingEntryImmediately seemed to
rely on the previous logic working outside of recovery, but I believe it
was really meant to test the recovery case, so it has been adjusted.

(bug W-4651456)
Signed-off-by: Samuel Just <sjustsalesforce.com>
Author: Samuel Just <sjust@salesforce.com>

Reviewers: Samuel Just <sjust@salesforce.com>, Ivan Kelly <ivank@apache.org>, Sijie Guo <sijie@apache.org>, Venkateswararao Jujjuri (JV) <None>

This closes #1077 from athanatos/forupstream/wip-4651456-recovery-read, closes #1067

2 weeks agoISSUE #1063: Write keeps refCnt longer
JV Jujjuri [Sat, 3 Feb 2018 00:22:56 +0000 (16:22 -0800)] 
ISSUE #1063: Write keeps refCnt longer

Descriptions of the changes in this PR:

Current code keeps the toSend buffers until client receives
resonses from all wq bookies. From the senders perspective,
It is not required to keep the refcount on it at the PendingAddOp
level, as the ref is taken at bookie client level.

Keeping these buffers longer will increase the memory pressure
on the client.

Signed-off-by: Venkateswararao Jujjuri (JV) <vjujjurisalesforce.com>
Master Issue: #1091

Author: JV Jujjuri <vjujjuri@vjujjuri-ltm2.internal.salesforce.com>

Reviewers: Enrico Olivelli <eolivelli@gmail.com>, Sijie Guo <sijie@apache.org>

This closes #1091 from jvrao/bookkeeper-1063, closes #1063

2 weeks agoBP-27: New BookKeeper CLI
Sijie Guo [Fri, 2 Feb 2018 07:11:13 +0000 (15:11 +0800)] 
BP-27: New BookKeeper CLI

Descriptions of the changes in this PR:

`BookieShell` is the current bookkeeper cli for interacting and operating a bookkeeper cluster. However, this class is getting bigger with more commands added to it. It is facing a few problems for maintenance and extensibility.

- All commands sit in one gaint shell class. It is hard to tell if a command is used for managing a bookie only or if a command is used for managing a cluster.
- Lack of unit tests. This class has very few test coverage. Most of the commands (introduced in early days) don't have a unit test.
- Lack of extensibility. If a new function component (for example, dlog) is introduced, it is a bit hard to extend this CLI to have commands for new function component.

All these problems lead to the proposal here. This proposal is to propose refactoring/redesigning the bookkeeper CLI to allow better managebility for maintenance, better test coverage and better extensibility for new function components.

Master Issue: #1000

Author: Sijie Guo <sijie@apache.org>

Reviewers: Ivan Kelly <ivank@apache.org>, Jia Zhai <None>

This closes #1093 from sijie/BP_27_new_bookkeeper_cli

2 weeks agoRun checkstyle plugin at validate phase
Sijie Guo [Fri, 2 Feb 2018 04:11:30 +0000 (12:11 +0800)] 
Run checkstyle plugin at validate phase

Descriptions of the changes in this PR:

Most of the modules run checkstyle plugin at validate phase. However a few modules are still running at `test-compile` phase.
Update the checkstyle plugins in those modules to run at validate phase. So the behavior is consistent across the project.

Author: Sijie Guo <sijie@apache.org>

Reviewers: Jia Zhai <None>

This closes #1098 from sijie/run_checkstyle_at_validate_phase

2 weeks agoIssue #605: bk_server.conf wrong default logSizeLimit
Ivan Kelly [Fri, 2 Feb 2018 02:37:59 +0000 (10:37 +0800)] 
Issue #605: bk_server.conf wrong default logSizeLimit

It's commented out, but the value is invalid. This patch changes it to
match the default in ServerConfiguration.

Author: Ivan Kelly <ivank@apache.org>

Reviewers: Jia Zhai <None>, Sijie Guo <sijie@apache.org>

This closes #1105 from ivankelly/entry-log-size, closes #605

2 weeks agoBP-14 Implementation of WriteFlag.DEFERRED_SYNC on Journal
Enrico Olivelli [Thu, 1 Feb 2018 19:21:20 +0000 (11:21 -0800)] 
BP-14 Implementation of WriteFlag.DEFERRED_SYNC on Journal

Implement WriteFlags.DERERRED_SYNC on Bookie side.
In case of DEFERRED_SYNC write Journal will early acknowledge the write, just after flushing the buffer to the OS cache, but before waiting for an fsync.

Author: Enrico Olivelli <eolivelli@apache.org>

Reviewers: Sijie Guo <sijie@apache.org>

This closes #889 from eolivelli/bp14-writeflags-journal

2 weeks agoDont log ledgermetadata which contains password.
cguttapalem [Thu, 1 Feb 2018 19:19:29 +0000 (11:19 -0800)] 
Dont log ledgermetadata which contains password.

Descriptions of the changes in this PR:

Dont log ledgermetadata contains password used to create
the ledger. Logs are not supposed to reveal such sensitive info.

Author: cguttapalem <cguttapalem@salesforce.com>

Reviewers: Ivan Kelly <ivank@apache.org>, Jia Zhai <None>, Sijie Guo <sijie@apache.org>

This closes #1092 from reddycharan/fixpasswordlog

2 weeks agoBP-26 (task-2): make distributedlog modules be able to be built in bookkeeper repo
Sijie Guo [Wed, 31 Jan 2018 21:13:33 +0000 (13:13 -0800)] 
BP-26 (task-2): make distributedlog modules be able to be built in bookkeeper repo

Descriptions of the changes in this PR:

This is the second sub-task of #1024. This change is based on [BP-26/distributedlog_merge](https://github.com/apache/bookkeeper/tree/BP-26/distributedlog_merge) branch (created at #1068).

This change includes:

- move the findbugs.xml and checkstyle/suppression.xml from distributedlog-build-tools to bookkeeper buildtools module.
- mockito: dlog is using mockito 1 while bk is using mockito 2. this change make dlog modules use the mockito dependencies defined at root pom.xml.
- change the description from "Apache DistributedLog" to "Apache BookKeeper :: DistributedLog".
- change the versions from `0.6.0-SNAPSHOT` to `4.7.0-SNAPSHOT`.
- fix the compilation issues with current latest bk

This PR *DOESNT* change the group id of distributedlog modules. They will remain using "org.apache.distributedlog" as the group id.

Author: Sijie Guo <sijie@apache.org>

Reviewers: Enrico Olivelli <eolivelli@gmail.com>, Jia Zhai <None>, Yiming Zang <yzang2016@gmail.com>

This closes #1069 from sijie/compile_distributedlog

2 weeks agoISSUE #611: restrict max ensemble change numbers
Arvin [Wed, 31 Jan 2018 19:16:33 +0000 (11:16 -0800)] 
ISSUE #611: restrict max ensemble change numbers

Descriptions of the changes in this PR:

Add max ensemble change number check

Master Issue: #611

Author: Arvin <arvindevel@gmail.com>

Reviewers: Enrico Olivelli <eolivelli@gmail.com>

This closes #925 from ArvinDevel/restrict_ensemble_num, closes #611

2 weeks ago[MERGE YAHOO REPO] Support DbLedgerStorage in LedgerCmd to get list of logger files...
Jia Zhai [Wed, 31 Jan 2018 19:14:31 +0000 (11:14 -0800)] 
[MERGE YAHOO REPO] Support DbLedgerStorage in LedgerCmd to get list of logger files for a given ledgerId

Descriptions of the changes in this PR:
This is cherry-pick from yahoo repo of branch yahoo-4.3.

original change is:
https://github.com/yahoo/bookkeeper/commit/384414b6
Support DbLedgerStorage in LedgerCmd to get list of logger files for a given ledgerId

Author: Jia Zhai <zhaijia@apache.org>
Author: Rajan <dhabalia.me@gmail.com>

Reviewers: Sijie Guo <sijie@apache.org>

This closes #1057 from jiazhai/cherry_picks/i_209

2 weeks agoZkUtils.asyncDeleteFullPathOptimistic: pass -1 as znodeVersion to parents
Samuel Just [Wed, 31 Jan 2018 19:13:35 +0000 (11:13 -0800)] 
ZkUtils.asyncDeleteFullPathOptimistic: pass -1 as znodeVersion to parents

znodeVersion for the child won't necessarily match the parents.  This
isn't really meaningful to test since the version of the internal nodes
for all current users will be 0, but fixing it at least will reduce
confusion

Signed-off-by: Charan Reddy Guttapalem <cguttapalemsalesforce.com>
[Adapted to current patch]
Signed-off-by: Samuel Just <sjustsalesforce.com>
Author: Samuel Just <sjust@salesforce.com>

Reviewers: Jia Zhai <None>, Sijie Guo <sijie@apache.org>

This closes #1073 from athanatos/forupstream/misc/zkutilsfullpath

2 weeks agoMerge branch 'master' into BP-26/distributedlog_merge
Sijie Guo [Wed, 31 Jan 2018 19:02:40 +0000 (11:02 -0800)] 
Merge branch 'master' into BP-26/distributedlog_merge

2 weeks agoMerge remote-tracking branch 'apache/master' into copy_distributedlog
Sijie Guo [Wed, 31 Jan 2018 18:59:04 +0000 (10:59 -0800)] 
Merge remote-tracking branch 'apache/master' into copy_distributedlog

2 weeks agoIncrease job timeout to 200 mins
Sijie Guo [Tue, 30 Jan 2018 21:14:44 +0000 (13:14 -0800)] 
Increase job timeout to 200 mins

Descriptions of the changes in this PR:

the postcommit jobs have been timedout for a few days. This change is to increase the build timeout to get all jenkins job enough time to complete.

Author: Sijie Guo <sijie@apache.org>

Reviewers: Enrico Olivelli <eolivelli@gmail.com>

This closes #1089 from sijie/increase_job_timeout

2 weeks agoLombok doesn't work with groovy
Ivan Kelly [Tue, 30 Jan 2018 20:10:17 +0000 (12:10 -0800)] 
Lombok doesn't work with groovy

So the Cleanup annotation does nothing. I've changed it in the BC
test to a traditional try {} finally {} since groovy doesn't do
try-with-resources either, and its equivalent doesn't do multiple
objects.

Master Issue: #903

Author: Ivan Kelly <ivank@apache.org>

Reviewers: Enrico Olivelli <eolivelli@gmail.com>, Sijie Guo <sijie@apache.org>

This closes #1084 from ivankelly/lombok-dont-work

2 weeks agoTest that old clients work with current server
Ivan Kelly [Tue, 30 Jan 2018 20:08:25 +0000 (12:08 -0800)] 
Test that old clients work with current server

Test that old clients(4.2.0 onwards) can create, open, read, write ledgers on
the latest version of the server.

Master Issue: #903

Author: Ivan Kelly <ivank@apache.org>

Reviewers: Enrico Olivelli <eolivelli@gmail.com>, Sijie Guo <sijie@apache.org>

This closes #1083 from ivankelly/new-server-old-client

2 weeks agoISSUE #1079: use CachingStatsProvider underly FinagleStatsProvider
Jia Zhai [Tue, 30 Jan 2018 20:06:42 +0000 (12:06 -0800)] 
ISSUE #1079: use CachingStatsProvider underly FinagleStatsProvider

Descriptions of the changes in this PR:
use CachingStatsProvider underly FinagleStatsProvider to avoid creating a lot of brand new object

Master Issue: #1079

Author: Jia Zhai <zhaijia@apache.org>

Reviewers: Sijie Guo <sijie@apache.org>

This closes #1082 from jiazhai/issue-1079, closes #1079

2 weeks agoISSUE #1078: use CachingStatsProvider underly PrometheusMetricsProvider
Jia Zhai [Tue, 30 Jan 2018 20:04:30 +0000 (12:04 -0800)] 
ISSUE #1078: use CachingStatsProvider underly PrometheusMetricsProvider

Descriptions of the changes in this PR:
- add CachingStatsProvider to wrapper PrometheusMetricsProvider;
- add test verify the cache.

Master Issue: #1078

Author: Jia Zhai <zhaijia@apache.org>

Reviewers: Sijie Guo <sijie@apache.org>, Matteo Merli <mmerli@apache.org>

This closes #1081 from jiazhai/issue-1078, closes #1078

2 weeks agoFixing validation in BookieShell.scanEntryLogForSpecificEntry
cguttapalem [Tue, 30 Jan 2018 20:02:49 +0000 (12:02 -0800)] 
Fixing validation in BookieShell.scanEntryLogForSpecificEntry

Descriptions of the changes in this PR:

https://github.com/apache/bookkeeper/commit/086537beda9427c057a286ad6c4614659da6ed7f
has messed up conditional checks in BookieShell.scanEntryLogForSpecificEntry.
Reverting those changes.

Author: cguttapalem <cguttapalem@salesforce.com>

Reviewers: Sijie Guo <sijie@apache.org>

This closes #1076 from reddycharan/fixScanEntryLogForSpecificEntry

2 weeks agoURLDecode key/cert paths in TestTLS
Ivan Kelly [Tue, 30 Jan 2018 20:00:34 +0000 (12:00 -0800)] 
URLDecode key/cert paths in TestTLS

In TestTLS we load keys/certs from the classpath, which means we get
the filename as a URL. Since it is a URL it is URL encoded for special
characters. Usually this is not an issue, but in the case that there
are special characters in the path, these will be encoded, and then
when we try to open the file we get a FileNotFoundException. This
occurs on jenkins, when there are two parallel builds on the same
job (it adds a N to the workspace name), and was causing all TLS
tests to fail in that case.

Author: Ivan Kelly <ivank@apache.org>

Reviewers: Sijie Guo <sijie@apache.org>

This closes #1074 from ivankelly/tls-fix

2 weeks ago[MERGE YAHOO REPO] YBK-154: Add sleep after finding free port given OS time to release it
Robert Evans [Tue, 30 Jan 2018 19:48:31 +0000 (11:48 -0800)] 
[MERGE YAHOO REPO] YBK-154: Add sleep after finding free port given OS time to release it

Descriptions of the changes in this PR:
This is cherry-pick from yahoo repo of branch yahoo-4.3.

original change is:
https://github.com/yahoo/bookkeeper/commit/40196007
YBK-154: Addign sleep after finding free port so the OS has time to release it

Author: Robert Evans <evans@yahoo-inc.com>

Reviewers: Enrico Olivelli <eolivelli@gmail.com>, Sijie Guo <sijie@apache.org>

This closes #1055 from jiazhai/cherry_picks/ii_205

2 weeks agoISSUE #934: Additional stats to track netty latencies in PCBC
Kishore Udayashankar [Tue, 30 Jan 2018 19:46:22 +0000 (11:46 -0800)] 
ISSUE #934: Additional stats to track netty latencies in PCBC

Descriptions of the changes in this PR:

(bug W-4058645) add metrics to measure netty stack latency
- Counters to track outstanding reads/writes operations
- Collect Netty IO rate and latency histograms

rev ayegorov

PerChannelBookieClient: add additional stats

Adds:
- exceptionCounter
- connectTimer
- addEntryOutstanding
- readEntryOutstanding
- nettyOpLogger

Signed-off-by: Kishore Kasi Udayashankar<kudayashankarsalesforce.com>
Master Issue: #934

Author: Kishore Udayashankar <kudayashankar@salesforce.com>

Reviewers: Enrico Olivelli <eolivelli@gmail.com>, Sijie Guo <sijie@apache.org>

This closes #971 from kishorekasi/pcbc-stats, closes #934

2 weeks agoAdd release date for 4.6.1 to the website
Enrico Olivelli [Tue, 30 Jan 2018 08:12:47 +0000 (09:12 +0100)] 
Add release date for 4.6.1 to the website

Author: Enrico Olivelli <eolivelli@apache.org>

Reviewers: Sijie Guo <sijie@apache.org>

This closes #1080 from eolivelli/update-website-4.6.1

2 weeks agoRelease notes for 4.6.1
Enrico Olivelli [Tue, 30 Jan 2018 08:04:29 +0000 (09:04 +0100)] 
Release notes for 4.6.1

Author: eolivelli <eolivelli@apache.org>
Author: Enrico Olivelli <eolivelli@apache.org>

Reviewers: Jia Zhai <None>, Matteo Merli <mmerli@apache.org>, Sijie Guo <sijie@apache.org>, Venkateswararao Jujjuri (JV) <None>

This closes #980 from eolivelli/releasenotes461

2 weeks agoCleanup classloaders in backward-compat tests
Ivan Kelly [Mon, 29 Jan 2018 22:56:14 +0000 (14:56 -0800)] 
Cleanup classloaders in backward-compat tests

The BC tests run in the maven process (for classloader reasons), so we
need to make sure we clean stuff up to avoid running out of memory, as
the classloaders will load a bunch of jars into memory.

Master Issue: #1030

Author: Ivan Kelly <ivank@apache.org>

Reviewers: Enrico Olivelli <eolivelli@gmail.com>, Sijie Guo <sijie@apache.org>

This closes #1070 from ivankelly/cleanup-cl

2 weeks agoremove "distributedlog_" from module names
Sijie Guo [Mon, 29 Jan 2018 00:37:37 +0000 (16:37 -0800)] 
remove "distributedlog_" from module names

2 weeks agoISSUE #1049: Add PERMITTED_STARTUP_USERS to limit bookie startup users
Samuel Just [Sun, 28 Jan 2018 09:34:26 +0000 (01:34 -0800)] 
ISSUE #1049: Add PERMITTED_STARTUP_USERS to limit bookie startup users

Starting the bookie as the wrong user (such as root) can cause problems
as the on disk files may end up with the wrong permissions.  Add
PERMITTED_STARTUP_USERS to protect against this kind of operational
error.

(bug W-3599751)
Signed-off-by: Dustin Castor <dcastorsalesforce.com>
[Adapted to current code]
Signed-off-by: Samuel Just <sjustsalesforce.com>
Author: Samuel Just <sjust@salesforce.com>

Reviewers: Enrico Olivelli <eolivelli@gmail.com>, Sijie Guo <sijie@apache.org>

This closes #1065 from athanatos/forupstream/permitted-startup-users, closes #1049

2 weeks agoMove backward compat tests into their own java package
Ivan Kelly [Sun, 28 Jan 2018 09:33:20 +0000 (01:33 -0800)] 
Move backward compat tests into their own java package

Master Issue: #1030

Author: Ivan Kelly <ivank@apache.org>

Reviewers: Enrico Olivelli <eolivelli@gmail.com>, Sijie Guo <sijie@apache.org>

This closes #1064 from ivankelly/bc-java-package

2 weeks agoISSUE #933: Add support for PEM Key file formats
Kishore Udayashankar [Sun, 28 Jan 2018 09:30:15 +0000 (01:30 -0800)] 
ISSUE #933: Add support for PEM Key file formats

(bug W-4203319) TLS authentication to support PEM format X.509
certificates along with JKS and PKCS12 formats.

Added another KeyStore Type to the list of formats (JKS, PKCS12)
currently supported during SSLContext creation.

rev ayegorov

Signed-off-by: Kishore Kasi Udayashankar <kudayashankarsalesforce.com>
Descriptions of the changes in this PR:

(PR description content here)...

Master Issue: #933

Author: Kishore Udayashankar <kudayashankar@salesforce.com>

Reviewers: Enrico Olivelli <eolivelli@gmail.com>, Sijie Guo <sijie@apache.org>

This closes #965 from kishorekasi/tls-pem, closes #933

3 weeks agoMerge branch 'master' of /Users/sijie/Workspaces/bookkeeper/../distributedlog_merge...
Sijie Guo [Fri, 26 Jan 2018 19:42:50 +0000 (11:42 -0800)] 
Merge branch 'master' of /Users/sijie/Workspaces/bookkeeper/../distributedlog_merge into copy_distributedlog

3 weeks agoMove distributedlog-io module
Sijie Guo [Fri, 26 Jan 2018 19:42:17 +0000 (11:42 -0800)] 
Move distributedlog-io module

3 weeks agoMerge branch 'master' of /Users/sijie/Workspaces/bookkeeper/../distributedlog_merge...
Sijie Guo [Fri, 26 Jan 2018 19:39:06 +0000 (11:39 -0800)] 
Merge branch 'master' of /Users/sijie/Workspaces/bookkeeper/../distributedlog_merge into copy_distributedlog

3 weeks agoMove distributedlog-core module
Sijie Guo [Fri, 26 Jan 2018 19:38:41 +0000 (11:38 -0800)] 
Move distributedlog-core module

3 weeks agoMerge branch 'master' of /Users/sijie/Workspaces/bookkeeper/../distributedlog_merge...
Sijie Guo [Fri, 26 Jan 2018 19:35:24 +0000 (11:35 -0800)] 
Merge branch 'master' of /Users/sijie/Workspaces/bookkeeper/../distributedlog_merge into copy_distributedlog

3 weeks agoMove distributedlog-protocol module
Sijie Guo [Fri, 26 Jan 2018 19:34:44 +0000 (11:34 -0800)] 
Move distributedlog-protocol module

3 weeks agoMerge branch 'master' of /Users/sijie/Workspaces/bookkeeper/../distributedlog_merge...
Sijie Guo [Fri, 26 Jan 2018 19:28:54 +0000 (11:28 -0800)] 
Merge branch 'master' of /Users/sijie/Workspaces/bookkeeper/../distributedlog_merge into copy_distributedlog

3 weeks agoMove distributedlog-common module
Sijie Guo [Fri, 26 Jan 2018 19:24:53 +0000 (11:24 -0800)] 
Move distributedlog-common module

3 weeks agoBP-26: Move the development of distributedlog library to bookkeeper
Sijie Guo [Fri, 26 Jan 2018 19:01:58 +0000 (11:01 -0800)] 
BP-26: Move the development of distributedlog library to bookkeeper

Descriptions of the changes in this PR:

This is a BP proposing moving the development of distributedlog library to bookkeeper. See details in the BP file.

Master Issue: #1024

Author: Sijie Guo <sijie@apache.org>

Reviewers: Henry Saputra <hsaputra@apache.org>, Matteo Merli <mmerli@apache.org>, Dave Rusek <dave.rusek@gmail.com>, Ivan Kelly <ivank@apache.org>, Enrico Olivelli <eolivelli@gmail.com>, Jia Zhai <None>, Sijie Guo <sijie@apache.org>, Yiming Zang <yzang2016@gmail.com>

This closes #1025 from sijie/bp_move_distributedlog

3 weeks ago[MERGE YAHOO REPO] Fix bookie-shell readJournal by reading from correct journal-directory
rdhabalia [Fri, 26 Jan 2018 17:23:35 +0000 (18:23 +0100)] 
[MERGE YAHOO REPO] Fix bookie-shell readJournal by reading from correct journal-directory

Descriptions of the changes in this PR:
This is cherry-pick from yahoo repo of branch yahoo-4.3.

original change is:
https://github.com/yahoo/bookkeeper/commit/c426efea
Fix bookie-shell readJournal by reading from correct journal-directory

Author: rdhabalia <rdhabalia@yahoo-inc.com>

Reviewers: Ivan Kelly <ivank@apache.org>, Sijie Guo <sijie@apache.org>

This closes #1056 from jiazhai/cherry_picks/i_207

3 weeks ago[MERGE YAHOO REPO] Flush after writing out index
Jia Zhai [Fri, 26 Jan 2018 17:20:00 +0000 (18:20 +0100)] 
[MERGE YAHOO REPO] Flush after writing out index

Descriptions of the changes in this PR:
This is cherry-pick from yahoo repo of branch yahoo-4.3.

original commit is:
https://github.com/yahoo/bookkeeper/commit/fecdb751
YBK-14: Flush after writing out index

Author: Jia Zhai <zhaijia@apache.org>
Author: Robert (Bobby) Evans <evans@yahoo-inc.com>

Reviewers: Ivan Kelly <ivank@apache.org>, Enrico Olivelli <eolivelli@gmail.com>, Sijie Guo <sijie@apache.org>, Matteo Merli <mmerli@apache.org>

This closes #1060 from jiazhai/cherry_picks/i_177

3 weeks ago[MERGE YAHOO REPO] Release addEntry-Bytebuf on readOnlyBookie to prevent memory-leak
rdhabalia [Fri, 26 Jan 2018 17:19:03 +0000 (18:19 +0100)] 
[MERGE YAHOO REPO] Release addEntry-Bytebuf on readOnlyBookie to prevent memory-leak

Descriptions of the changes in this PR:
This is cherry-pick from yahoo repo of branch yahoo-4.3.

original commit is:
https://github.com/yahoo/bookkeeper/commit/42bdc083
Release addEntry-Bytebuf on readOnlyBookie to prevent memory-leak

Author: rdhabalia <rdhabalia@yahoo-inc.com>

Reviewers: Ivan Kelly <ivank@apache.org>

This closes #1059 from jiazhai/cherry_picks/i_173

3 weeks ago[MERGE YAHOO REPO] Fixed NPE when accessing readonly bookie list
Matteo Merli [Fri, 26 Jan 2018 17:16:35 +0000 (18:16 +0100)] 
[MERGE YAHOO REPO] Fixed NPE when accessing readonly bookie list

Descriptions of the changes in this PR:
This is cherry-pick from yahoo repo of branch yahoo-4.3.

original commit is:
https://github.com/yahoo/bookkeeper/commit/270b69e4
Fixed NPE when accessing readonly bookie list

Author: Matteo Merli <mmerli@yahoo-inc.com>

Reviewers: Ivan Kelly <ivank@apache.org>, Sijie Guo <sijie@apache.org>

This closes #1058 from jiazhai/cherry_picks/i_165

3 weeks ago[MERGE YAHOO REPO] CMS-2060: Catch IndexOutOfBoundsException when reading entry log...
Matteo Merli [Fri, 26 Jan 2018 17:08:11 +0000 (18:08 +0100)] 
[MERGE YAHOO REPO] CMS-2060: Catch IndexOutOfBoundsException when reading entry log index map

Descriptions of the changes in this PR:
This is cherry-pick from yahoo repo of branch yahoo-4.3.

original commit is:
https://github.com/yahoo/bookkeeper/commit/2b7aacc5
CMS-2060: Catch IndexOutOfBoundsException when reading entry log index map

Author: Matteo Merli <mmerli@yahoo-inc.com>

Reviewers: Ivan Kelly <ivank@apache.org>, Enrico Olivelli <eolivelli@gmail.com>, Sijie Guo <sijie@apache.org>

This closes #1061 from jiazhai/cherry_picks/i_164

3 weeks agoEnable rerunning flakes twice
Ivan Kelly [Fri, 26 Jan 2018 09:53:14 +0000 (10:53 +0100)] 
Enable rerunning flakes twice

Enables a configuration in maven to rerun failed tests a second time.

Master issue: #1031

Author: Ivan Kelly <ivank@apache.org>

Reviewers: Enrico Olivelli <eolivelli@gmail.com>, Sijie Guo <sijie@apache.org>

This closes #1062 from ivankelly/retry-flake

3 weeks agoMove backward compat tests under a parent module
Ivan Kelly [Fri, 26 Jan 2018 06:10:34 +0000 (07:10 +0100)] 
Move backward compat tests under a parent module

To avoid having to many modules directly in tests/, this patch moves
backward compat tests under their own parent module,
tests/backward-compat.

Master Issue: #1030

Author: Ivan Kelly <ivank@apache.org>

Reviewers: Sijie Guo <sijie@apache.org>

This closes #1054 from ivankelly/move-dir

3 weeks agoRemove old compat stuff
Ivan Kelly [Fri, 26 Jan 2018 06:04:16 +0000 (07:04 +0100)] 
Remove old compat stuff

As compat tests are now docker based, the shading stuff is no longer
needed.

Master Issue: #903

Author: Ivan Kelly <ivank@apache.org>

Reviewers: Enrico Olivelli <eolivelli@gmail.com>, Sijie Guo <sijie@apache.org>

This closes #1052 from ivankelly/remove-old-bc

3 weeks agoServers formatted without instance id can't join a cluster with insta…
Ivan Kelly [Thu, 25 Jan 2018 14:11:55 +0000 (15:11 +0100)] 
Servers formatted without instance id can't join a cluster with insta…

Test that old client can continue to work with servers which are using their
hostname as their bookie id.

This replaces TestBackwardCompat#testCompatWrites and TestBackwardCompat#testCompatReads
from the old BC tests.

Master Issue: #903

Author: Ivan Kelly <ivank@apache.org>

Reviewers: Sijie Guo <sijie@apache.org>

This closes #1034 from ivankelly/bc-cookie

3 weeks agoNew testcases for ZKClient
Charan Reddy Guttapalem [Thu, 25 Jan 2018 05:58:09 +0000 (21:58 -0800)] 
New testcases for ZKClient

Descriptions of the changes in this PR:

- new testcases for ZKClient to improve code coverage.

Author: Charan Reddy Guttapalem <cguttapalem@salesforce.com>

Reviewers: Sijie Guo <sijie@apache.org>

This closes #1051 from reddycharan/zkclienttests

3 weeks agoEnhance exception logging.
cguttapalem [Thu, 25 Jan 2018 05:57:19 +0000 (21:57 -0800)] 
Enhance exception logging.

Descriptions of the changes in this PR:

- log exception in the case of exception in Bookie.shutdown
and BookKeeperClusterTestCase.tearDown.

Author: cguttapalem <cguttapalem@salesforce.com>

Reviewers: Sijie Guo <sijie@apache.org>

This closes #1050 from reddycharan/logexception

3 weeks agoISSUE #1014: LedgerManager.asyncProcessLedgers bug fixes
cguttapalem [Thu, 25 Jan 2018 05:56:26 +0000 (21:56 -0800)] 
ISSUE #1014: LedgerManager.asyncProcessLedgers bug fixes

Descriptions of the changes in this PR:

- fix for Bug 2 of 1014. Fixing race condition with node removal in 'asyncProcessLedgers'
 and making it robust to concurrent modifications like deletions of ledgers.
- fix for Bug 1 of 1014, is already made as part of Issue #978 (decouple metaformat cmd)
 feature.
- testcases to validate the fixes.

Master Issue: #1014

Author: cguttapalem <cguttapalem@salesforce.com>

Reviewers: Sijie Guo <sijie@apache.org>

This closes #1048 from reddycharan/asyncprocessfix, closes #1014

3 weeks agoMark BP-20/BP-25 as adopted
Sijie Guo [Thu, 25 Jan 2018 05:53:56 +0000 (21:53 -0800)] 
Mark BP-20/BP-25 as adopted

Descriptions of the changes in this PR:

BP-20 is adopted in #760  #761
BP-25 is adopted in #1007 #1008

This closes #760 #761 #1007 #1008

Author: Sijie Guo <sijie@apache.org>

Reviewers: Enrico Olivelli <eolivelli@gmail.com>, Jia Zhai <None>

This closes #1047 from sijie/close_bp_25

3 weeks agoISSUE #1007: move checksum to proto
Arvin [Wed, 24 Jan 2018 19:05:00 +0000 (11:05 -0800)] 
ISSUE #1007: move checksum to proto

Descriptions of the changes in this PR:

Refactor checksum to proto
Master Issue: #<1007>

Author: Arvin <arvindevel@gmail.com>

Reviewers: Enrico Olivelli <eolivelli@gmail.com>, Sijie Guo <sijie@apache.org>, Venkateswararao Jujjuri (JV) <None>

This closes #1018 from ArvinDevel/issue1007, closes #1007

3 weeks agoBP-25: MovingChecksumToProto--Refactor the checksum part of bookkeeper
Arvin [Wed, 24 Jan 2018 19:03:34 +0000 (11:03 -0800)] 
BP-25: MovingChecksumToProto--Refactor the checksum part of bookkeeper

Descriptions of the changes in this PR:

Current the checksum implementation is in client module while the checksum semantic is more close to protocol. Moreover, moving the checksum implementation to protocol will avoid server module's dependency to client module when doing checksum in server side.

Master Issue: #1007

Author: Arvin <arvindevel@gmail.com>

Reviewers: Enrico Olivelli <eolivelli@gmail.com>, Sijie Guo <sijie@apache.org>, Venkateswararao Jujjuri <vjujjuri@salesforce.com>

This closes #1008 from ArvinDevel/BP_25_MovingChecksumToProto

3 weeks agoTest compat with useHostNameAsBookieID
Ivan Kelly [Wed, 24 Jan 2018 18:56:42 +0000 (10:56 -0800)] 
Test compat with useHostNameAsBookieID

Test that old client can continue to work with servers which are using their
hostname as their bookie id.

This replaces TestBackwardCompat#testCompatWrites and TestBackwardCompat#testCompatReads
from the old BC tests.

Master Issue: #903

Author: Ivan Kelly <ivank@apache.org>

Reviewers: Sijie Guo <sijie@apache.org>

This closes #1033 from ivankelly/bc-hostname

3 weeks agoBookKeeperClusterTestCase,UpdateLedgerOpTest: remove call to setAllow…
Samuel Just [Wed, 24 Jan 2018 18:55:42 +0000 (10:55 -0800)] 
BookKeeperClusterTestCase,UpdateLedgerOpTest: remove call to setAllow…

(bug W-2962634)
Signed-off-by: Andrey Yegorov <ayegorovsalesforce.com>
[Ported to master]
Signed-off-by: Samuel Just <sjustsalesforce.com>
Author: Samuel Just <sjust@salesforce.com>

Reviewers: Enrico Olivelli <eolivelli@gmail.com>, Sijie Guo <sijie@apache.org>

This closes #1037 from athanatos/forupstream/tests/setallowloopback

3 weeks agoAuditorLedgerCheckerTest: wait for ro transition to make more reliable
Andrey Yegorov [Wed, 24 Jan 2018 18:54:55 +0000 (10:54 -0800)] 
AuditorLedgerCheckerTest: wait for ro transition to make more reliable

(bug W-2999244)
Signed-off-by: Andrey Yegorov <ayegorovsalesforce.com>
[Reworked for master]
Signed-off-by: Samuel Just <sjustsalesforce.com>
Author: Andrey Yegorov <ayegorov@salesforce.com>

Reviewers: Enrico Olivelli <eolivelli@gmail.com>, Sijie Guo <sijie@apache.org>

This closes #1038 from athanatos/forupstream/tests/bookietransition

3 weeks agoISSUE #1039: BKClient tests with BookieErrors
Charan Reddy Guttapalem [Wed, 24 Jan 2018 18:54:08 +0000 (10:54 -0800)] 
ISSUE #1039: BKClient tests with BookieErrors

Descriptions of the changes in this PR:

- end-to-end tests for validating BKClient readEntry
calls incase of combination of bookie timeouts and
data corruption

Master Issue: #1039

Author: Charan Reddy Guttapalem <cguttapalem@salesforce.com>
Author: cguttapalem <cguttapalem@salesforce.com>

Reviewers: Sijie Guo <sijie@apache.org>

This closes #1040 from reddycharan/bookkeeperclienttests, closes #1039

3 weeks agoCompactionTest: call storage.shutdown() prior to recreating
Andrey Yegorov [Wed, 24 Jan 2018 18:51:47 +0000 (10:51 -0800)] 
CompactionTest: call storage.shutdown() prior to recreating

(bug W-2962634)
Signed-off-by: Andrey Yegorov <ayegorovsalesforce.com>
[Ported to master]
Signed-off-by: Samuel Just <sjustsalesforce.com>
Author: Andrey Yegorov <ayegorov@salesforce.com>

Reviewers: Enrico Olivelli <eolivelli@gmail.com>, Sijie Guo <sijie@apache.org>

This closes #1036 from athanatos/forupstream/tests/compaction

3 weeks agoISSUE #1041: Adding new testcases
cguttapalem [Wed, 24 Jan 2018 18:48:53 +0000 (10:48 -0800)] 
ISSUE #1041: Adding new testcases

Descriptions of the changes in this PR:

- New Testclass for ZeroBuffer
- New testcases for missing testcoverage in
SortedLedgerStorage, EntryMemTable and LedgerHandleAdv

Master Issue: #1041

Author: cguttapalem <cguttapalem@salesforce.com>
Author: Charan Reddy Guttapalem <cguttapalem@salesforce.com>

Reviewers: Sijie Guo <sijie@apache.org>

This closes #1042 from reddycharan/missingtestcases, closes #1041

3 weeks agoAuditorPeriodicCheckTest: add test for entries with failed bookie writes
Samuel Just [Wed, 24 Jan 2018 18:43:11 +0000 (10:43 -0800)] 
AuditorPeriodicCheckTest: add test for entries with failed bookie writes

Validate that the auditor's periodic check will detect entries
with failed bookie writes and repair them.

Signed-off-by: Rithin <rithin.shettysalesforce.com>
(bug W-3311952)(bug W-3311965)
Signed-off-by: Samuel Just <sjustsalesforce.com>
Author: Samuel Just <sjust@salesforce.com>

Reviewers: Enrico Olivelli <eolivelli@gmail.com>, Sijie Guo <sijie@apache.org>

This closes #1044 from athanatos/forupstream/tests/failedwrites

3 weeks agoMore testcases for LedgerHandle
Charan Reddy Guttapalem [Wed, 24 Jan 2018 18:41:57 +0000 (10:41 -0800)] 
More testcases for LedgerHandle

Descriptions of the changes in this PR:

- New testcases for missing testcoverage in
LedgerHandle and ReadOnlyLedgerHandle

Author: Charan Reddy Guttapalem <cguttapalem@cguttapale-ltm1.internal.salesforce.com>

Reviewers: Enrico Olivelli <eolivelli@gmail.com>

This closes #1045 from reddycharan/ledgerhandlemissingtests