New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
InventoryList 'main' is currently in use and cannot be deleted or resized. #13785
Comments
Here's the GDB output: |
I guess you also need the binary: |
The resize locks were introduced due to various invalid memory writes that happened previously and were mostly left unnoticed (#13358 for example). This error is very likely caused by a mod, although it is strange that Minetest terminates instead of gracefully handling the exception (which would give you a Lua backtrace). About your files: How did you compress them? They're either damaged or not supported by xz version 5.2.5 that I've got.
Would you please be so nice to either:
|
Okay, this should work hopefully:
We use development branch of our game - Exile |
xz (XZ Utils) 5.2.8 Some file sharing sites recompress files and damage them. |
Instead of trying to transfer us the coredump and binary you can also just start minetest with the |
Ok, will do. |
Attached is the backtrace, copy/pasted out of gdb: I think this is unrelated to our freezing bug, which is happening in an object or entity's on_step. |
Quick guess: does the callback being called ( |
The bones pile's on_metadata_inventory_take function does attempt to remove the node if the "main" inventory is empty. This is basically an old ~2019-2020 version of the bones mod, but it's worked fine until yesterday. Does JIT cover up this problem somehow? |
In this case it's merely due to changes in the engine (0fb6dba) that added these extra checks. |
Yeah I don't know if the bones thing should be called a bug on our end or not, but MT definitely shouldn't just crash without even an error message like this. |
The bug happened again when I tried to log into a busy server with severe lags (4 players, no luajit). |
I think that was a coincidence, and that another player was digging a bones pile at the time. |
Another one? Looks different than the first. "Sneachan" a mob. We're logging on_step functions because it appeared to us the server freezed while doing on_step for entities. As you can see the last thing the server prints before crashing is the on_step function. The problem is we don't print end of the on_step function so it is not clear if the crash is related to on_step.
|
That backtrace matches the yet unsolved bug #11805. |
same issue, player digging bones and same error on debugger 2023-10-22 02:44:02: ACTION[Server]: Casstiel_ takes default:diamond 2 from bones at (-38,-1789,-34) |
Yeah the bones mod has to be modified to not destroy the node until the inventory operation is finished. Or just stick to using 5.7.0 for the time being and wait to see how this bug gets dealt with. |
If I could get 5.7.0 to compile I would do so but that's another story. Thanks! |
Reopening, according to #13894 (review). (cc @gorop)
|
If I understand the problem correctly, even though the mod in question won't crash anymore after #13894, it will still error. That's what I meant with "doesn't fully resolve the issue". If that's intended/expected, I think this issue can be closed. |
Yeah, is the mod supposed to break? Am I recoding our bones mod? Or is the regression part of this still open? |
Well, a very widely used mod (bones) still triggers a mod error: |
Minetest version
Operating system and version
Debian GNU/Linux 12 (bookworm) x86_64
CPU model
AMD EPYC (with IBPB) (2) @ 3.493GHz
Summary
Our server was experiencing weird freezes so we used debug mode this time and got this instead:
Not really a C++ guru, but in inventory.cpp there's this:
ResizeLocked resizeLock()
bumps the thing by 1 and operator() from ResizeUnlocker removes 1.I guess this can get pretty ugly if it misses 0?
Steps to reproduce
The weird (and possibly unrelated?) freezes are random but reproducible.
For now it's the first time we see this bug.
The text was updated successfully, but these errors were encountered: