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
--- 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