Skip to content
Advertisement

Rocksdb undefined symbol: ZSTD_versionNumber Cpython

JavaScript

I am using python 3.6, and RocksDB is installed in the container by following command:

JavaScript

It looks like a version issue for me. Not sure how to resolve it. Tried add rocksdb and python-rocksdb to the requirement file. But not work either. The service was working before. However, the last working docker container was built a year ago. Many error raise when I try to re build this time. Appreciate for any help!

Advertisement

Answer

Don’t use the latest version of anything for automated builds, pin the version to the most recent, tested, working version. It looks like this project uses tags to denote release versions. You’ll need to figure out the date of the last build, go to the repository, find the tag immediately preceding the date of the last working build and check it out before running make.

RUN git clone https://github.com/facebook/rocksdb.git /tmp/rocksdb
WORKDIR /tmp/rocksdb
RUN git checkout tags/<tag_name>
RUN make shared_lib INSTALL_PATH=/usr && make install && rm -rf /tmp/rocksdb

Replace <tag_name> with the name of the appropriate tag. For example, say you want to install version 6.1.1.

RUN git checkout tags/v6.1.1

You may need to try a couple tags from around that time because the last working build actually installed the latest commit on the master branch. Once you have a successful build you can begin the process of testing new versions of rocksdb to find the newest version that works with your app.

Another thing: While you’re at it, pin the version of your docker image. For instance: don’t use debian:latest, use debian:9.13.

User contributions licensed under: CC BY-SA
7 People found this is helpful
Advertisement