docker-minecraft-bedrock-server icon indicating copy to clipboard operation
docker-minecraft-bedrock-server copied to clipboard

Failed to open curl lib from binary, use libcurl.so instead

Open ZippyWonderdust opened this issue 4 years ago • 15 comments

On Ubuntu Server 20.04, the latest Docker image containing server version 1.16.221.01 crashes after a few minutes of game play with the following log dump:

[INFO] Package: com.mojang.minecraft.dedicatedserver Version: 1.16.221.01 OS: Linux Server start: 2021-05-01 14:42:52 UTC Dmp timestamp: 2021-05-01 14:43:54 UTC Upload Date: 2021-05-01 14:43:54 UTC Session ID: 60f31624-d998-4de2-946c-8e56f72ca000 Commit hash: 29f5ac44317033b48a154d0e9ac51db5ce2d6805 Build id: 5873168 CrashReporter Key: 7ef34716-637f-3b3d-98e2-ef5690af7286

Crash [INFO] at clone (UnknownFile:?) Failed to open curl lib from binary, use libcurl.so instead

Running the exact same server version (manually downloaded from https://www.minecraft.net/en-us/download/server/bedrock/) and installed on a different server running Ubuntu Server 20.04 but NO DOCKER, doesn't crash. According to https://bugs.mojang.com/browse/BDS-12695 perhaps you need to tweak the LD_LIBRARY_PATH setting in the Docker image?

See also https://bugs.mojang.com/browse/BDS-12751, although I think the ipv6 thing is a red herring.

(Judging by the mess that the last few Linux releases of the server software has been -- complier files included in the tarball, server executable not actually marked as executable -- I wouldn't be surprised if they've handed off the Linux port to some overworked unpaid intern in Hyderabad...)

ZippyWonderdust avatar May 01 '21 16:05 ZippyWonderdust

Nothing significant has changed in the image and the library path setting has been there since the beginning

https://github.com/itzg/docker-minecraft-bedrock-server/blob/3cf8c20ca4cfb40afa0d439c935d8a0d267a055c/bedrock-entry.sh#L128

As you said, Mojang has obviously been further neglecting the bedrock server on Linux. The image startup really doesn't do anything more than download the zip, adjust the config, and exec their binary.

I'm going to mark this as an upstream issue and we'll see if anybody finds a solution that I can include.

itzg avatar May 01 '21 16:05 itzg

I have fixed this issue on my three servers (running in Docker) by setting the ipv6 port to be the ipv4 number plus one, in server.properties

nielstt avatar Jun 09 '21 15:06 nielstt

My problems were that entering Nether disconnected every time, with the above error in the logs. It was solved by fresh installing the servers as new services and moving the worlds into them. Updating the to latest image in the existing services did not work. I moved whitelist.json, ops.json and world but nothing else from the volume.

osirisguitar avatar Jun 10 '21 17:06 osirisguitar

This problem happens to me with a whitelist required and does not have an xuid for the users on the whitelist. Once I added the xuid to the whitelist, the server stopped crashing.

CloudArtAdmins avatar Sep 26 '21 03:09 CloudArtAdmins

I'm not using this project, but I get the crash immediately when there's a port conflict (I run two servers on the same host). Fixed it by making the ports unique (after updating I overwrote server.properties by accident)

UlisseMini avatar Apr 20 '22 20:04 UlisseMini

I have encountered the same question, and I guess that the problem is due to the different version of libcurl. Firstly my version is 3.8 and Failed to open curl lib from binary, use libcurl.so instead occurs every time I ran my ./bedrock_server file. Then I removed the 3.8 version and installed specifically the 3.7 version and the server will run successfully.(But this may lead to other problems if you have other softwares requiring the 3.8 version)

Vigelos avatar Apr 22 '22 12:04 Vigelos

I have encountered the same question, and I guess that the problem is due to the different version of libcurl. Firstly my version is 3.8 and Failed to open curl lib from binary, use libcurl.so instead occurs every time I ran my ./bedrock_server file. Then I removed the 3.8 version and installed specifically the 3.7 version and the server will run successfully.(But this may lead to other problems if you have other softwares requiring the 3.8 version)

Can you provide us with the installation procedure for version 3.7 ?

djfab59 avatar Apr 25 '22 21:04 djfab59

apt remove libcurl4
apt install libcurl4=3.7

Vigelos avatar May 01 '22 12:05 Vigelos

Thanks! That's something I could add to the image build. I keep wondering to myself why it works without that change for most people. What is the version of your kernel?

itzg avatar May 01 '22 12:05 itzg

1.17.41.01 and the latest 1.18 versions

Vigelos avatar May 05 '22 07:05 Vigelos

That sounds like bedrock versions. I'm meant what's your host's Linux kernel version? Output of uname -a will provide that.

itzg avatar May 05 '22 11:05 itzg

My Linux version is Ubuntu20.04, but it seems that the version of libcurl4 may be different based on the installation time. The default version of libcurl4 in my ubuntu was 3.8, but some of my friends who installed also ubuntu20.04 earlier have a default version of 3.7, and they can deploy the Minecraft kernel without any modification.

Vigelos avatar May 05 '22 12:05 Vigelos

Now I'm confused. I thought you were changing libcurl within the container. The version on your host is not relevant.

Please provide output of uname -a

itzg avatar May 05 '22 13:05 itzg

I am sorry for not having made things clearly :( the result of uname -a

Linux 1695a559ac03 5.13.0-40-generic #45~20.04.1-Ubuntu SMP Mon Apr 4 09:38:31 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

I tried changing the version of libcurl4 within docker and solved this problem. And the same problems happened again when I directly run the bedrock_server downloaded from the Minecraft website outside the container, and this can be solved the same way.

Vigelos avatar May 06 '22 00:05 Vigelos

I'm not using this project, but I get the crash immediately when there's a port conflict (I run two servers on the same host). Fixed it by making the ports unique (after updating I overwrote server.properties by accident)

That works for me, thx

kudoxi avatar Jun 26 '22 10:06 kudoxi