Open L3P3 opened 3 years ago
Maybe an unsupported CPU feature? 🤔 Or a dynamically linkes native library that is too old/new?
I wonder what OS these binaries are built on/what they're linked against. @L3P3 what os/distro + version is inning on the netbook? What Atom is in it?
Hello, sorry for not replying earlier, missed the notification. The netbook is having first generation atom, 32 bits. As stated, I use debian bullseye. Since there is only a 64 bits binary, qemu-static is used as a wrapper by binfmt. So probably the actual cpu here is in qemu, no idea how it is called. Would still be nice to understand what is happening.
Do you have an idea what is happening, just by looking at the logs/behaviour?
Do you have an idea what is happening, just by looking at the logs/behaviour? No idea
32 bit; Since there is only a 64 bits binary, qemu-static is used as a wrapper by binfmt
So you're basically executing a x86_64 binary on x86? o.ô
Yes, in qemu's virtual 64 bit processor used by binfmt. Other apps run without problems usually in this way. But let us forcus on the issue here... Is there a more verbose settings for feather so we get a more detailled log or something?
To me, it looks like some deadlock. Something gets opened that is blocking other stuff to happen but it never gets closed.
You could set the log level to trace to get more detailed logs.
You can do that by changing the level
parameter under log
from debug
to trace
in the feather.toml
file.
You could also try to compile the project on your laptop and run it without qemu.
Looking at the shutdown
function
https://github.com/feather-rs/feather/blob/9539a21c9c0fbe681ec1e8851519280438dd583f/server/src/lib.rs#L120-L144
and the ChunkWorker
loop
https://github.com/feather-rs/feather/blob/9539a21c9c0fbe681ec1e8851519280438dd583f/server/chunk/src/chunk_worker.rs#L131-L147
comparing that to the log output I would suspect that the server hangs in line 46 of the save_chunks
function on shutdown
https://github.com/feather-rs/feather/blob/9539a21c9c0fbe681ec1e8851519280438dd583f/server/src/shutdown.rs#L33-L49
Though I am not sure why that happens.
Could you still do a run with log level trace so we can potentially get a better idea where it hangs when joining?
Sorry, was busy and had no time...
~/feather$ ./feather-server
Loading configuration
2021-01-14 17:41:59,236 INFO [feather_server::init] Loading world save
2021-01-14 17:41:59,431 INFO [feather_server_chunk::chunk_worker] Starting chunk worker
2021-01-14 17:41:59,476 INFO [feather_server::init] Queueing spawn chunks for loading
2021-01-14 17:41:59,542 INFO [feather_server::init] Creating RSA keypair
2021-01-14 17:42:02,188 INFO [feather_server::init] Initializing block ID mappings
2021-01-14 17:42:02,268 INFO [feather_server::init] Starting networking task
2021-01-14 17:42:02,302 TRACE [mio::poll] registering with poller
2021-01-14 17:42:02,308 INFO [feather_server::init] Listening on 0.0.0.0:25565
2021-01-14 17:42:02,394 INFO [feather_server] Server started
2021-01-14 17:42:02,474 DEBUG [feather_server_chunk::chunk_manager] Optimizing chunks
2021-01-14 17:42:02,477 DEBUG [feather_server_chunk::chunk_manager] Optimized 0 chunk sections (took 1ms - infms/section)
Then, I try to join: server.log
I am using the latest released binary on latest debian bullseye. I run the client on my big machine only. When I run the feather-server on localhost, it works. Now I run the same binary on my netbook, ancient low-powered Intel Atom. It starts very fast, as can be seen in the log below. When I join entering the netbook's IP, the client connects and it gets stuck on "Loading landscape...". After about one second after that screen is shown, both server's and client's cpus go idle (0%), nothing will happen, I waited many minutes. Much memory is left on that machine. I did not touch the generated config file. The server log so far looks like this:
When the client gets closed, there is nothing happening in the server log. When I restart the client, I can try to join again and the same thing happens as above. When I press CTRL+C in the server terminal, the client says "Connection closed" but the server gets stuck at:
When I press CTRL+C again, nothing happens, have to kill the process from process manager. To me, it looks like a lock-up.