Jenkins: Maven release plugin giving "undefined symbol: apr_crypto_block_cleanup" when trying to dry run using SVN
Asked Answered
H

2

8

We're using Jenkins 2.138.1 on Amazon Linux. We're trying to use the Maven Release plugin to build from our SVN repository. Although we can build snapshots fine, when we attempt to do a dry run of the Maven release plugin using the goals

-Dresume=false -DdryRun=true release:prepare 

we run into this error

Waiting for Jenkins to finish collecting data[ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.5.3:prepare (default-cli) on project springboard: Unable to check for local modifications
[ERROR] Provider message:
[ERROR] The svn command failed.
[ERROR] Command output:
[ERROR] svn: /opt/bitnami/common/lib/libsasl2.so.2: no version information available (required by /usr/lib/x86_64-linux-gnu/libsvn_ra_svn-1.so.1)
[ERROR] svn: /opt/bitnami/common/lib/libssl.so.1.0.0: no version information available (required by /usr/lib/x86_64-linux-gnu/libserf-1.so.1)
[ERROR] svn: /opt/bitnami/common/lib/libcrypto.so.1.0.0: no version information available (required by /usr/lib/x86_64-linux-gnu/libserf-1.so.1)
[ERROR] svn: symbol lookup error: /usr/lib/x86_64-linux-gnu/libsvn_subr-1.so.1: undefined symbol: apr_crypto_block_cleanup
[ERROR] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.5.3:prepare (default-cli) on project springboard: Unable to check for local modifications
Provider message:
The svn command failed.
Command output:
svn: /opt/bitnami/common/lib/libsasl2.so.2: no version information available (required by /usr/lib/x86_64-linux-gnu/libsvn_ra_svn-1.so.1)
svn: /opt/bitnami/common/lib/libssl.so.1.0.0: no version information available (required by /usr/lib/x86_64-linux-gnu/libserf-1.so.1)
svn: /opt/bitnami/common/lib/libcrypto.so.1.0.0: no version information available (required by /usr/lib/x86_64-linux-gnu/libserf-1.so.1)
svn: symbol lookup error: /usr/lib/x86_64-linux-gnu/libsvn_subr-1.so.1: undefined symbol: apr_crypto_block_cleanup

Prior to this, we got "[ERROR] /bin/sh: 1: svn: not found" so we installed svn on the Linux machine using yum. Anyway, what can we do to overcome the problem above?

Henley answered 10/11, 2018 at 16:38 Comment(0)
B
0

So the issue is because you have multiple version of the same library, specifically the following

libsasl2.so.2
libssl.so.1.0.0
libcrypto.so.1.0.0

Do a locate libxml2.so.2 to confirm and remove the old versions and create a symbolic link using ln -s
Repeat for the others.

https://github.com/sitespeedio/sitespeed.io/issues/220
Talks about a similar issue

Hope it helps :)

Berndt answered 13/11, 2018 at 3:35 Comment(1)
If the issue is resolved...Please select the correct answer so that others who face similar issues will benefit..If not, please add the issues you are still facing.Berndt
M
0

You seem to have issue between 32bits and 64bits packages mixing.

The first libraries in messages are about 32 bits, and information about SVN are about 64 bits (x86_64).

First, you should check your architecture, either with:

uname -r

or, if available with:

arch

You may get something like:

i686

Then you can install the good version of subversion corresponding to your OS.

Using apt-get like specified in one of your comment (adapt architecture):

sudo apt-get install subversion:i686 

Or using yum, like specified in your original question (adapt architecture):

sudo yum install subversion.i686

Let me know if you need further help.

Manville answered 14/11, 2018 at 13:20 Comment(4)
@Henley I updated my answer with an example of 'supposedly better' instruction to install SVN/Subversion in x86 version.Dove
Hi, WIth the particular version of Linux we are running, we can't use yum, we have to use apt-get. Thanks for your help tho.Henley
OK. Did it solve your issue to reinstall svn with thee good architecture? For instance with sudo apt-get install subversion. I386 or i686Dove
@Henley I updated again my answer to fit your needs with apt-get (in your original question, you speak about yum). Let me know if it solves your issue. (N.B.: You may already know, but just in case, if you do not give the bounty during the grace period, it will be lost forever).Dove

© 2022 - 2024 — McMap. All rights reserved.