hgmo: upgrade ZooKeeper to 3.4.11 (bug 1434339) draft
authorGregory Szorc <gps@mozilla.com>
Fri, 02 Feb 2018 09:56:24 -0800
changeset 12091 849e4f5277e76781c44206b3445242bb8389d13e
parent 12090 54f416efcfeb7ea05afc50917018aeb9d471bc1d
push id1878
push userbmo:gps@mozilla.com
push dateFri, 02 Feb 2018 17:56:32 +0000
bugs1434339
hgmo: upgrade ZooKeeper to 3.4.11 (bug 1434339) We're currently running ZooKeeper 3.4.6. Let's upgrade to the latest release in the 3.4 release so we have various bug fixes, etc. Since we've had to duplicate ZooKeeper's process spawning mechanism in a few places, we had to update various referenced jar paths to use newer versions. The wire protocol shouldn't have changed with this release. So when we deploy, we should bounce the ZooKeeper processes one at a time on all the servers to pick up the new version. MozReview-Commit-ID: OI6F2Wp0zX
ansible/roles/docker-hg-ssh/files/supervisor-docker.conf
ansible/roles/docker-hg-web/files/supervisor-docker-kafkabroker.conf
ansible/roles/kafka-broker/files/zookeeper.service
ansible/roles/kafka-broker/tasks/main.yml
--- a/ansible/roles/docker-hg-ssh/files/supervisor-docker.conf
+++ b/ansible/roles/docker-hg-ssh/files/supervisor-docker.conf
@@ -16,17 +16,17 @@ redirect_stderr = true
 
 [program:kafka]
 command = /start-kafka
 autorestart = true
 redirect_stderr = true
 user = zookeeper
 
 [program:zookeeper]
-command = java -Xmx1G -Xms1G -cp /opt/zookeeper/lib/slf4j-log4j12-1.6.1.jar:/opt/zookeeper/lib/slf4j-api-1.6.1.jar:/opt/zookeeper/lib/netty-3.7.0.Final.jar:/opt/zookeeper/lib/log4j-1.2.16.jar:/opt/zookeeper/lib/jline-0.9.94.jar:/opt/zookeeper/zookeeper-3.4.6.jar:/etc/zookeeper: -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=false org.apache.zookeeper.server.quorum.QuorumPeerMain /etc/zookeeper/zoo.cfg
+command = java -Xmx1G -Xms1G -cp /opt/zookeeper/lib/slf4j-log4j12-1.6.1.jar:/opt/zookeeper/lib/slf4j-api-1.6.1.jar:/opt/zookeeper/lib/netty-3.10.5.Final.jar:/opt/zookeeper/lib/log4j-1.2.16.jar:/opt/zookeeper/lib/jline-0.9.94.jar:/opt/zookeeper/zookeeper-3.4.11.jar:/etc/zookeeper: -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=false org.apache.zookeeper.server.quorum.QuorumPeerMain /etc/zookeeper/zoo.cfg
 autorestart = true
 redirect_stderr = true
 user = zookeeper
 
 [program:pushdataaggregator]
 command=/var/hg/venv_tools/bin/vcsreplicator-aggregator /etc/mercurial/pushdataaggregator.ini
 autorestart = true
 redirect_stderr = true
--- a/ansible/roles/docker-hg-web/files/supervisor-docker-kafkabroker.conf
+++ b/ansible/roles/docker-hg-web/files/supervisor-docker-kafkabroker.conf
@@ -1,11 +1,11 @@
 [program:kafka]
 command = /start-kafka
 autorestart = true
 redirect_stderr = true
 user = zookeeper
 
 [program:zookeeper]
-command = java -Xmx1G -Xms1G -cp /opt/zookeeper/lib/slf4j-log4j12-1.6.1.jar:/opt/zookeeper/lib/slf4j-api-1.6.1.jar:/opt/zookeeper/lib/netty-3.7.0.Final.jar:/opt/zookeeper/lib/log4j-1.2.16.jar:/opt/zookeeper/lib/jline-0.9.94.jar:/opt/zookeeper/zookeeper-3.4.6.jar:/etc/zookeeper: -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=false org.apache.zookeeper.server.quorum.QuorumPeerMain /etc/zookeeper/zoo.cfg
+command = java -Xmx1G -Xms1G -cp /opt/zookeeper/lib/slf4j-log4j12-1.6.1.jar:/opt/zookeeper/lib/slf4j-api-1.6.1.jar:/opt/zookeeper/lib/netty-3.10.5.Final.jar:/opt/zookeeper/lib/log4j-1.2.16.jar:/opt/zookeeper/lib/jline-0.9.94.jar:/opt/zookeeper/zookeeper-3.4.11.jar:/etc/zookeeper: -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=false org.apache.zookeeper.server.quorum.QuorumPeerMain /etc/zookeeper/zoo.cfg
 autorestart = true
 redirect_stderr = true
 user = zookeeper
--- a/ansible/roles/kafka-broker/files/zookeeper.service
+++ b/ansible/roles/kafka-broker/files/zookeeper.service
@@ -3,14 +3,14 @@ Description=Zookeeper server
 After=network.target remote-fs.target nss-lookup.target
 
 [Service]
 WorkingDirectory=/
 User=zookeeper
 Group=zookeeper
 PrivateTmp=true
 
-ExecStart=/usr/bin/java -Xmx1G -Xms1G -cp /opt/zookeeper/lib/slf4j-log4j12-1.6.1.jar:/opt/zookeeper/lib/slf4j-api-1.6.1.jar:/opt/zookeeper/lib/netty-3.7.0.Final.jar:/opt/zookeeper/lib/log4j-1.2.16.jar:/opt/zookeeper/lib/jline-0.9.94.jar:/opt/zookeeper/zookeeper-3.4.6.jar:/etc/zookeeper: -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=false org.apache.zookeeper.server.quorum.QuorumPeerMain /etc/zookeeper/zoo.cfg
+ExecStart=/usr/bin/java -Xmx1G -Xms1G -cp /opt/zookeeper/lib/slf4j-log4j12-1.6.1.jar:/opt/zookeeper/lib/slf4j-api-1.6.1.jar:/opt/zookeeper/lib/netty-3.10.5.Final.jar:/opt/zookeeper/lib/log4j-1.2.16.jar:/opt/zookeeper/lib/jline-0.9.94.jar:/opt/zookeeper/zookeeper-3.4.11.jar:/etc/zookeeper: -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=false org.apache.zookeeper.server.quorum.QuorumPeerMain /etc/zookeeper/zoo.cfg
 Restart=always
 TimeoutStopSec=60
 
 [Install]
 WantedBy=multi-user.target
--- a/ansible/roles/kafka-broker/tasks/main.yml
+++ b/ansible/roles/kafka-broker/tasks/main.yml
@@ -9,28 +9,28 @@
     - java-1.8.0-openjdk-headless
     - tar
 
 - name: download ZooKeeper and Kafka
   get_url: url=https://s3-us-west-2.amazonaws.com/moz-packages/{{ item.path }}
            dest=/var/tmp/{{ item.path }}
            sha256sum={{ item.sha256 }}
   with_items:
-    - { path: zookeeper-3.4.6.tar.gz, sha256: 01b3938547cd620dc4c93efe07c0360411f4a66962a70500b163b59014046994 }
+    - { path: zookeeper-3.4.11.tar.gz, sha256: f6bd68a1c8f7c13ea4c2c99f13082d0d71ac464ffaf3bf7a365879ab6ad10e84 }
     - { path: kafka_2.10-0.8.2.2.tgz, sha256: 3ba1967ee88c7f364964c8a8fdf6f5075dcf7572f8c9eb74f0285b308363ecab }
 
 - name: uncompress ZooKeeper and Kafka
   unarchive: src=/var/tmp/{{ item.src }}
              dest=/opt
              copy=no
              creates={{ item.creates }}
              owner=root
              group=root
   with_items:
-    - { src: zookeeper-3.4.6.tar.gz, creates: zookeeper-3.4.6 }
+    - { src: zookeeper-3.4.11.tar.gz, creates: zookeeper-3.4.11 }
     - { src: kafka_2.10-0.8.2.2.tgz, creates: kafka_2.10-0.8.2.2 }
 
 - user: name=zookeeper
         uid=2321
         shell=/bin/bash
         createhome=no
         home=/var/run/zookeeper
   when: "{{ inventory_hostname not in ignore_zookeeper_user | default([]) }}"
@@ -58,17 +58,17 @@
     - /var/log/zookeeper
 
 - name: create Kafka symlink
   file: src=/opt/kafka_2.10-0.8.2.2
         path=/opt/kafka
         state=link
 
 - name: create ZooKeeper symlink
-  file: src=/opt/zookeeper-3.4.6
+  file: src=/opt/zookeeper-3.4.11
         path=/opt/zookeeper
         state=link
 
 - name: install ZooKeeper config
   template: src=zoo.cfg.j2
             dest=/etc/zookeeper/zoo.cfg
             owner=root
             group=root