puppet-zookeeper icon indicating copy to clipboard operation
puppet-zookeeper copied to clipboard

1.1.0 broke Debian 10

Open eLvErDe opened this issue 4 years ago • 3 comments

Hello,

After upgrading to latest version, zookeeper does not start anymore:

zookeeper[36392]: + CLASSPATH='/usr/lib/zookeeper/zookeeper.jar:/usr/lib/zookeeper/lib/*:'
zookeeper[36392]: + mkdir -p /var/log/zookeeper
zookeeper[36392]: + /usr/lib/jvm/default-java/bin/java -Dzookeeper.log.dir=/var/log/zookeeper -Dzookeeper.root.logger=INFO,ROLLINGFILE -cp '/usr/lib/zookeeper/zookeeper.jar:/usr/lib/zookeeper/lib/*:' org.apache.zookeeper.server.quorum.QuorumPeerMain /etc/zookeeper/conf/zoo.cfg
zookeeper[36392]: Error: Could not find or load main class org.apache.zookeeper.server.quorum.QuorumPeerMain
zookeeper[36392]: Caused by: java.lang.ClassNotFoundException: org.apache.zookeeper.server.quorum.QuorumPeerMain
systemd[1]: zookeeper.service: Main process exited, code=exited, status=1/FAILURE
systemd[1]: zookeeper.service: Failed with result 'exit-code'.
systemd[1]: zookeeper.service: Service RestartSec=100ms expired, scheduling restart.
systemd[1]: zookeeper.service: Scheduled restart job, restart counter is at 5.
systemd[1]: zookeeper.service: Start request repeated too quickly.
systemd[1]: zookeeper.service: Failed with result 'exit-code'.

Looks like being related to the classpath PR...

Regards

eLvErDe avatar May 04 '21 12:05 eLvErDe

Any chance to provide a reproducible code? Or full log output?

deric avatar Oct 08 '21 08:10 deric

Hello @deric

Not really but that should be easy to workaround, however you can check the following link: https://packages.debian.org/buster/all/libzookeeper-java/filelist

You can see .jar on Debian "regular" packages are installed to /usr/share/java/ which has been removed from classpath leading to the failure.

Regards, Adam.

eLvErDe avatar Oct 12 '21 06:10 eLvErDe

I'm not sure to which refactoring you're referring to. There was a change in CLASSPATH, a long time ago.

There's also #104 that hasn't been resolved.

zookeeperd even on Debian 11 ships with an init.d script:

$ dpkg-query -L zookeeperd
/.
/etc
/etc/default
/etc/default/zookeeper
/etc/init.d
/etc/init.d/zookeeper
/usr
/usr/share
/usr/share/doc
/usr/share/doc/zookeeperd
/usr/share/doc/zookeeperd/changelog.Debian.gz
/usr/share/doc/zookeeperd/copyright

This seems to work:

$ service zookeeper status
zookeeper.service - LSB: centralized coordination service
     Loaded: loaded (/etc/init.d/zookeeper; generated)
...

but it might be much cleaner to use directly systemd service file.

deric avatar Oct 12 '21 07:10 deric