Guild icon
DDraceNetwork
Development / bugs
Report client & server bugs, especially but not limited to release candidates.
Between 2022-12-05 00:00:00Z and 2022-12-06 00:00:00Z
Avatar
run_alboni two bugged tps
🤫 3
Avatar
Avatar
tela
Click to see attachment 🖼️
When i debugged yesterday i could not imagine it. The name is created on main thread. And i doubt another thread accidentally perfectly rewrites the name but not the rest . This has to be in a higher level already. I assume it's related to some feature i didn't have activated like ghost. Which still uses old data or smth. Can you try a clean config. Back up ur current. Else if u know how to debug look when exactly the invalid name is generated. Since it happens when reloading community skins it's pretty sure related to the skin refresh It's just weird i can't trigger it bcs that all happens sync
Avatar
Avatar
Jupstar ✪
When i debugged yesterday i could not imagine it. The name is created on main thread. And i doubt another thread accidentally perfectly rewrites the name but not the rest . This has to be in a higher level already. I assume it's related to some feature i didn't have activated like ghost. Which still uses old data or smth. Can you try a clean config. Back up ur current. Else if u know how to debug look when exactly the invalid name is generated. Since it happens when reloading community skins it's pretty sure related to the skin refresh It's just weird i can't trigger it bcs that all happens sync
tried with a clean config, same results, I don't think I know how to debug, does that mean building it with -DCMAKE_BUILD_TYPE=Debug?
Avatar
yes and setting breakpoints, or add dbg_msgs but if you never done that its probably not so ez^^
Avatar
ya i never have. If there's any docs for it online or if you feel like explaining I am willing to try
Avatar
yes i think event driven debugging can already help indetify the problem
18:05
i'd start with adding c++ dbg_msg("debugging", "%s", pName); src/game/client/components/skins.cpp:444 and see what the output is
18:05
then we can already identify if that problem really exists on the main thread
Avatar
does :444 mean at line 444
Avatar
exactly
Avatar
kk, and then compile with that flag i mentioned?
Avatar
cant hurt to test that too yeah
18:11
ah ok there is a EscapeUrlwhich indeed is a curl call
18:11
this might be the issue all along
18:12
c++ dbg_msg("debugging2", "%s", aEscapedName); maybe add this directly too
18:12
after the EscapeUrl a few lines down
Avatar
Avatar
Jupstar ✪
after the EscapeUrl a few lines down
so, basically the very end of the file?
18:18
im seeing escapeurl at line 448
Avatar
yes
18:18
after that line
Avatar
oh right after that line, ok
18:24
alright, there's some debugging info in console surrounding these errors now, not sure if that's what is useful
18:26
this doesn't seem useful to me but idk lol
Avatar
at least we now know that these invalid strings are already created earlier 😮
Avatar
ooo hell yea progress
Avatar
gimme a second
18:32
i hoipe this works under macos above ::FindImpl (its the same function we already added the dbg_msg to) add c++ #include <execinfo.h> void dbg_print_stack_trace() { int j, nptrs; void *buffer[100]; char **strings; nptrs = backtrace(buffer, 100); dbg_msg("System", "backtrace of %d addresses", nptrs); strings = backtrace_symbols(buffer, nptrs); if(strings != nullptr) { for(j = 0; j < nptrs; j++) dbg_msg("System", "%s", strings[j]); free(strings); } } then add c++ dbg_print_stack_trace(); after c++ dbg_msg("debugging", "%s", pName);
18:34
mhh wait the symbols probably require a special compile flag gimme a second
Avatar
% cmake .. -DCMAKE_EXE_LINKER_FLAGS="-rdynamic" invoke cmake with this additional parameter
18:38
i hope it works bcs then we have a stack trace already ^^
Avatar
-g should be enough to have symbols
Avatar
Avatar
Jupstar ✪
i hoipe this works under macos above ::FindImpl (its the same function we already added the dbg_msg to) add c++ #include <execinfo.h> void dbg_print_stack_trace() { int j, nptrs; void *buffer[100]; char **strings; nptrs = backtrace(buffer, 100); dbg_msg("System", "backtrace of %d addresses", nptrs); strings = backtrace_symbols(buffer, nptrs); if(strings != nullptr) { for(j = 0; j < nptrs; j++) dbg_msg("System", "%s", strings[j]); free(strings); } } then add c++ dbg_print_stack_trace(); after c++ dbg_msg("debugging", "%s", pName);
i'm seeing 3 instances of "FindImpl", 398, 404, 407, that's quite a bit above the 444 line, not sure where to add this
Avatar
Avatar
Learath2
-g should be enough to have symbols
i think in this case it doesnt load debug symbols
18:52
but just the mangled symbols
Avatar
Avatar
tela
i'm seeing 3 instances of "FindImpl", 398, 404, 407, that's quite a bit above the 444 line, not sure where to add this
const CSkin *CSkins::FindImpl(const char *pName)
Avatar
idk what you are doing anyway, feel free to ignore me 😄
Avatar
Avatar
tela
i'm seeing 3 instances of "FindImpl", 398, 404, 407, that's quite a bit above the 444 line, not sure where to add this
tbh just put it somewhere in the file xD
18:53
doesnt really matter
18:53
just not inside a function
Avatar
lol ok, I found that line ill add it above it
Avatar
You can run it under lldb and get the backtraces that way too btw, I do it sometimes
Avatar
sadly the problem doesnt always occur
18:54
so im too lazy to explain how to debug it
Avatar
break set -> break command add -> bt -> continue -> DONE
Avatar
if i know where the problem comes from it should be findable by logic
18:55
or this is some weird unrelated bug
Avatar
it'll spew out backtraces everywhere 😄
Avatar
the whole time?
Avatar
What is the problem btw?
Avatar
for some reason on macos the skin names can be broken
Avatar
Avatar
Jupstar ✪
the whole time?
every time the breakpoint you set is hit, it'll do a backtrace and resume
Avatar
for no apparent reason
18:55
valgrind doesnt find anything, asan, ubsan not
Avatar
Avatar
Learath2
every time the breakpoint you set is hit, it'll do a backtrace and resume
ah yeah makes sense^
Avatar
Avatar
Learath2
What is the problem btw?
also probably on the main thread
18:56
which makes it even weirder
Avatar
Avatar
Jupstar ✪
for some reason on macos the skin names can be broken
where is it broken? like through what codepath? is the skin name from the server broken or is the name we get from the fs broken?
Avatar
i am not sure yet
18:57
but he said he toggled community skins
18:57
so i assume its not from server
Avatar
The curl code is actually pretty broken fwiw, I can see it having a lot of UB
18:57
My curl multi pr fixes a lot of it but it's just not finished 😄
Avatar
ah yeah ghost
18:58
as if i called it
18:58
well ofc i cant repro, if i dont have a ghost file xDD
19:00
mh yeah i see it now too
19:00
should have tested more properly than i probably would have found it
19:00
thanks for the help tho
Avatar
ya of course, lmk if u need me to do more
Avatar
╰─────────────────────── looks like we broke the console output on windows again somehow 😄
Avatar
its macos xd
Avatar
@Robyt3 help, is it normal that IntsToStr returns weird string if all ints are 0?
19:04
is that expected behavior?
Avatar
lol i dont like macos either, but unfortunately i'm stuck with it because I can't be fucked to learn WSL or dual boot
Avatar
I never really tried to fix and test that method, it currently uses undefined behaviour (edited)
Avatar
ok that sucks in this case xD does somebody know if CGhostItem::Emptyis the function to check if a ghost is used or not?
19:09
i'll just assume yes, its used a few times
19:13
seems like this is not the correct way to check it
Avatar
it only checks for bool Empty() const { return m_Path.Size() == 0; }
Avatar
mhh or the problem is simply that it only happens once
Avatar
so not related to the skin itself
Avatar
i think the ghost stuff is simply not designed to work with reloads in mind
19:14
for database skins which are delayed
19:15
guess i call it a day and just fix it so it at least doesnt call invalid stuff
Avatar
someone mentioned UB?
21:14
aPES_Crab
Avatar
hey, i have trouble connecting to ddnet ger servers. is this the right channel for these kind of stuff ? can someone help me please ?
Avatar
Avatar
Ryozuki
aPES_Crab
lmao u really have emojis for everything
Avatar
Avatar
Iman
hey, i have trouble connecting to ddnet ger servers. is this the right channel for these kind of stuff ? can someone help me please ?
whats the error
Avatar
Too weak connection (not acked for 10 seconds)
Avatar
try LAN cable instead of wifi for example
Avatar
my connection is fine and it works fine on other servers
Avatar
where are you from?
Avatar
uh, weird routing maybe? but losing packets sounds weird
Avatar
might be a routing problem between u & the server
21:21
if so u cant really do anything
Avatar
i cant even enter the server, the error message appear before i enter
21:21
i cant do anything at all ?
Avatar
that message shouldn't even appear before entering the server 😄
Avatar
what ddnet version do you use?
Avatar
i use f-client for 0.7
Avatar
well, then you're on your own
21:22
or ask @fokkonaut
Avatar
Avatar
Iman
i use f-client for 0.7
can u simply try ddnet?
Avatar
or use ddnet client 🙂
Avatar
i dont want to move to 0.6 client all my playtime is on 0.7
Avatar
u can replace all files with ddnet client files and rename DDNet to teeworlds
Avatar
you can use tw 0.7 client on ddnet servers i think
Avatar
we have a translation layer i believe
21:24
(to be confirmed)
Avatar
i used 0.7 client to play on ddnet servers multiple times in the past
21:25
and it worked fine
Avatar
does it work on other non ger server, like NLD or POL ?
Avatar
i would like to keep using a 0.7 client, and i think ddnet isnt a 0.7 client ? maybe im misunderstanding something
21:25
i tried on china it worked
21:26
im gonna try on other servers
21:26
same issue on POL
21:27
same issue on NLD
21:27
same on RUS
21:28
same brazil
Avatar
0.7 is basically unmaintained
21:28
do you need 0.7 for any specific reason?
Avatar
Avatar
Iman
i would like to keep using a 0.7 client, and i think ddnet isnt a 0.7 client ? maybe im misunderstanding something
DDNet client is a 0.6 client. DDNet server also supports 0.7 clients, but not well
Avatar
yes, i need 0.7 because i spent thousand hours playing 0.7 and i believe that 0.6 is slightly different and i dont want to screw up my muscle memory. also id rather play on newer versions of tw, and the servers i like and my friends use to play on 0.
Avatar
Avatar
Iman
i use f-client for 0.7
@fokkonaut will be happy to hear 🙂
21:31
ok
Avatar
Avatar
Iman
Too weak connection (not acked for 10 seconds)
@fokkonaut Any idea why 0.7 connections to DDNet server are broken?
Avatar
Avatar
Iman
yes, i need 0.7 because i spent thousand hours playing 0.7 and i believe that 0.6 is slightly different and i dont want to screw up my muscle memory. also id rather play on newer versions of tw, and the servers i like and my friends use to play on 0.
well ddnet is the newer version of tw tbh i dunno about muscle memory, but input delay should be better with ddnet with a modern graphics backend also ddnet will probably shift more and more into an own implementation network and other stuff wise
Avatar
We also ported many of the changes in TW 0.7 to DDNet client which we considered good
Avatar
as much as i love ddnet and i think its a great project id rather not move to the ddnet client and keep playing teeworlds :I
Avatar
ok u'll have to accept tho that this isnt mainstream and will probably cause more and more problems in future
21:36
most devs arent testing with 0.7 in mind
Avatar
Avatar
Jupstar ✪
ok u'll have to accept tho that this isnt mainstream and will probably cause more and more problems in future
Avatar
also its not related to ddnet but it looks like i have the same issue on kog servers
Avatar
KoG server switched to recent DDNet server version
22:04
so it could still be a DDNet server issue. You can try if Vanilla Teeworlds 0.7 client works fine, if yes, then f-client issue. If not, then DDNet server issue
Avatar
i tried with an other 0.7 client and it didnt worked
22:15
im gonna try with vanilla client
Avatar
In terms of what is the most and least maintained is like this: TW 0.6 -> TW 0.7 -> DDNet
22:18
Meaning ddnet even if it's based on teeworlds 0.6, it is still the one that will have the newest features and be the most played
Avatar
i know that already
22:18
tw vanilla client doesnt work either
Avatar
Well in my opinion ddnet shouldn't be forced to not do new stuff if it meant breaking compatibility with older teeworlds
22:20
So if you really like ddnet then you should even if it would be hard, switch to ddnet (edited)
Avatar
Hm, we try to keep 0.7 working atleast, I'll take a look at what broke
22:24
But honestly, it's not the greatest experience as it uses the old tune hacks and stuff instead of proper prediction
Avatar
ok, thank you for your support
Exported 155 message(s)