Time |
Nick |
Message |
00:00 |
Pexin |
I started programming too late in life and now my brain is stale. I deeply wish I knew more about web security |
00:00 |
erlehmann |
oh i meant minetest not web servers lol |
00:00 |
Pexin |
I meant web servers >:] |
00:01 |
Pexin |
and I know nothing at all about the lua env |
00:02 |
erlehmann |
well it's not a particularly safe thing rn, to start with that |
00:03 |
erlehmann |
i still wonder what was up with that one anvil formspec i encountered on a server where some previous user named an item std::unique_ptr<ItemStack> |
00:03 |
erlehmann |
probably a troll |
00:05 |
erlehmann |
i should name a sword std::unique_ptr<ServerModManager> hehe |
00:22 |
|
Conrad joined #minetest |
00:33 |
MTDiscord |
<Jonathon> the most annoying thing about working with audio in minetest, is verifying if its your codes issue, or audio crapped out again and you need to restart minetest |
00:37 |
Pexin |
when I'm running MT and my display goes to sleep, sometimes when I come back I get a burst of, I guess queued sounds in pulse or something. but sometimes I have no sound at all, until I open pavucontrol then it suddenly comes back |
00:39 |
MTDiscord |
<Jonathon> windows is where i have issues, when using linux, not having many so far |
01:18 |
|
olliy joined #minetest |
01:32 |
|
___nick___ joined #minetest |
02:22 |
AliasAlreadyTake |
Yay, two new crashes :D |
02:22 |
AliasAlreadyTake |
One on the live server, one on the testserver |
02:26 |
AliasAlreadyTake |
This one again: minetestserver: /home/mtlive1/5.4.1/Minetest_live/src/inventorymanager.cpp:304: virtual void IMoveAction::apply(InventoryManager*, ServerActiveObject*, IGameDef*): Assertion `move_count <= count' failed. |
02:46 |
AliasAlreadyTake |
https://pastebin.com/NYw5eNBn |
03:40 |
|
fluxionary joined #minetest |
03:51 |
|
sec^nd joined #minetest |
03:57 |
|
hendursaga joined #minetest |
03:58 |
|
Guest71 joined #minetest |
03:59 |
|
Guest75 joined #minetest |
04:00 |
|
MTDiscord joined #minetest |
04:12 |
|
Sven_vB joined #minetest |
04:20 |
|
Guest79 joined #minetest |
04:21 |
|
Guest79 left #minetest |
04:30 |
|
u1 joined #minetest |
04:38 |
|
u1 left #minetest |
04:49 |
|
fluxionary joined #minetest |
05:01 |
|
riff-IRC joined #minetest |
05:26 |
|
TomTom joined #minetest |
06:04 |
|
CWz joined #minetest |
06:37 |
|
jason1234 joined #minetest |
06:37 |
jason1234 |
there is a a new game. alike minecraft |
06:37 |
jason1234 |
is that valeron ? |
06:37 |
jason1234 |
with housing and smoke and flying possibility actually gliding |
06:42 |
erlehmann |
veloren? |
07:05 |
|
independent_ joined #minetest |
07:13 |
|
independent_ joined #minetest |
07:16 |
|
specing joined #minetest |
07:20 |
|
independent_ joined #minetest |
07:24 |
MTDiscord |
<luatic> Line 239 - 249 are juicy |
07:26 |
AliasAlreadyTake |
You mean because of the python thingy? |
07:26 |
MTDiscord |
<luatic> No, not because of that |
07:27 |
MTDiscord |
<luatic> old_to_i = -1 sticks out in particular |
07:27 |
MTDiscord |
<luatic> Because an index should never be negative |
07:28 |
MTDiscord |
<luatic> I could see this being caused by a hacked client |
07:29 |
MTDiscord |
<luatic> IMoveAction parsing parses to_i = stoi(ts); as a signed integer |
07:31 |
AliasAlreadyTake |
inventorymanager.h:144: s16 to_i = -1; |
07:32 |
erlehmann |
luatic AliasAlreadyTake could there be a dupe opportunity here? |
07:32 |
erlehmann |
i'd love a new dupe |
07:32 |
MTDiscord |
<luatic> There could definitely be lots of opportunities here |
07:32 |
MTDiscord |
<luatic> First of all, I notice that the bounds check needs to be moved uo |
07:33 |
MTDiscord |
<luatic> up* |
07:33 |
erlehmann |
which one? |
07:34 |
AliasAlreadyTake |
I would not have the slightest clue ... if you wish to test stuff, I'll start the testserver |
07:36 |
MTDiscord |
<luatic> This is also interesting: src_can_take_count = 1433384998, dst_can_put_count = 32767 |
07:37 |
AliasAlreadyTake |
Or maybe std::unordered_map with 93825077154864 elements ? |
07:37 |
AliasAlreadyTake |
That's a whole lot isn't it? |
07:38 |
MTDiscord |
<luatic> Yeah that's indeed very odd |
07:38 |
MTDiscord |
<luatic> allow_swap = 244 - WHAT? allow_swap is a boolean |
07:39 |
MTDiscord |
<luatic> I don't trust these values |
07:40 |
AliasAlreadyTake |
Who knows where from those values are read :P |
07:41 |
erlehmann |
src_can_take_count = 1433384998 |
07:41 |
erlehmann |
lel |
07:41 |
MTDiscord |
<luatic> saliva production on the rise as hack client devs suspect a new dupe |
07:41 |
erlehmann |
AliasAlreadyTake could you compile the test server with ubsan or asan maybe? |
07:42 |
erlehmann |
it will become dog slow |
07:42 |
erlehmann |
but if this is the result of a buffer overflow or similar, you may be able to find it that way |
07:43 |
AliasAlreadyTake |
On the testserver I don't mind it being slow. I don't know how to compile it with those ... thingies? |
07:44 |
AliasAlreadyTake |
But since we do not have a 100% repro and the issue crops up only during whatever people do on the server, it might take a while until we get a reading |
07:44 |
AliasAlreadyTake |
If at all - my imagination is limited in contrast to the players' |
07:44 |
erlehmann |
try this: cmake '-DRUN_IN_PLACE=1' '-DCMAKE_CXX_FLAGS=-g -fsanitize=address -fno-omit-frame-pointer' && make && ./bin/minetest |
07:45 |
AliasAlreadyTake |
wilco |
07:45 |
erlehmann |
? |
07:45 |
erlehmann |
what does “wilco” mean |
07:45 |
erlehmann |
??? |
07:46 |
erlehmann |
AliasAlreadyTake if there is any memory fuckery going on, asan will give you exact information about this, even without a crash |
07:46 |
AliasAlreadyTake |
Means will comply. I don't know, what's the usual term for that? |
07:46 |
erlehmann |
since minetest is full of bugs that asan can detect, you can probably see 1 or 2 within startup |
07:47 |
erlehmann |
ah |
07:47 |
erlehmann |
if it *does not* start up, you might need to ignore some errors |
07:47 |
erlehmann |
let me look it up |
07:49 |
erlehmann |
AliasAlreadyTake, ok to be clear: it is possible that minetest will crash on startup with this option, send me the trace then so i can tell it to not do that |
07:52 |
AliasAlreadyTake |
Alright, it's building. Is there any way I can check all those options are considered? Like somewhere in CMakeCache? |
07:53 |
erlehmann |
you'll see it complaining about things within minutes if this works |
07:54 |
erlehmann |
i.e. minetest has enough bugs that asan can find |
07:54 |
AliasAlreadyTake |
Ok. I would start the server normally, without gdb? |
07:55 |
erlehmann |
yeah, but later you can do in gdb: break __asan_on_errorplt |
07:55 |
erlehmann |
i mean |
07:55 |
erlehmann |
you can start it under gdb for all i know |
07:55 |
erlehmann |
but it will not help |
07:55 |
erlehmann |
right now |
07:55 |
erlehmann |
if asan finds anything it will be good enough |
07:56 |
erlehmann |
and show up in the logs anyway |
07:57 |
erlehmann |
AliasAlreadyTake you can probably inspect the binary like this https://github.com/google/sanitizers/issues/1051#issuecomment-499372056 |
07:59 |
AliasAlreadyTake |
20% done. It's hellish slow compared to normal builds. Is that *normal* ? |
08:00 |
erlehmann |
you are building a debug build with an address sanitizer, it is literally instrumenting everything to check for memory related fuckups |
08:00 |
erlehmann |
it told you it is dog slow |
08:01 |
erlehmann |
it will run ok though |
08:01 |
erlehmann |
like playable |
08:01 |
erlehmann |
or so i hope lol |
08:03 |
erlehmann |
AliasAlreadyTake https://en.wikipedia.org/wiki/AddressSanitizer |
08:03 |
erlehmann |
AliasAlreadyTake the wikipedia article shows example output, pls go look at it |
08:04 |
AliasAlreadyTake |
I've seen this before, but can't remember much. I'm old :P My C++ times are way back and then some |
08:05 |
|
queria^clone joined #minetest |
08:06 |
|
hendursa1 joined #minetest |
08:22 |
|
Markow joined #minetest |
08:23 |
AliasAlreadyTake |
The testserver is up and running, I didn't see much difference to a normal start. Should I try what they did in the github comment to make sure? |
08:23 |
AliasAlreadyTake |
Or is there any other way to prove to myself it's compiled right? |
08:25 |
erlehmann |
mhhh |
08:26 |
erlehmann |
AliasAlreadyTake note the github comment is for ubsan, but yes, checking the symbols might help |
08:26 |
erlehmann |
AliasAlreadyTake maybe you can just tell me where to connect to |
08:27 |
AliasAlreadyTake |
address is your-land.de port 30001 |
08:30 |
erlehmann |
connecting rn |
08:34 |
|
independent_ joined #minetest |
08:39 |
erlehmann |
AliasAlreadyTake, sorry i had connected with an instrumented client myself that was dog slow lol |
08:39 |
erlehmann |
AliasAlreadyTake i will recompile |
08:39 |
erlehmann |
AliasAlreadyTake, then connect again |
08:39 |
erlehmann |
AliasAlreadyTake saw any funny output on stderr? |
08:39 |
|
independent_ joined #minetest |
08:40 |
|
DrFrankenstone_ joined #minetest |
08:40 |
AliasAlreadyTake |
No, nothing unusual. |
08:41 |
AliasAlreadyTake |
Maybe the way I start it doesn't capture stderr? "nohup $PATH_TO_EXECUTABLE >> $SERVICE_NAME.out 2>&1&" |
08:45 |
erlehmann |
uh |
08:50 |
erlehmann |
AliasAlreadyTake i think you should do this, but it most likely does not matter “2>&1&” → “2>&1 &” |
08:51 |
erlehmann |
$ unlink /tmp/log; nohup sh -c 'echo stderr >&2' >> /tmp/log 2>&1& ; sleep 1; cat /tmp/log |
08:51 |
erlehmann |
dash: 14: Syntax error: ";" unexpected |
08:52 |
erlehmann |
hmmm |
08:54 |
erlehmann |
$ unlink /tmp/log; : |nohup sh -c 'printf 1 >&1; printf 2 >&2;' >>/tmp/log 2>&1 |
08:54 |
erlehmann |
$ cat /tmp/log |
08:54 |
erlehmann |
12$ |
08:54 |
erlehmann |
seems to work |
08:57 |
|
valhalla joined #minetest |
08:58 |
|
independent_ joined #minetest |
09:02 |
|
independent_ joined #minetest |
09:03 |
erlehmann |
AliasAlreadyTake, easy way to check out if it compiled with asan, you should not be able to join a server unless you start minetest with 'ASAN_OPTIONS=alloc_dealloc_mismatch=0', bc it will crash on connecting |
09:05 |
AliasAlreadyTake |
Then I didn't do it right, because I'm on the server with a normal 5.5.50 client |
09:05 |
erlehmann |
no no |
09:05 |
erlehmann |
try compiling a *client* with that |
09:06 |
erlehmann |
it will not be able to join any server |
09:06 |
AliasAlreadyTake |
Oh. I thought I should have compiled the server with that :D |
09:06 |
erlehmann |
yes ofc |
09:06 |
erlehmann |
the server is probably alright |
09:06 |
AliasAlreadyTake |
But I don#t see any different in the logs? |
09:06 |
erlehmann |
AliasAlreadyTake, btw, bug: if i hit you with my sword but pvp is disabled, the sword still loses durability |
09:06 |
erlehmann |
AliasAlreadyTake, that means you have not encountered any memory bugs |
09:06 |
erlehmann |
it is a good thing tbh |
09:07 |
AliasAlreadyTake |
:D There's a /bug command where you can report such oddities ... you get an ingame mail about where the bug report goes to :P |
09:28 |
erlehmann |
AliasAlreadyTake, i just told you. so … got any asan errors? |
09:29 |
AliasAlreadyTake |
Yes, a couple. Will upload |
09:29 |
AliasAlreadyTake |
https://pastebin.com/GCBDV2t5 |
09:30 |
erlehmann |
heap-use-after-free → hey can we turn that into the new client-sent server side mods feature? |
09:30 |
erlehmann |
after all they disabled the old one |
09:34 |
|
TomTom joined #minetest |
09:34 |
erlehmann |
AliasAlreadyTake, if you know gdb i guess you can break on this and figure out how to exploit it right? |
09:35 |
AliasAlreadyTake |
Not really. My C++ is ages old, I got the gdb command from sfan5 |
09:35 |
erlehmann |
maybe sfan5 can figure out what happens there then |
09:36 |
AliasAlreadyTake |
The error I used to crash the server is not the one that crashes the live server |
09:36 |
erlehmann |
yes but this is a bug regardless |
09:37 |
erlehmann |
AliasAlreadyTake https://en.wikipedia.org/wiki/Dangling_pointer |
09:38 |
erlehmann |
> When a dangling pointer is used after it has been freed without allocating a new chunk of memory to it, this becomes known as a "use after free" vulnerability. |
09:41 |
AliasAlreadyTake |
Hm. It's worth a try, upon next live server crash I'll compile those in? |
09:49 |
erlehmann |
no idea how slow it will make the server |
09:49 |
erlehmann |
but ig you might find bugs that way |
09:49 |
|
Talkless joined #minetest |
09:52 |
AliasAlreadyTake |
Thanks :) The more I know, the more likely I will find stuff. But I guess without you guys I'm still lost on the one I am facing onj the liveserver |
10:16 |
|
calcul0n__ joined #minetest |
10:24 |
|
Flabb joined #minetest |
10:29 |
|
calcul0n joined #minetest |
10:43 |
|
Fixer joined #minetest |
11:01 |
|
Fixer joined #minetest |
11:09 |
|
independent56 joined #minetest |
11:57 |
|
appguru joined #minetest |
12:20 |
|
jvalleroy joined #minetest |
12:33 |
|
hendursaga joined #minetest |
12:43 |
MinetestBot |
[git] sfan5 -> minetest/minetest: Fix broken handling of NodemetaChanged packets b480a3e https://git.io/JuPCj (2021-09-12T12:42:01Z) |
12:46 |
|
independent56 joined #minetest |
12:49 |
|
Flabb joined #minetest |
13:19 |
MTDiscord |
<Warr1024> Is there some reason why particles don't/shouldn't have use_texture_alpha? It seems they're always de facto set at "blend" and this causes problems with other alpha-blend things like liquids. |
13:23 |
|
independent56 joined #minetest |
13:28 |
|
Desour joined #minetest |
13:32 |
|
independent56 joined #minetest |
13:37 |
erlehmann |
the tga thing seems to work locally |
13:37 |
MTDiscord |
<luatic> Correct rendering would have to first render everything opaque - nodes, particles and entities - and then render everything semi-transparent, Z-sorted per triangle (possibly even splitting tris in the case of intersection). |
13:38 |
MTDiscord |
<luatic> The current rendering first renders mapblocks - which contain both opaque and semitransparent blocks - and then renders particles, entities etc. after that. |
13:39 |
erlehmann |
i still get texture errors on catlandia though, lets see what those are |
13:39 |
MTDiscord |
<luatic> The PR by x2048 introduces Z-sorting at a mapblock level, but can't really fix this issue. |
13:39 |
sfan5 |
irrlicht defines some sort of solid and transparent pass but it doesn't seem we're using it correctly or at all |
13:40 |
erlehmann |
to be clear, they do not seem to be tga related |
13:40 |
erlehmann |
either catlandia does something wrong or something else broke |
13:42 |
|
Talkless joined #minetest |
13:42 |
MTDiscord |
<Sublayer plank> are there any log messages related to it? |
13:43 |
erlehmann |
https://mister-muffin.de/p/S426.txt |
13:50 |
MTDiscord |
<luatic> Really, a proper solution would have to sort at a triangle level. Order-independent transparency would probably the simplest to implement, but also pretty slow. |
13:50 |
MTDiscord |
<luatic> erlehmann: that very much looks like Catlandia messing up |
13:51 |
MTDiscord |
<luatic> The changes shouldn't affect PNGs |
13:51 |
MTDiscord |
<luatic> Also there's HTML escaped colors with quotes!? |
13:55 |
erlehmann |
luatic it looks to me either skinsdb is in error here or minetest used at some point to do xml |
13:58 |
erlehmann |
wait |
13:58 |
erlehmann |
minetest uses xml |
13:58 |
erlehmann |
for fonts |
13:58 |
erlehmann |
lol |
14:00 |
MTDiscord |
<Sublayer plank> well xml stuff was removed from irrlichtmt a while ago |
14:01 |
erlehmann |
oh what the fuck |
14:01 |
erlehmann |
xml is used for fonts |
14:01 |
MTDiscord |
<luatic> I guess they forgot to remove the XML font files then |
14:01 |
MTDiscord |
<luatic> erlehmann: probably XML is just a fallback |
14:01 |
erlehmann |
what kind of mess is this, are thed devs just removing features for the sake of removing them? |
14:01 |
MTDiscord |
<Sublayer plank> you sure it's not just freetype handling the xml font files? |
14:02 |
MTDiscord |
<luatic> Pretty sure MT usually is compiled with Freetype which means TTF is used. |
14:02 |
MTDiscord |
<Sublayer plank> minetest uses freetype for fonts from what I can recall |
14:04 |
erlehmann |
wellllllllllllll |
14:04 |
erlehmann |
let me double check it |
14:05 |
MTDiscord |
<Sublayer plank> yeah this looks a bit weird |
14:05 |
MTDiscord |
<Sublayer plank> if freetype is not enabled when building minetest it falls back to irrlicht's font rendering which uses png and xml... which has been removed? |
14:32 |
|
Guest75 joined #minetest |
14:35 |
|
independent56 joined #minetest |
14:35 |
Guest75 |
I'm writing here simply because #minetest-dev is not talk-able from web IRC, but how would bitmap font work with complex writing for example?? unifont handles that as well and not just the normal strict 'latin-only' stuff since there's a whole lot writing scripts out there and latin is just very tiny portion of it |
14:37 |
|
independent56 joined #minetest |
14:41 |
erlehmann |
Guest75 i have no idea |
14:52 |
|
kamdard joined #minetest |
14:55 |
|
fluxionary joined #minetest |
15:04 |
|
delta23 joined #minetest |
15:14 |
|
independent56 joined #minetest |
15:19 |
|
independent56 joined #minetest |
15:19 |
|
fluxionary joined #minetest |
15:28 |
sfan5 |
@luatic do you have an idea or fix for the assertion failure Alias mentioned yesterday yet? |
15:34 |
MTDiscord |
<luatic> No, not yet |
15:35 |
sfan5 |
was just wondering, no hurry |
15:35 |
|
Flabb joined #minetest |
15:43 |
MTDiscord |
<luatic> TBH I'm pretty much out of ideas |
15:46 |
|
erlehmann joined #minetest |
16:00 |
|
Extex joined #minetest |
16:03 |
erlehmann |
did you know: if you use bitmap fonts, someone spamming the chat can not make your game lag so much |
16:03 |
erlehmann |
unfortunately, that feature was recently removed from the dev version |
16:04 |
erlehmann |
if you care about it or use it, please voice your opinion here https://github.com/minetest/minetest/issues/11611 |
16:05 |
Desour |
!title |
16:05 |
MinetestBot |
No title found. |
16:06 |
MTDiscord |
<Jonathon> Remove (or preserve) non-TTF font support #11611 |
16:06 |
ShadowBot |
https://github.com/minetest/minetest/issues/11611 -- Remove (or preserve) non-TTF font support |
16:23 |
|
absurb joined #minetest |
16:24 |
|
independent56 joined #minetest |
16:35 |
|
independent_ joined #minetest |
16:47 |
|
calcul0n joined #minetest |
17:28 |
|
appguru joined #minetest |
17:48 |
|
fkbm joined #minetest |
17:57 |
AliasAlreadyTake |
Yay, anotehr crash, yaym a different one. This time only a lua problem. To be honest, I don't know what to do at this point. |
17:59 |
Pexin |
become organic farmer |
18:04 |
|
z812 joined #minetest |
18:11 |
|
fluxionary joined #minetest |
18:14 |
|
copygirl joined #minetest |
18:23 |
|
DUMdum joined #minetest |
19:15 |
|
specing_ joined #minetest |
19:48 |
|
longerstaff13 joined #minetest |
20:00 |
|
illwieckz joined #minetest |
20:11 |
|
fluxionary_ joined #minetest |
20:18 |
|
AristotIe joined #minetest |
20:25 |
|
proller joined #minetest |
21:38 |
|
flux__ joined #minetest |
21:42 |
|
Markow joined #minetest |
21:44 |
|
independent_ joined #minetest |
21:57 |
|
independent_ joined #minetest |
22:21 |
|
proller joined #minetest |
22:24 |
|
Extex joined #minetest |
23:07 |
Extex |
I'm almost sure I've asked this before, but how do I get an entities name from an ObjectRef? |
23:08 |
sfan5 |
:get_luaentity().name |
23:09 |
Extex |
Ahh ty |
23:19 |
|
calcul0n joined #minetest |
23:54 |
|
Alias2 joined #minetest |
23:54 |
|
Extex joined #minetest |