You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bookkeeper.apache.org by si...@apache.org on 2017/10/05 07:22:47 UTC

[bookkeeper] branch master updated: ISSUE #540: BookieServer failed to start because lifecycle component name is not provided

This is an automated email from the ASF dual-hosted git repository.

sijie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/bookkeeper.git


The following commit(s) were added to refs/heads/master by this push:
     new 9694fd2  ISSUE #540: BookieServer failed to start because lifecycle component name is not provided
9694fd2 is described below

commit 9694fd263a3ee5e03740f99ca21e99918262f395
Author: Sijie Guo <si...@apache.org>
AuthorDate: Thu Oct 5 00:22:40 2017 -0700

    ISSUE #540: BookieServer failed to start because lifecycle component name is not provided
    
    Descriptions of the changes in this PR:
    
    - add component name `bookie-server`
    - remove the catch block
    - fix the prometheus stats provider package name in configuration files.
    
    Author: Sijie Guo <si...@apache.org>
    
    Reviewers: Jia Zhai <None>
    
    This closes #541 from sijie/fix_lifecycle_stack, closes #540
---
 .../common/component/LifecycleComponentStack.java  |  2 +-
 bookkeeper-server/conf/bk_server.conf              |  2 +-
 .../java/org/apache/bookkeeper/server/Main.java    | 56 ++++++++++------------
 deploy/kubernetes/gke/bookkeeper.yaml              |  2 +-
 site/docs/latest/admin/metrics.md                  |  2 +-
 5 files changed, 29 insertions(+), 35 deletions(-)

diff --git a/bookkeeper-common/src/main/java/org/apache/bookkeeper/common/component/LifecycleComponentStack.java b/bookkeeper-common/src/main/java/org/apache/bookkeeper/common/component/LifecycleComponentStack.java
index fa6f529..2dcd271 100644
--- a/bookkeeper-common/src/main/java/org/apache/bookkeeper/common/component/LifecycleComponentStack.java
+++ b/bookkeeper-common/src/main/java/org/apache/bookkeeper/common/component/LifecycleComponentStack.java
@@ -59,7 +59,7 @@ public class LifecycleComponentStack implements LifecycleComponent {
 
         public LifecycleComponentStack build() {
             checkNotNull(name, "Lifecycle component stack name is not provided");
-            checkArgument(!components.isEmpty(), "Lifecycle component stack is empty");
+            checkArgument(!components.isEmpty(), "Lifecycle component stack is empty : " + components);
             return new LifecycleComponentStack(
                 name,
                 ImmutableList.copyOf(components));
diff --git a/bookkeeper-server/conf/bk_server.conf b/bookkeeper-server/conf/bk_server.conf
index 0a290d7..bf6e5c8 100755
--- a/bookkeeper-server/conf/bk_server.conf
+++ b/bookkeeper-server/conf/bk_server.conf
@@ -470,7 +470,7 @@ ledgerManagerFactoryClass=org.apache.bookkeeper.meta.HierarchicalLedgerManagerFa
 # enableStatistics=true
 
 # Stats Provider Class (if statistics are enabled)
-statsProviderClass=org.apache.bookkeeper.stats.PrometheusMetricsProvider
+# statsProviderClass=org.apache.bookkeeper.stats.prometheus.PrometheusMetricsProvider
 
 #############################################################################
 ## Read-only mode support
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/server/Main.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/server/Main.java
index ebf1680..f3c8247 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/server/Main.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/server/Main.java
@@ -268,45 +268,39 @@ public class Main {
      * @return lifecycle stack
      */
     private static LifecycleComponent buildBookieServer(BookieConfiguration conf) throws Exception {
-        LifecycleComponentStack.Builder serverBuilder = LifecycleComponentStack.newBuilder();
+        LifecycleComponentStack.Builder serverBuilder = LifecycleComponentStack.newBuilder().withName("bookie-server");
 
-        try {
-            // 1. build stats provider
-            StatsProviderService statsProviderService =
-                new StatsProviderService(conf);
-            StatsLogger rootStatsLogger = statsProviderService.getStatsProvider().getStatsLogger("");
+        // 1. build stats provider
+        StatsProviderService statsProviderService =
+            new StatsProviderService(conf);
+        StatsLogger rootStatsLogger = statsProviderService.getStatsProvider().getStatsLogger("");
 
-            serverBuilder.addComponent(statsProviderService);
+        serverBuilder.addComponent(statsProviderService);
 
-            // 2. build bookie server
-            BookieService bookieService =
-                new BookieService(conf, rootStatsLogger);
+        // 2. build bookie server
+        BookieService bookieService =
+            new BookieService(conf, rootStatsLogger);
 
-            serverBuilder.addComponent(bookieService);
+        serverBuilder.addComponent(bookieService);
 
-            // 3. build auto recovery
-            if (conf.getServerConf().isAutoRecoveryDaemonEnabled()) {
-                AutoRecoveryService autoRecoveryService =
-                    new AutoRecoveryService(conf, rootStatsLogger.scope(REPLICATION_SCOPE));
+        // 3. build auto recovery
+        if (conf.getServerConf().isAutoRecoveryDaemonEnabled()) {
+            AutoRecoveryService autoRecoveryService =
+                new AutoRecoveryService(conf, rootStatsLogger.scope(REPLICATION_SCOPE));
 
-                serverBuilder.addComponent(autoRecoveryService);
-            }
+            serverBuilder.addComponent(autoRecoveryService);
+        }
 
-            // 4. build http service
-            if (conf.getServerConf().isHttpServerEnabled()) {
-                BKServiceProvider provider = new BKServiceProvider.Builder()
-                    .setBookieServer(bookieService.getServer())
-                    .setServerConfiguration(conf.getServerConf())
-                    .build();
-                HttpService httpService =
-                    new HttpService(provider, conf, rootStatsLogger);
+        // 4. build http service
+        if (conf.getServerConf().isHttpServerEnabled()) {
+            BKServiceProvider provider = new BKServiceProvider.Builder()
+                .setBookieServer(bookieService.getServer())
+                .setServerConfiguration(conf.getServerConf())
+                .build();
+            HttpService httpService =
+                new HttpService(provider, conf, rootStatsLogger);
 
-                serverBuilder.addComponent(httpService);
-            }
-        } catch (Exception e) {
-            LifecycleComponent component = serverBuilder.build();
-            component.close();
-            throw e;
+            serverBuilder.addComponent(httpService);
         }
 
         return serverBuilder.build();
diff --git a/deploy/kubernetes/gke/bookkeeper.yaml b/deploy/kubernetes/gke/bookkeeper.yaml
index 4f36266..5876294 100644
--- a/deploy/kubernetes/gke/bookkeeper.yaml
+++ b/deploy/kubernetes/gke/bookkeeper.yaml
@@ -33,7 +33,7 @@ data:
     # the default manager is flat, which is not good for supporting large number of ledgers
     BK_ledgerManagerType: "hierarchical"
     # TODO: Issue 458: https://github.com/apache/bookkeeper/issues/458
-    #BK_statsProviderClass: org.apache.bookkeeper.stats.PrometheusMetricsProvider
+    #BK_statsProviderClass: org.apache.bookkeeper.stats.prometheus.PrometheusMetricsProvider
 ---
 
 ## BookKeeper servers need to access the local disks and the pods
diff --git a/site/docs/latest/admin/metrics.md b/site/docs/latest/admin/metrics.md
index 635135f..142df3d 100644
--- a/site/docs/latest/admin/metrics.md
+++ b/site/docs/latest/admin/metrics.md
@@ -13,7 +13,7 @@ BookKeeper has stats provider implementations for four five sinks:
 Provider | Provider class name
 :--------|:-------------------
 [Codahale Metrics](https://mvnrepository.com/artifact/org.apache.bookkeeper.stats/codahale-metrics-provider) | `org.apache.bookkeeper.stats.CodahaleMetricsProvider`
-[Prometheus](https://prometheus.io/) | `org.apache.bookkeeper.stats.PrometheusMetricsProvider`
+[Prometheus](https://prometheus.io/) | `org.apache.bookkeeper.stats.prometheus.PrometheusMetricsProvider`
 [Finagle](https://twitter.github.io/finagle/guide/Metrics.html) | `org.apache.bookkeeper.stats.FinagleStatsProvider`
 [Ostrich](https://github.com/twitter/ostrich) | `org.apache.bookkeeper.stats.OstrichProvider`
 [Twitter Science Provider](https://mvnrepository.com/artifact/org.apache.bookkeeper.stats/twitter-science-provider) | `org.apache.bookkeeper.stats.TwitterStatsProvider`

-- 
To stop receiving notification emails like this one, please contact
['"commits@bookkeeper.apache.org" <co...@bookkeeper.apache.org>'].