IRC logs for #openttd on OFTC at 2022-07-10
⏴ go to previous day
00:06:01 *** gelignite has quit IRC (Quit: Stay safe!)
00:25:08 *** HerzogDeXtEr has quit IRC (Read error: Connection reset by peer)
01:45:46 *** Wormnest has quit IRC (Quit: Leaving)
02:14:40 *** debdog has quit IRC (Ping timeout: 480 seconds)
02:24:27 *** D-HUND is now known as debdog
02:34:07 *** Smedles has joined #openttd
06:45:04 *** Smedles has joined #openttd
07:20:47 *** andythenorth has joined #openttd
07:39:30 <andythenorth> AC vs DC electric
07:39:56 <andythenorth> inherent property of specific python subclasses, or a property ;P
07:40:57 <andythenorth> quite often I subclass for things like this, it reduces boilerplate when instantiating the object
07:41:27 <andythenorth> but then I'd have duplicate 11 existing subclasses for things like ElectricEngineUnit and ElectroDieselEngineUnit
07:42:35 <andythenorth> and also for multi-systems
07:43:42 <andythenorth> maybe I just set them all as potentially multi-system, and have a list of supported electrification types as an instance property
07:43:48 *** HerzogDeXtEr has joined #openttd
07:43:50 <andythenorth> thanks, nice chat, helped a lot
07:48:55 *** andythenorth_ has joined #openttd
07:55:00 *** andythenorth has quit IRC (Ping timeout: 480 seconds)
08:01:42 <Rubidium> maybe just a set of supported ways the vehicle can be propelled?
08:12:00 <TrueBrain> coverage 8.11%, no crashes yet
08:12:13 <TrueBrain> I think I am going to call it .. seems most variations of commands are explored now :)
08:12:26 <TrueBrain> Total run time : 1 days, 23 hours
08:17:55 *** sla_ro|master has joined #openttd
08:31:18 *** gelignite has joined #openttd
08:38:00 *** nielsm has quit IRC (Ping timeout: 480 seconds)
08:46:37 *** andythenorth has joined #openttd
08:47:09 *** andythenorth_ has quit IRC (Ping timeout: 480 seconds)
08:56:18 *** andythenorth_ has joined #openttd
09:01:38 *** andythenorth_ has quit IRC (Quit: andythenorth_)
09:02:23 <LordAro> could compile without ICU for MSAN purposes...
09:02:50 *** andythenorth has quit IRC (Ping timeout: 480 seconds)
09:07:09 <TrueBrain> yeah, but what is the next? :P
09:07:21 <TrueBrain> I mean .. it is the gift that keeps on giving :)
09:07:42 <TrueBrain> it's okay; I couldn't understand the error, but your comment makes sense .. I did not consider one of those "70 captures" wouldn't capture this
09:42:47 <TrueBrain> so taking bets .. how hardened you think our NewGRF loader is?
09:51:05 *** frosch123 has joined #openttd
09:52:25 <frosch123> jeff bezos' ex-wife wants to donate 100M to us
09:52:38 <TrueBrain> I have been asking her for weeks now
09:52:46 <TrueBrain> she kept saying: LET ME SLEEP
09:53:32 <TrueBrain> LordAro: you would be surprised, but the NewGRF loader refuses to load most garbage so far :P
09:54:05 <frosch123> i am not surprised, that's just the normal case for newgrf
09:56:01 <TrueBrain> first crash it detects is in my glue code to read files from a buffer :P Nice
09:58:38 <TrueBrain> print (this->buffer_end - this->buffer_start)
09:58:38 <TrueBrain> $3 = -140737435587526
09:58:41 <TrueBrain> I think I made a mistake :P
10:01:42 <TrueBrain> he wasn't migrated yet?!
10:01:58 <LordAro> no need to migrate until you have something to release, i guess
10:02:16 <frosch123> there are plenty of people who have not been active in the past years
10:02:45 <TrueBrain> okay, the fuzzer is having a really hard time generating new paths for the GRF loader :P
10:03:01 <TrueBrain> even with a valid GRF to work from
10:03:11 <frosch123> though i was surprised there are only 16 george sets on bananas
10:03:23 <frosch123> most of the old ECS and LV versions are pre-bananas
10:03:52 <TrueBrain> hmm .. this is a bit odd ... if I load multiple GRFs in a single OpenTTD instance, things influence each other in an unexpected way
10:03:56 <TrueBrain> even if they are all invalid GRFs
10:11:33 <TrueBrain> lol .. GLS_INIT is never assigned? Sometimes code is cryptic :)
10:13:08 <frosch123> huh? what reported an enum value to be unassigned? :p
10:13:32 <TrueBrain> I think you misread me :P
10:13:57 <LordAro> TrueBrain. TrueBrain reported an enum value to be unassigned
10:14:15 <TrueBrain> that would be a proper translation, yes :D
10:17:32 *** wallabra has joined #openttd
10:19:09 *** andythenorth has joined #openttd
10:21:39 <TrueBrain> even only doing GLS_FILESCAN has an influence on the next grf I read
10:21:45 <TrueBrain> that is a bit surprising :)
10:22:15 <TrueBrain> I was hoping that all made no state changes
10:27:02 <LordAro> what influence is there?
10:27:16 <TrueBrain> that I cannot see, sadly
10:27:25 <TrueBrain> just that if you load GRF A first and B after, it is different from B first, A after
10:27:32 <TrueBrain> (the trace is different)
10:28:04 *** lobstarooo has joined #openttd
10:28:49 <TrueBrain> hmm .. and GLS_RESERVED crashes when fuzzing, but not when I execute it manually .. also annoying! (as you cannot see why it crashes during fuzzing)
10:29:20 <TrueBrain> ah, no, I can .. GRFConfig destructor is being an ass
10:29:38 <TrueBrain> it does "delete this->error"
10:29:46 <TrueBrain> but one of the ctors doesn't actually allocate it
10:30:55 <LordAro> delete on a null should be fine though..?
10:31:17 <frosch123> it uses ZeroedMemoryAllocator to set stuff to nullptr
10:31:37 <frosch123> i thought someone removed that already<
10:31:57 <TrueBrain> so in all cases it is a nullptr for my setup
10:32:04 <TrueBrain> so ... why does it crash :D Let's find out ...
10:34:54 *** lobster has quit IRC (Ping timeout: 480 seconds)
10:34:55 *** lobstarooo is now known as lobster
10:35:06 <TrueBrain> after initialization, it already is that value
10:35:07 <frosch123> so you triggered some buffer overrun/underrun?
10:35:19 <TrueBrain> I just did "GRFConfig grf_config(filename);"
10:35:42 <TrueBrain> but I guess the ZeroedMemoryblabla did not expect that :P
10:35:54 <frosch123> i think ZeroedMemoryAllocator only works for heap stuff
10:36:14 <LordAro> all it does is override new/delete with calloc/free
10:36:37 <frosch123> yeah, so it only initialises when using new, not when on stack
10:37:15 <TrueBrain> so when do we switch to class-member initialization bla? :D
10:38:10 <LordAro> looks like the constructor already does nearly everything
10:38:49 <frosch123> LordAro: the filename-constructor does nearly nothing :p
10:39:01 <LordAro> was looking at the other one
10:45:58 <TrueBrain> sometimes hacking things into existing codebase is tricky .. for some reason openttd.grf never gets into the GCS_INITIALISED state
10:46:13 <TrueBrain> but I might want to use another grf as example grf :P
10:46:21 <TrueBrain> where can I find the smallest possible valid grf? :D
10:49:45 <TrueBrain> downloaded one from TrueGRF :D ME SMART
10:54:17 <TrueBrain> lol ... I was seeking to the beginning of the file with SEEK_CUR
10:54:19 <TrueBrain> that .. is not working :P
11:01:05 <TrueBrain> yippie, I can finally load a GRF correctly from a buffer ... now let's see if the fuzzer can do anything with it :D
11:01:17 <TrueBrain> the domain is way too big for it to be actually useful I am afraid, but .. we will see
11:10:42 <TrueBrain> lol, it actually found a bug already :)
11:10:54 <TrueBrain> but they seem to be somewhat rare .. so we sanitize the user input pretty decent :)
11:11:25 <TrueBrain> ReadRecolourSprite can cause an issue in DeleteEntryFromSpriteCache
11:11:50 <TrueBrain> if (best == UINT_MAX) error("Out of sprite memory");
11:11:59 <TrueBrain> okay, maybe not a bug
11:12:10 <TrueBrain> just "error" is a bit harsh I would think for a DeleteEntry function :D
11:31:20 *** andythenorth has quit IRC (Ping timeout: 480 seconds)
11:31:39 <frosch123> maybe just fuzz DecodeSpecialSprite
11:37:39 *** andythenorth has joined #openttd
11:41:12 *** andythenorth has quit IRC ()
11:54:08 *** sla_ro|master has quit IRC ()
11:58:35 <TrueBrain> would avoid these crashes indeed :P
11:59:00 <TrueBrain> euh, no, it wouldn't
11:59:06 <TrueBrain> lol, I should look at backtraces more carefully :D
11:59:25 <TrueBrain> this is an action12 crashing because of too little memory ;)
12:00:27 <frosch123> at least it is the least used action :p
12:00:37 <frosch123> hmm, no, action13 is even less used
12:02:22 <TrueBrain> it found 40 ways to crash so far, all because of ReadRecolourSprite :D
12:03:08 <TrueBrain> we could just return a nullptr and make it exit gracefully
12:07:52 <TrueBrain> yeah, that seems to fix the issue too :)
12:11:06 <TrueBrain> but I like your idea of fuzzing that specific function only... lot quicker at least I imagine
12:12:31 <TrueBrain> wow, DecodeSpecialSprite does influence a lot of state .. haha
12:14:40 <TrueBrain> problem of only calling DecodeSpecialSprite, that a lot of actions do things like LoadNextSprite
12:14:47 <TrueBrain> which crash if that isn't setup correctly :)
12:17:25 <TrueBrain> NewGRF loading makes a lot of assumptions on the state of _cur, basically :)
12:32:17 <TrueBrain> no, tried a few things, but that is too heavily coupled .. too bad :P
12:33:41 <TrueBrain> heavily? Strongly? Pick one, I don't care
12:41:07 <frosch123> too bad, so we have to keep on relying on truegrf output to fuzz ottd
12:41:31 <TrueBrain> well, I am fuzzing complete GRFs now, which somewhat works
12:41:38 <TrueBrain> it already found 1600 unique ways to make an invalid GRF :P
12:41:52 <TrueBrain> just slow .. 200 executions per second slow
13:31:29 *** andythenorth has joined #openttd
14:03:02 <andythenorth> it's immediately better, with minimal downsides
14:07:31 <peter1138> Mmm, 78 kmh downhill
14:11:16 *** virtualrandomnumber has joined #openttd
14:11:37 *** virtualrandomnumber has quit IRC (Remote host closed the connection)
14:12:16 <andythenorth> peter1138 :o no headwind?
14:12:27 <andythenorth> that's quite fast
14:12:36 *** virtualrandomnumber has joined #openttd
14:13:06 *** virtualrandomnumber has quit IRC ()
14:14:13 *** andythenorth_ has joined #openttd
14:16:07 <peter1138> Steepest part of that descent is 15%, one of the steeper ones around here, but nothing compared to some places.
14:21:40 *** andythenorth has quit IRC (Ping timeout: 480 seconds)
14:32:13 *** andythenorth_ has quit IRC (Quit: andythenorth_)
14:47:55 *** andythenorth has joined #openttd
14:48:30 *** andythenorth has quit IRC ()
15:05:38 *** sla_ro|master has joined #openttd
15:07:43 *** Montana_ has joined #openttd
15:09:33 *** Wormnest has joined #openttd
15:32:56 *** Montana_ has quit IRC (Quit: Leaving)
16:12:43 *** andythenorth has joined #openttd
16:15:34 *** rafalk42 has joined #openttd
16:39:00 *** Smedles has joined #openttd
17:01:25 *** HerzogDeXtEr has quit IRC (Read error: Connection reset by peer)
17:02:32 *** HerzogDeXtEr has joined #openttd
17:05:28 *** lobstarooo has joined #openttd
17:05:45 *** lobstarooo_ has joined #openttd
17:12:44 *** lobster has quit IRC (Ping timeout: 480 seconds)
17:12:49 *** lobstarooo_ is now known as lobster
17:13:30 *** lobstarooo has quit IRC (Ping timeout: 480 seconds)
17:18:39 <nielsm> any opinions whether #9923 should be closed, or something done to detect the invalid GRF configuration and do something about it (even if just show a warning)?
17:22:36 <andythenorth> how did an invalid configuration arise? :P
17:22:53 <nielsm> the gamelog doesn't show anything suspicious
17:23:20 <nielsm> honestly I'm not sure how it can have happened
17:23:37 * andythenorth wonders if grf can re-write it's own params
17:23:50 <andythenorth> can definitely assign params at some point during loading
17:24:18 <nielsm> could it maybe be editing the config file before starting the game? and then the range doesn't get validated or something
17:24:32 <frosch123> you can enter grf parameters in openttd.cfg
17:24:55 <andythenorth> 14 years of OpenTTD, this is the first confirmed report I've seen of this issue
17:24:56 <frosch123> yes, there is no real validation, it's just the gui not offering all parameters
17:25:07 <andythenorth> I've caused my own invalid parameters many times in grf dev
17:25:27 <andythenorth> not convinced this needs a fix, but eh
17:42:29 <Samu> holy crap, I think I did it1
17:43:35 <Samu> it's so slow at pathfinding
17:43:44 <Samu> but... looks like it works
17:43:49 <Samu> need to test on a larger map
17:44:32 <Samu> or maybe i'm seeing this wrong
17:46:02 <Samu> there's still something amiss
17:46:35 <Samu> the diagonal tracks could be a bit more closer
17:54:51 <glx> next step will be to find shorter path
17:56:24 *** Smedles has joined #openttd
18:00:49 <Samu> well, 90 degrees isn't working :(
18:01:24 <Samu> dont really understand why...
18:01:33 <Samu> well, another think to look for
18:42:35 *** felix has quit IRC (Read error: Connection reset by peer)
18:54:09 <Samu> i dont understand why 90 degrees isn't being detected, the code is there! something is broken
19:01:10 <peter1138> It's not quite 90 degrees today, more like 85.
19:01:48 <andythenorth> nearly warm enough
19:06:56 <nielsm> ohttps://www.tt-forums.net/viewtopic.php?p=1254188#p1254188 still trying to call in the construction crew for a skyscraper to get a dog house built
19:08:36 <andythenorth> world has many people in it
19:09:18 <frosch123> another reason for not adding vehicles to truegrf :p
19:11:23 <Samu> found the issue, for some reason pprev_tile is 0 :(
19:11:54 <Samu> it's official, i suck at getting the previous tile
19:14:22 <LordAro> peter1138: feels like more than that
19:17:25 *** frosch123 has quit IRC (Quit: be yourself, except: if you have the opportunity to be a unicorn, then be a unicorn)
19:25:33 *** Wormnest has quit IRC (Ping timeout: 480 seconds)
19:26:03 <Samu> i actually feel like reworking GetPreviousNode
19:26:41 <Samu> it's slow, and apparently it's cumbersome
19:32:10 *** ChanServ sets mode: +v tokai
19:38:45 *** tokai|noir has quit IRC (Ping timeout: 480 seconds)
19:44:00 <NGC3982> so how's openttd-vr going along?
19:44:11 <NGC3982> been investing in oculus ever since i heard the news
19:44:47 *** gelignite has quit IRC (Read error: Connection reset by peer)
19:45:44 *** gelignite has joined #openttd
19:51:38 <peter1138> LordAro, Strava says 16 degree C... maybe at 8.30 it was!
19:56:10 *** nielsm has quit IRC (Ping timeout: 480 seconds)
20:02:18 *** Wormnest has joined #openttd
20:04:36 <Samu> 90 degrees detected! I think i solved GetParents for now (again)
20:27:29 *** gelignite has quit IRC (Read error: Connection reset by peer)
20:39:08 *** WormnestAndroid has quit IRC (Ping timeout: 480 seconds)
20:39:10 *** WormnestAndroid has joined #openttd
20:40:07 *** Flygon has quit IRC (Remote host closed the connection)
20:51:08 <Samu> wow, the GetParents was more buggy than I thought
20:51:35 <Samu> I even get confused, thinking the behaviour i had before was okay for everything else, but it wasn't
20:53:28 <Samu> it surprises me how this even made tracks connected
20:53:45 <Samu> it's because pprev_tile wasn't really being tested
21:06:25 *** geli has quit IRC (Quit: Stay safe!)
21:14:41 *** Montana_ has joined #openttd
21:36:11 *** andythenorth has quit IRC (Quit: andythenorth)
22:06:05 *** Samu has quit IRC (Ping timeout: 480 seconds)
22:13:44 *** bootmii has joined #openttd
22:14:11 <bootmii> why is FluidSynth so quiet
22:31:08 *** HerzogDeXtEr has quit IRC (Read error: Connection reset by peer)
22:45:14 *** sla_ro|master has quit IRC ()
23:10:57 *** esselfe has quit IRC (Quit: rebooting)
23:20:27 *** esselfe has joined #openttd
23:23:05 *** bootmii has quit IRC (Quit: Page closed)
23:41:10 *** rafalk42 has quit IRC (Ping timeout: 480 seconds)
continue to next day ⏵