docker-minecraft-bedrock-server
docker-minecraft-bedrock-server copied to clipboard
Failed to open curl lib from binary, use libcurl.so instead
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...)
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.
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
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.
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.
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)
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)
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 ?
apt remove libcurl4
apt install libcurl4=3.7
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?
1.17.41.01 and the latest 1.18 versions
That sounds like bedrock versions. I'm meant what's your host's Linux kernel version? Output of uname -a will provide that.
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.
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
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.
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.propertiesby accident)
That works for me, thx