Guild icon
DDraceNetwork
Development / developer
Development discussion. Logged to https://ddnet.tw/irclogs/ Connected with DDNet's IRC channel, Matrix room and GitHub repositories — IRC: #ddnet on Quakenet | Matrix: #ddnet-developer:matrix.org GitHub: https://github.com/ddnet
Between 2020-06-22 00:00:00Z and 2020-06-23 00:00:00Z
05:53
b96d867 Fix crash when player voting random_map leaves and vote passes - Zwelf 39eae19 Merge #2312 - bors[bot]
Avatar
@deen a 0 return there is not a preprocessing failure actually, it just means the packet needs no further processing
06:30
It should return but, no need to log
Avatar
oh, but why is the raw msg a nullptr then?
07:27
9d9d5e2 Fix double hook sound in 0.7 - def-
Avatar
@deen rawmsg being 0 is supposed to signify that there is no need for further processing
07:41
I just forgot the return
Avatar
you need a check in OnMessage tho
07:42
for pRawMsg
07:42
just like it was before
07:43
invalid messages are dropped there
Avatar
Yes, I removed it while restructuring then forgot to add it back
Avatar
when unpacked by the handler
07:43
Yea
Avatar
79cb7d1 Don't log preprocess nullptr return - def-
Avatar
@deen https://github.com/ddnet/ddnet/pull/2311/files sounds like a DoS waiting to happen
Avatar
yeah, already changed it
08:33
i didn't really know what the preprocess was doing and we had crashes because of this
Avatar
hi @heinrich5991, if you have time, please take a look at https://github.com/ddnet/ddnet/pull/2307, it adds some stuff to the protocol
Avatar
currently looking into the steam release stuff
Avatar
just noticed ger 2 is quite a big server monkaS
Avatar
yeah, way too big for us
Avatar
pStr[-1] = 0; how is this even possible?
09:16
well i guess its some pointer arithmetic
Avatar
*(pStr - 1) = 0
Avatar
warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=] 117 | pStr[-1] = 0;
09:17
this is on inline void IntsToStr(const int *pInts, int Num, char *pStr)
Avatar
ah, I think we had false positives in that function before :/
Avatar
a[b] is just sugar for *(a+b)
Avatar
that's it's literal definition 😛
Avatar
but that sugar reminded me of python
09:18
xd
Avatar
in C, or in C++ with pointers
Avatar
has some very interesting consequences, like 5["abcdefghijkl"] being possible 😄
Avatar
so are most warnings in https://github.com/ddnet/ddnet/issues/2235 false positives?
In file included from src/engine/client/graphics_threaded.h:4, from src/engine/client/backend_sdl.cpp:33: src/engine/graphics.h: In member function ‘void CCommandProcessorFragment_OpenGL3_3::Cmd_Cr...
09:19
i managed to fix the first one
09:20
which is not a string overflow
Avatar
one would have to check individually
09:20
but I do remember that this warning did have false positives in the past
Avatar
As reported by TacTic on Discord:
Once u join a team and lock it up, Then press kill and lock keybind at the same time. Which it makes you to be able to in stay in team and also could hook players in team 0
Avatar
@Ryozuki prefer feedback here or on the PR?
Avatar
@Ryozuki feedback on technicalities and the actual feature are in different replies
Avatar
the frozen tee in a ice block can be done in another pr, i dont think it matters here
Avatar
it matters to me from a game design perspective
09:57
I don't think the proposed solution is the way to go
Avatar
also it would look weird if the ice block is square , i think i saw it sometimes in the past
09:58
@heinrich5991 "I think we shouldn't use client capabilities but send all clients the same data. "
09:58
i dont know how to achieve this
09:58
this feature stops sending that the weapon you have when frozen is ninja
09:58
and instead it makes the client use the ddnet character
09:58
you need client capabilities to know which clients can make use of ddnet character
09:58
and not rely on weapon ninja
09:59
the proposed pr has nothing to do with the freeze being a ninja or not
09:59
i think that should be handled in another pr
09:59
/ issue
Avatar
oh, it's not showing the actual skin
10:00
sorry, have seen something like that up there in the developer chat
10:02
<thinking>
Avatar
@heinrich5991 back to the capabilities, do you see why i dont see how to achieve what you say?
10:02
ah
10:02
ok sry
Avatar
Helllo can u help me please fast please me need to kick someone on map he want finish with my nickname but me dont want it
Avatar
#general and tag a mod
Avatar
not #developer
Avatar
kk sry
Avatar
@Ryozuki ok, I can't think of anything better than sending a client capability :/
10:05
one could put it into a different netobj, but then we'd have redundant information
10:05
also not nice
Avatar
@heinrich5991 then, where do you think i should place to achieve that good discoverable position?
Avatar
I'd suggest to send it right before sending the player name etc. On the server side, only accept it before the player name. This get rids of problems where weird behavior appears when clients change it while in game.
Avatar
Cl_StartInfo
10:06
is what it's called IIRC
Avatar
inside the sendinfo method i guess
10:08
inside the start
Avatar
yep
10:09
and apparently the SendDummyInfo
10:09
I guess you should create a function to not duplicate the code
Avatar
@heinrich5991 i guess using CNetMsg_Cl_Capabilities instead of AddInt is better
Avatar
yes
Avatar
@heinrich5991 pushed
10:16
ups
10:16
forgot Msg.Pack(&Packer);
10:17
ok fixed
Avatar
@deen can you notice my client too? https://fokkonaut.github.io/F-Client
10:19
Its more spread on the 0.7 community than zillywoods
Avatar
(PRs are possible to that repo btw)
10:21
i think now the server doesnt get the capabilities
Avatar
57474d5 Add mention of F-Client - def-
Avatar
@heinrich5991 were should the server receive it now?
10:23
it seems it doesnt get it now
Avatar
near Cl_StartInfo
10:24
make sure to only accept the Cl_Capabilities once and only before Cl_StartInfo
Avatar
that would happen when pPlayer->m_LastChangeInfo is 0?
10:25
or when pPlayer->m_IsReady is false
10:25
i guess its that
10:26
or both
Avatar
!m_IsReady
10:28
and a boolean to indicate whether you already received a Cl_Capabilities
Avatar
it works now
10:29
pushed
Avatar
Do we really need capabilities btw? Wouldnt old clients just drop the unknown message?
Avatar
we need
10:31
as discussed earlier
Avatar
@Learath2 the problem is that we currently clobber the weapon field
10:31
old clients rely on that
10:31
we could duplicate the information "real weapon" into a different snapobj
Avatar
or we can just use the capabilities
10:32
its just 1 packet at the start
10:32
im sure in the future we will also find its use on another thing
Avatar
that is not the rouble with it
10:32
the trouble is that we're making the protocol more complicated
10:33
capability messages are about the worst thing that can happen
10:33
so many edge cases that are untested
Avatar
which ones?
Avatar
clients that turn on capabilities in a combination that we don't test
Avatar
so you will decline the pr?
Avatar
no, I explained that I didn't find any better solution
10:35
but you pretending that the solution has no downsides is a bit meh
Avatar
well i never said that
Avatar
the old way was to remember which version of ddnet client added support for which feature
Avatar
[12:32 PM] Ryozuki: its just 1 packet at the start
I interpreted this message as "the worst problem with the solution is that it's a packet we send"
10:37
ah, that would get rid of the "exponential amount of stuff to test"
10:38
problem
Avatar
well i just mentioned that because i thought "we could duplicate the information "real weapon" into a different snapobj" would actually send that rly often
Avatar
wdyt @Ryozuki?
Avatar
yeah, then it's just a linear amount of supported features, <= the number of versions we have
10:38
of supported combinations*
Avatar
we even made that "feature" better recently, so it's always available
Avatar
what means wdyt
Avatar
what do you think
Avatar
" to remember which version of ddnet client added support for which feature" this?
10:41
i find it ugly, but if you like it more we can go with it, we will have the code cluttered with version checks
10:41
i just thought about client capabilities give other clients
10:41
the opportunity to implement those
10:41
and not rely on ddnet version
10:42
s / about /that
Avatar
src/game/server/ddracecommands.cpp:743:39: warning: unknown conversion type character ‘l’ in format [-Wformat=] 743 | str_format(aBuf, sizeof(aBuf), "%s-%lld-%s.save", pSelf->Server()->GetMapName(), time_get(), pSelf->Server()->GetAuthName(pResult->m_ClientID));
Avatar
Hey guys
11:04
Blurry and I had a problem
11:04
I mean it wasn’t that important but still
11:05
We wanted to save with « /save Fluday »
11:05
And it saved with another pw
11:05
Such as « draw move goofy » « twins slift slul »
Avatar
@Fluday save code was already used
11:05
Oh probably !
Avatar
so it picked a different one for you
Avatar
Didn’t know that
Avatar
you can load it again if you want to change the code
Avatar
But it should ´t write
11:06
This password has been used no ?
11:06
Instead of putting another one
11:06
Or maybe you changed it recently
Avatar
it got changed recently
11:06
Thanks then !
Avatar
ᶰ°Konͧsti 2020-06-22 11:21:39Z
Can we enable /r on testservers always and in team 0?
Avatar
[quakenet] ChillerDragon BOT 2020-06-22 12:13:01Z
@heinrich5991 lmao > When you have 200+ million daily users, you’ll definitely want to keep your API private from spammers and co., so you’ll have to keep a secret
12:13
and then he publishes it ;D
Avatar
@ᶰ°Konͧsti enabled now
12:14
@Learath2 can't connect with Vanilla 0.6 anymore. I'll do a bisect
12:20
oh well, locally I can't connect with a different error
Avatar
ᶰ°Konͧsti 2020-06-22 12:20:37Z
Thx deen feelsamazingman
12:20
Always so fast to fix Problems feelsgoodman
Avatar
ᶰ°Konͧsti 2020-06-22 12:23:05Z
wait its not xd /practice worked like on any other server Already. But on test it would be nice to not write /practice and also can use /r at any time (edited)
12:24
so u dont have to get logged in and abuse super especially because super breaks switches
Avatar
ah, can't turn on sv_rescue after server is running, hm
12:31
now it should work
Avatar
How does this break when I'm outside?
Avatar
it broke before
12:40
but the bug report was too unspecific 😄
Avatar
So is there any urgent issue now?
Avatar
my guess is that it's something about the character net object
Avatar
Hm, I never checked vanilla actualy
12:47
a9f6d37 Fix str_format on mingw - def-
12:47
252cda2 Use str_comp instead of strcmp - def-
Avatar
@deen https://github.com/ddnet/ddnet/pull/2317 the warning was real, this won't work properly on MSVS I think
src/game/server/ddracecommands.cpp:743:39: warning: unknown conversion type character ‘l’ in format [-Wformat=] 743 | str_format(aBuf, sizeof(aBuf), &quot;%s-%lld-%s.save&quot;, pSelf-&a...
12:51
i.e. should fix the format string instead of the change you did
Avatar
ᶰ°Konͧsti 2020-06-22 12:53:08Z
Thx, works now
Avatar
oh, but we used this before in many places
Avatar
I only see one mention of %lld in the source, at your line @deen
Avatar
there were multiple warnings for this in mingw
Avatar
those might all be broken on MSVS
12:55
the change mostly silenced the warnings, not fixed them
12:55
(for MSVS)
12:55
(the commit did fix them for mingw)
Avatar
I thought this was a bug in mingw
Avatar
%lld isn't understood in MSVS IIRC
12:57
never mind
12:58
stackoverflow says it works in MSVS
12:58
then that warning was wrong(?)
12:59
hm how does that change even fix the warning, I wonder
12:59
the warning is produced on the str_format, which is marked as taking a format argument
13:00
the body of that function should be irrelevant to that warning
13:00
it can't even be seen from the place where the warning is emitted
Avatar
nope, gcc is smart enough and checks where the string literal came from
13:00
(is my assumption)
Avatar
we do have an annotation on str_format, I thought the warning came from there
13:01
it can't know the body when comping src/game/server/ddracecommands.cpp
13:01
compiling*
13:01
the compiler call doesn't see src/base/system.c
Avatar
yeah, it's a bit mysterous actually
Avatar
In the build for release: ``` /ddnet-master/src/game/server/teeinfo.cpp: In constructor ‘CTeeInfo::CTeeInfo(const char*, int, int, int)’: /ddnet-master/src/game/server/teeinfo.cpp:32:91: error: array used as initializer CTeeInfo::CTeeInfo(const char *pSkinName, int UseCustomColor, int ColorBody, int ColorFeet) ^ /ddnet-master/src/game/server/teeinfo.cpp: In constructor ‘CTeeInfo::CTeeInfo(cons...
13:06
07830c8 Fix whitespace in teeinfo.cpp - def-
Avatar
@deen regarding the bug with locking/killing at the same time causing to bug teams I think theres a major problem with dummy maps I think I broke something there I can no longer join team 15 (which I used to try the bug) with 2 tee's
monkaS 3
13:14
I broke team 16 aswell, just to verify it pepeH
justatest 6
Avatar
DLL Hijacking is a popular technique for executing malicious payloads. This post lists nearly 300 executables vulnerable to relative path DLL Hijacking on Windows 10 (1909), and shows how with a few lines of VBScript some of the DLL hijacks can be executed with elevated privil...
poggers 1
Avatar
ᶰ°Konͧsti 2020-06-22 14:10:38Z
hMM
14:11
@murpi did u try to cross startline on a dummy map?
14:11
With the bug
Avatar
Okay, I'm back home
14:39
Let me first commit the racetimer changes, then I'll take a look at vanilla
14:39
The fact that there are people still using vanilla confuses me very much
Avatar
vanilla 0.6 is indeed an odd target
Avatar
Does anyone know if the "katana eyes" (+) on skins are still used for anything? including outside of DDRace
Avatar
@ᶰ°Konͧsti I have not
14:57
probably wouldnt let you pass (edited)
14:58
@Learath2 you managed to escape turkey? 😮 pog
Avatar
nope still in turkey
14:59
I was outside having a late lunch
15:00
guses you can call turkey your new home kek
Avatar
funny that the C++ standard library doesn't include a signum function
15:06
hm, very hard to test the finish messages without a score setup
15:10
TIL 0.6.5 doesn't really work on mac
Avatar
Mostly tested, couldn't test the diffs though as I don't have score set up. It looks good to me though.
Avatar
uff, now I need to get 0.6.5 building to test this old mess
Avatar
can u guys add twitch emotes in tw?
15:18
or is there copyright for them
Avatar
gr8 experience
15:22
hm, I seem to have broken the local client id detection for old vanilal
15:23
I can't get it to completely break though
15:23
each new vanilla client seems to control the vanilla client that joined before it 😄
Avatar
hm, this is pretty hard to debug
15:34
huh cid 0 seems unaffected
15:37
hm everyone seems to think cid 0 is their local
15:37
I guess that's what I broke
Avatar
so all vanilla clients are supposed to think they are id 0
15:55
found it, missed while refactoring again 😦
Avatar
@Learath2 Could we possibly make little vote in #announcements to let players choose how the players in /spec should be displayed like? https://github.com/ddnet/ddnet/pull/2309#issuecomment-647612108
Adds the option cl_show_spec_tee Don&#39;t merge until @Ekidoxx confirms it: Wait a bit before merging the visible-spec, I will play around more with the skin. I.e. whiteish border around tha...
15:56
Simple black-dashed one looks simple & clean, but got a lot of suggestions to somehow make it visible on darker backgrounds, so...
Avatar
hm, didn't really think this through, we don't have emojis for 1 2 3 and 4 😄
Avatar
1️⃣2️⃣3️⃣4️⃣
Avatar
but Discord itself does ^
Avatar
nvm am blind
16:03
was pushing the fix for the vanillat thing at the same time
Avatar
62d014d Forgot we faked ids for vanilla - Learath2
Avatar
Thanks @Learath2
16:06
Confirmed that it works, will rebuild servers
Avatar
Oh can you check spec while you have a server up?
Avatar
spectating?
16:07
seems to work
16:07
pause too
Avatar
The fakesnap looked odd to me for a sec
Avatar
35acd21 Use the racetimer in 0.7 - Learath2 287e3e2 Use 0.7 finish messages - Learath2 6384ebf Merge #2321 - bors[bot]
Avatar
@Learath2 0.7 shouldnt fake ids
Avatar
Translate wouldnt change anything for them anyway
Avatar
why?
17:00
they should just behave like ddnet clients
17:01
only 0.6 clients with 16 players (like vanilla(
Avatar
You made me get up from my very comfortable couch to just see that translate does indeed just return true without doing anything for sixup
17:06
are you fixing it?
Avatar
Nothing to fix
Avatar
[quakenet] ChillerDragon BOT 2020-06-22 18:09:29Z
send help teeworlds is starting on my second screen :/ but not on the primary
Avatar
mine always starts on my primary screen o.o
Avatar
@ChillerDragon try using 0.6 client
Avatar
Try using 0.5, the older the better
Avatar
download teewars client
Avatar
[quakenet] ChillerDragon BOT 2020-06-22 18:41:17Z
u all big trolls
18:41
@Patiga mine always on secondary even if i change primary screen in my settings
Avatar
mine stays on the same screen when changing primary display @ChillerDragon
Avatar
@Ryozuki with the ice block, I think "no weapon" would look nicer tbh
Avatar
[quakenet] ChillerDragon BOT 2020-06-22 18:43:30Z
so same as mine? but better?
18:43
:D
Avatar
i dont want the iceblock
Avatar
[quakenet] ChillerDragon BOT 2020-06-22 18:43:58Z
i blame arch :D
Avatar
also got arch :p
Avatar
nobody wants it imho
Avatar
[quakenet] ChillerDragon BOT 2020-06-22 18:44:09Z
ikr
18:44
thats why i blame arch @Patriga
18:44
OMG the r
Avatar
and im not implementing it
Avatar
[quakenet] ChillerDragon BOT 2020-06-22 18:44:24Z
ye typo
18:44
sry
Avatar
that's fine @Ryozuki
Avatar
how do you know tho
Avatar
i just dont want to mix that discussion with this pr
Avatar
[quakenet] ChillerDragon BOT 2020-06-22 18:44:49Z
that u use arch?
Avatar
@Ryozuki it might be better to discuss these graphics/gameplay related issues before turning them into code, at least if you're concerned about writing code that might not get merged
Avatar
[quakenet] ChillerDragon BOT 2020-06-22 18:45:04Z
how do you know that people are vegan?
18:45
they tell u
Avatar
@Ryozuki but I'm saying that I think it doesn't fit the ice block thing that we might want to do in thefuture
Avatar
[quakenet] ChillerDragon BOT 2020-06-22 18:45:17Z
arch users 24/7
Avatar
that pr has an option to disable the feature
Avatar
[quakenet] ChillerDragon BOT 2020-06-22 18:45:25Z
u and heinrich less often
18:45
also konsti not too much
Avatar
with the iceblock u would need the capabilities anyway
Avatar
[quakenet] ChillerDragon BOT 2020-06-22 18:45:49Z
im sure you mentioned it here and then
Avatar
@Ryozuki if it were up to me, I'd remove those options, no matter whether it's getting merged or not
Avatar
o.o i cant really recall announcing it ever, except like once when i first saw the player "Arch Linux" ingame
Avatar
options are no excuse
Avatar
@heinrich5991 yeah but diferent ppl want diferent things
18:46
i would totally fork ddnet if u only allowed an iceblock
Avatar
[quakenet] ChillerDragon BOT 2020-06-22 18:46:47Z
im sure ull get a hit by running "grep -i patiga.*arch" on irc logs
18:47
i swear i didnt hack ur pc to find it out
Avatar
mom im scared
Avatar
[quakenet] ChillerDragon BOT 2020-06-22 18:47:34Z
maybe during some techquestions or issue reports
18:47
fair
Avatar
what do you guys mean by the ice block?
Avatar
[quakenet] ChillerDragon BOT 2020-06-22 18:47:58Z
henlo i have this ddnet klient bromelme I USE ARCH BTW
Avatar
its rly ugly
Avatar
nobody wants that
Avatar
not true
Avatar
people will 100% say with ninja
Avatar
I'd want that
Avatar
the ice is cluttered
18:48
ninja is rounded and shows perfectly the bounds in physics
Avatar
it'd also provide the distinguishability between tees that someone else wanted
Avatar
its also clean
Avatar
players were many times asking for that frozen-skin to be used, but in different scenario, where that "ice" would be put over their skin, so that you can see skins unlike ninja
Avatar
you can see that (in my link) @Soreu
Avatar
@Ryozuki afaik the physics are square in some cases
Avatar
looks so bad
18:50
im definitly against this
Avatar
looks quite nice, though I'd be for more into this style
18:50
of the ice itself
Avatar
i dont like it
Avatar
i would love to see it, its horrifyingly cute
Avatar
Is there perhaps issue/PR already about the ice-block?
Avatar
no, not yet
Avatar
can't find any, but sometimes the names are quite misleading
Avatar
For that external clients can identify correctly the freeze state is good add a playerFlag for check this... m_InputData.m_PlayerFlags |= PLAYERFLAG_FREEZE; comment if its good or not... for me how...
18:54
the only thing I found related to this
19:02
6cfc6ad Make ctrl-s/ctrl-l etc work everywhere in editor (fixes #2302) - def- a407513 Merge #2306 - bors[bot]
Avatar
I feel like the ice skin would mess too much with the hitboxes, also if this gets added then it needs to actually look good and not some random blue square put over your tee (and of course the possibility to keep using ninja skin)
19:08
ca094df map_extract: Only access map info if it exists - def- 0ff3402 Merge #2303 - bors[bot]
Avatar
[quakenet] ChillerDragon BOT 2020-06-22 19:09:21Z
Patiga ok i solved it by setting a screen in tw graphics settings
Avatar
ah, thats actually good to know
Avatar
[quakenet] ChillerDragon BOT 2020-06-22 19:55:38Z
its a 0.7 only feature i think
19:55
yea looks like
Avatar
[quakenet] ChillerDragon BOT 2020-06-22 20:05:02Z
is github and githubstatus down?
Avatar
github.com main page loads for me
20:05
https://www.githubstatus.com/ tells me Update - An update to our nameservers has been rolled back. We are monitoring recovery. Jun 22, 20:00 UTC
Welcome to GitHub's home for real-time and historical data on system performance.
20:05
so 5min ago
Avatar
[quakenet] ChillerDragon BOT 2020-06-22 20:05:46Z
yea its back now
20:05
but 1 sec ago githubstatus was literaly down
20:06
ah nice all back
20:06
i was this close to restart my computer ;D
20:07
what are these mad lads doing i cant even ping github.com
Avatar
dns is bad
20:07
you get the wrong IP address
Avatar
[quakenet] ChillerDragon BOT 2020-06-22 20:07:44Z
so its me?
20:07
should i switch dns?
Avatar
dns changes propagate slowly
20:08
try again in some time
Avatar
[quakenet] ChillerDragon BOT 2020-06-22 20:08:08Z
i blame microsoft
20:08
i cant live without github
Avatar
apple is making cpus no
20:44
w
20:45
"Apple has long been rumored to be developing its own in-house ARM processors to replace the Intel chips it currently uses in its Macs."
Avatar
c790852 Add a slightly longer introduction text - def- c64691d Update translation files - def- 11e2f04 Merge #2280 - bors[bot]
Avatar
@Ryozuki they have been making mobile cpus for ~10 years
Avatar
well this one is for mac
Avatar
in some benchmarks the ipad pro's cpu beats intel mobile chips already btw
21:05
what about amd?
Avatar
and Intel is tiny compared to Apple
Avatar
tiny in what way?
Avatar
market capitalization
Avatar
I'd guess apple's usage of CPUs is far less than intel's production
Avatar
Apple is worth 8 times Intel I think
Avatar
and the benchmarks, what were they about? performance? performance per watt?
21:07
I heard non-intel CPUs are better at performance per watt
Avatar
@Ryozuki maybe the ice cube should be a bit smaller? It indeed looks like it increases the size of tee atm
21:07
pure performance I think
21:07
but mobile cpus are always power/cooling constrained
Avatar
@deen i guess, i simply like more the ninja skin, to me entering a darker area and being not able to move doesnt mean im frozen idk feels rly out of place
21:09
The ninja feels a bit out of place to me
21:09
like it was just available, but has nothing to do with ddrace freeze
Avatar
new player I've seen struggled to understand that ninja = not being able to move
Avatar
exactly. We're just used to it because we've seen it for years
Avatar
i think a frozen skin but that has the same size as the ninja
21:14
maybe just a frozen effect
21:14
over the skin
21:14
but without going outside the tee
Avatar
Many thinks shrink when cooled down. Maybe just make the tee smaller and put it in a round ice ball 😄
Avatar
[freenode] Zwelf BOT 2020-06-22 21:15:01Z
@deen can you look into the ger2 8304 server crash?
Avatar
oh shit, lots of crashes
21:15
Program terminated with signal SIGSEGV, Segmentation fault. #0 0x0000564005314ee7 in CPlayer::Snap (this=0x5640053efcf8 <ms_PoolDataCPlayer+10296>, SnappingClient=SnappingClient@entry=4) at /home/teeworlds/src/master/src/game/server/gamecontext.h:122 122 IServer *Server() const { return m_pServer; } [Current thread is 1 (Thread 0x7f055fe0bdc0 (LWP 1095))] (gdb) bt #0 0x0000564005314ee7 in CPlayer::Snap (this=0x5640053efcf8 <ms_PoolDataCPlayer+10296>, SnappingClient=SnappingClient@entry=4) at /home/teeworlds/src/master/src/game/server/gamecontext.h:122 #1 0x0000564005301148 in CGameContext::OnSnap (this=0x7f055d809010, ClientID=4) at /home/teeworlds/src/master/src/game/server/gamecontext.cpp:3331 #2 0x00005640052d90d3 in CServer::DoSnapshot (this=this@entry=0x7f055f03f010) at /home/teeworlds/src/master/src/engine/server/server.h:119 #3 0x00005640052dfb2d in CServer::Run (this=this@entry=0x7f055f03f010) at /home/teeworlds/src/master/src/engine/server/server.cpp:2508 #4 0x00005640052d23c6 in main (argc=3, argv=0x7ffdddd56d28) at /home/teeworlds/src/master/src/engine/server/server.cpp:3525
Avatar
well it would be nice to have a artist do some sketches
21:15
lol
Avatar
issue #1 xd
21:16
whats this
21:16
@jao fix bot
Avatar
@Learath2 Crash ^
Avatar
issue #1
Avatar
oh cool
Avatar
@jao maybe blacklist issues < 25 or so
21:17
< 197
Avatar
oh look
21:18
with a artist we could also do that issue in the pic
Avatar
``` Program terminated with signal SIGSEGV, Segmentation fault. #0 0x0000564005314ee7 in CPlayer::Snap (this=0x5640053efcf8 , SnappingClient=SnappingClient@entry=4) at /home/teeworlds/src/master/src/game/server/gamecontext.h:122 122 IServer *Server() const { return m_pServer; } [Current thread is 1 (Thread 0x7f055fe0bdc0 (LWP 1095))] (gdb) bt #0 0x0000564005314ee7 in CPlayer::Snap (this=0x5640053efcf8 , SnappingClient=SnappingClient@entry=4) at /home/teeworlds/src/master/s...
Avatar
something like a roughly tee-shaped frost effect is the only way I can see it working (not sure what about odd shaped skins tho)
heartw 3
Avatar
thats cute
Avatar
did you just quickly sketch that up? 😮
21:29
looks nice
Avatar
yeah it's not very great, took only a minute
Avatar
@deen do you still have the coredump+executable of the crash in #general? I wonder if one could use gdb to extract the save
Avatar
sorry, no :/
21:58
replaced the executable and removed the crashes
21:58
there were also so many crashes and the cores overwrite each other
22:00
should we just remove the entire thing? it's proving to be more trouble than it's worth
Avatar
did u know that for stuff like https://github.com/ddnet/ddnet/pull/2305 github has something called milestones, u can make a milestone for 14 and add all the issues and prs u want there
Waiting for #2303 #2301 #2296 #2295 #2294 #2280 #2279 #2242 and probably some sixup fixes by Learath2 :)
22:02
👀
Avatar
@Learath2 nah, I still like it
22:04
it's totally expected for me that we get some issues with such a huge change
22:05
@Ryozuki didn't know, won't use 😄
Avatar
Well the backtrace doesn't really tell much, any way to reproduce?
Avatar
hm, didn't find one
22:05
My guess is that the player object is invalid, so it was probably deleted
Avatar
It seems to happen in fakesnap
Avatar
i checked and the player object was not null
Avatar
Wait what version was the backtrace for?
Avatar
current master state
22:07
I guess?
22:07
yes
22:07
because otherwise the core dump wouldn't have fit with the executable
Avatar
mh, the optimized symbols are just all over the place
22:08
gamecontext.cpp:3331 is a call to fakesnap, next frame we are in snap though
Avatar
yeah, that's how it is with inlining I guess
Avatar
oh, nvm my copy was a couple lines off
22:10
git reset gets it nice and lined up
22:13
@deen is there a core remaining I can take a look at?
Avatar
i was a bit stupid and removed it already :/
22:14
let me try to find one more
22:16
@Learath2 have one
22:16
ger.ddnet.tw: servers/crash2323
22:16
see also the log file, the last line looks important
22:17
will try to reproduce locally with that
Avatar
is there a built master binary there btw?
Avatar
i have it now, in servers/crash2323/DDRace64-Server_sql
22:17
restored from /proc of a running process
Avatar
The backtrace was so misleading
22:40
I thought it had to be a null pointer to IServer which sounded impossible
Avatar
hmm, probably because of RelWithDebInfo instead of Debug, right?
22:41
all the optimizations messing with the output
Avatar
Yeah, inlining really messes with the backtrace
22:41
inlining and sibling calls are the two biggest offenders iirc
Avatar
https://github.com/ddnet/ddnet/pull/2322#issuecomment-647768495 if you add the field "foobar", it would look like """foobar""" in the escaped form
Avatar
hm, so that's intentional?
Avatar
for some reason the excel dialect of csv escapes " to ""
22:43
plus the quoting that has to happen then
Avatar
seems a bit extreme to me
22:43
but ok
Avatar
well does it have to be the excel dialect?
Avatar
we can follow a different standard, but that's what excel and python default to
22:44
python also has a different one that could be called saner
Avatar
I'm fine with that
Avatar
with what?
Avatar
the excel/python thing
Avatar
eh I guess sticking with the python default is fine
Avatar
okay
Avatar
it'd work more out of the box
22:46
Would it be possible for us to first make sure that the user tried to save and only allow the server to output one line?
22:46
So malicious servers can't spam it with stupid shit
Avatar
no, I think we should also log when another member of your team saved
22:47
even more so actually, since then you have a lower chance of remembering the save code
Avatar
$build_status #2324
Avatar
ce5aca4 Check for a null CPlayer::m_pCharacter - Learath2 f682855 Merge #2324 - bors[bot]
Avatar
hm, true
Avatar
I'll rebuild servers
Avatar
@deen I was fixing your other comment (re the CSV stuff)
22:48
it canceled the build now
Avatar
\r\n on windows.
Are you sure about this? I was sure the CRT made this transparent to the user
Avatar
oh, sorry
22:48
at least we have \r\n in other places in the source code
Avatar
@Learath2 only for text files
22:49
I think we open in binary mode
Avatar
io_write_newline for example
Avatar
aha, a perfect place to use io_write_newline 😄
22:50
Yeah checked the standard, it is only guaranteed for textfiles and I guess that makes sense
Avatar
otherwise it would mangle binary files ^^
22:50
if it were to do that, too
Avatar
I remembered it being a special case for \n
Avatar
@deen next time someone complains about a server crash with a long time, send me the binary+coredump. I managed to extract the save code in a toy example
Avatar
but that obviously makes no sense, the \n is long lost when we get to a compiled binary
22:53
you managed to call CSaveTee::save()?
Avatar
yes
Avatar
GER has 70% packet loss to github, other servers fine :/
Avatar
github was having dns problems earlier
Avatar
I guess with something like a simple null pointer dereference it's doable, but if the stack is mangled, I don't see how you'd fix it
Avatar
i changed the host already, still same
Avatar
(gdb) call (CSaveTeam *)malloc(sizeof(CSaveTeam)) $7 = (CSaveTeam *) 0x7ffff7f72000 (gdb) print (((CGameContext *)GameServer())->m_pController) $8 = (IGameController *) 0x5555557dbab0 (gdb) call 'CSaveTeam::CSaveTeam(IGameController*)'($7, ((CGameContext *)GameServer())->m_pController) (gdb) print $7 $9 = (CSaveTeam *) 0x7ffff7f72000 (gdb) print ($7)->save(1) $10 = 0 (gdb) print ($7)->GetString() $11 = 0x7ffff7f72010 "2\t2\t1\t1\t0\nheinrich5991\t1\t0\t0\t0\t0\t0\t-1\t0\t1\t0\t-1\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t-1\t0\t0\t0\t0\t2352\t0\t0\t1\t0\t1\t0\t0\t1\t3453\t686\t1329\t686\t1329\t0\t0\t686\t1329\t0.000000\t0.000000\t1\t0\t0\t2\t686\t1329\t0.000000\t0.0"... (gdb) @Learath2
Avatar
I guess you could always just nuke the entire stack
Avatar
uses just the CServer instance from the stack
Avatar
Good thing that whoever made the CSaveTeam didn't tie it into the sql thing directly
Avatar
yup
22:55
not shown: 100s of lines trying to make gdb do what I want 😛
22:55
it looks soo simple now ^^
Avatar
gdb is all practice practice practice 😛
Avatar
@heinrich5991 that's fancy. Feels lke you should write it down somewhere so that others can use it too
22:56
Maybe even in the ddnet README.md
Avatar
oh lol
22:56
let's recover a crash once with this, and I'll put it into the readme
22:57
just to see that it works with a non-toy example
Avatar
Actually, gdb doesn't have any overhead, couldn't we run all the servers with a debugger attached to dump saves if it crashes? 😄
Avatar
I'll test it on a coredump
22:58
you don't need a debugger attached when you have a coredump
Avatar
We could also handle segfaults in DDNet-Server and do that directly
Avatar
or maybe a signal handler
Avatar
no
22:58
please no
Avatar
I obviously also thought about this
22:59
but corrupted state shouldn't be put back into the freshly started server automatically
Avatar
oh definitely not
Avatar
good night
Avatar
I think that way lies insanity
Avatar
I meant just to pipe the saves out
Avatar
good night @deen 🙂
22:59
@Learath2 for that, gdb might also be better. handles invalid references better
Avatar
When you get a terminal signal, just loop through teams, save them, print out and die
23:00
yeah a gdb script could work too
23:02
I wonder what happens if you do something wrong in a signal handler
Exported 585 message(s)