| Time |
Nick |
Message |
| 00:00 |
user333_ |
also i recently realized that having 10 stacks of cobble in your inventory is equal to having a cubic kilometer of rocks in your backpack |
| 00:00 |
user333_ |
no |
| 00:00 |
user333_ |
1000 cubic meters |
| 00:00 |
user333_ |
a lot |
| 00:02 |
rubenwardy |
I really like adding translation support to my software. I do it a lot from the start as it's so much easier then |
| 00:02 |
rubenwardy |
I wish I was multilingual |
| 00:03 |
cheapie |
I mostly only speak English - I can read (but not really write) most Spanish, and a few dozen words in German, and that's about it |
| 00:04 |
erle |
user333_ compressed cobble is where it is |
| 00:04 |
erle |
user333_ so voxelibre has this idea of compressed cobble. like 9 cobble = 1 compressed cobble |
| 00:04 |
erle |
you can of course doubly compress cobble |
| 00:05 |
rubenwardy |
I think I like it because it increases the usability of an application without too much cost (usually) and also opens it up to a wider audience |
| 00:05 |
erle |
it's very funny to just hand someone a single 8 times compressed cobble |
| 00:05 |
cheapie |
Said German is mostly just enough to do random in-game shitposting in Bonnthal: https://cheapiesystems.com/media/images/screenshot_20251024_150020.png |
| 00:05 |
rubenwardy |
Renewed Tab has a lot of German and Chinese speaking users. It was even featured in a German tech magazine |
| 00:05 |
erle |
rubenwardy didn't you have another language in school? |
| 00:05 |
rubenwardy |
I did French at school but I messed around and have forgotten it. I didn't do any foreign languages at GCSE |
| 00:05 |
erle |
i learned english in german school. i also had exposure to dutch, italian, and for years i did latin. |
| 00:06 |
erle |
from latin i remember that gallia is divided into three parts! |
| 00:06 |
rubenwardy |
others had the option of German or Spanish |
| 00:06 |
erle |
basically what you need to understand asterix |
| 00:07 |
erle |
i once read an article about how to be a cool old person, learn a new language every 10 years or so |
| 00:07 |
erle |
then again, i think one needs a reason |
| 00:07 |
erle |
i never found anyone who knows arabic enough to add support for letter shaping to unicode_text |
| 00:07 |
rubenwardy |
my reason is that I'd like to escape this hateful island |
| 00:08 |
erle |
UK? |
| 00:08 |
rubenwardy |
yes |
| 00:08 |
erle |
if so, you are not the first person who hates it there and explictly says it's full of hate |
| 00:08 |
erle |
also i heard it has no high speed rail |
| 00:09 |
rubenwardy |
there's HS1, the eurostar |
| 00:09 |
erle |
rubenwardy well the complaint came from a guy from manchester |
| 00:09 |
erle |
i am willing to believe that there is no high speed rail from there to london |
| 00:09 |
rubenwardy |
ah yeah that was HS2 |
| 00:10 |
erle |
oh lol |
| 00:10 |
erle |
so you have one (1) high speed rail |
| 00:10 |
rubenwardy |
HS2 is under construction but is massively over budget, delayed, and sabotaged. The original idea was to link London, Birmingham, and Manchester together but the government cancelled the Manchester bit |
| 00:10 |
rubenwardy |
the Birmingham-Manchester bit was much more important than Birm-London |
| 00:10 |
erle |
yes he explained that using bottles (we were at a bar) |
| 00:10 |
erle |
“this bottle is manchester, this is london, and this is somewhere in between like 5 miles outside london. this is where construction stopped” |
| 00:11 |
erle |
something like that |
| 00:11 |
erle |
a british gal also told me that if your smartcard is from a transport union (or how it's called) that is too far away from your destination, you can not load “tram credits” on it. |
| 00:11 |
rubenwardy |
i do not know what this means |
| 00:11 |
erle |
“tram credits?” i asked? turns out the british digitalization involves replicating every paper ticket on a smartcard that doesn't have enough space |
| 00:12 |
erle |
i pointed out that the german d-ticket just uses the smart card as “i am allowed to take any regional transport” and it seemed alien to her |
| 00:12 |
erle |
then again, later i understood why |
| 00:12 |
erle |
in germany, politicians decided that “one ticket for a months” means no tracking etc. – but different regional transport operators exist |
| 00:12 |
erle |
so the reconciliation is a job for the politicians |
| 00:13 |
erle |
whereas in UK and NL you have tracking solutions that automatically assign money to whatever operator did each leg of your journey |
| 00:13 |
cheapie |
erle: https://cheapiesystems.com/media/images/screenshot_20251101_191300.png |
| 00:13 |
erle |
cheapie this amused me more than it had any right to do |
| 00:14 |
rubenwardy |
it's very cool how in german you have the deutschland ticket for all public transport and regional rail in a month |
| 00:14 |
erle |
cheapie i almost shat myself laughing |
| 00:14 |
cheapie |
heh |
| 00:14 |
rubenwardy |
like just our city monthly tickets are 3x that |
| 00:15 |
[MatrxMT] |
<y5nw> rubenwardy: monthly subscription tickets were not particularly cheap before the introduction of the D-Ticket |
| 00:15 |
cheapie |
erle: It used to say Brandfall of course, but I'm not sure it was ever anywhere near the elevators... at least right now, the elevators are at the other end of the building |
| 00:15 |
erle |
rubenwardy yeah i realized it whenn i went to NL |
| 00:15 |
erle |
rubenwardy in NL just taking the train one way for 3 hours and back costs the same as d-ticket for a month |
| 00:16 |
erle |
rubenwardy what you have to understand about the d-ticket is that it was politicians finally doing something good for the people that was tangible for millions … and they could have done before! just the conservative-led governments never did so. |
| 00:17 |
erle |
rubenwardy i find it kinda depressing to know that this *could* be done easily all along |
| 00:17 |
erle |
but a merkel govt. would never |
| 00:19 |
erle |
rubenwardy the nice thing is that no no politcian wants to be the one that abolishes it. but they'll probably make it more and more expensive. |
| 00:19 |
erle |
can't have good public transport. after all, germany is land of cars! |
| 00:19 |
erle |
rubenwardy is german or dutch difficult for you if you are english monolingual? |
| 00:43 |
rubenwardy |
dk |
| 00:43 |
rubenwardy |
idk |
| 00:44 |
rubenwardy |
I've only started learning some German. It seems a bit easier to understand than French but the sentences are currently very simple |
| 00:44 |
rubenwardy |
I've heard Swedish is the easiest to learn from English |
| 00:56 |
rubenwardy |
Anyway. Translation instructions here ;) https://github.com/luanti-org/luanti-org.github.io/?tab=readme-ov-file#for-translators |
| 01:25 |
|
YuGiOhJCJ joined #luanti |
| 02:05 |
|
Eragon joined #luanti |
| 02:08 |
|
Confines joined #luanti |
| 02:08 |
Confines |
user333_ thx for 270,000 server joins |
| 02:11 |
user333_ |
:D |
| 02:11 |
user333_ |
yw |
| 02:11 |
mrcheese |
XDDD |
| 02:12 |
mrcheese |
i also did that :PPP |
| 02:12 |
user333_ |
i will now credit mrcheese as my unidentified friend |
| 02:12 |
user333_ |
what happened to the server this time? |
| 02:13 |
mrcheese |
yea lol what happened |
| 02:19 |
[MatrxMT] |
<Blockhead256> when a brit says hateful, it just means an object of their own hate |
| 02:19 |
rubenwardy |
terf island |
| 02:19 |
[MatrxMT] |
<Blockhead256> it's meant both ways this time, of course |
| 02:21 |
[MatrxMT] |
<Blockhead256> maybe you can just move to wales or scotland and they'll leave the union |
| 02:22 |
repetitivestrain |
i'd have used "infernal" or a similarly vicious qualifier in the interests of the more cosmopolitan audiences here :-) |
| 02:23 |
repetitivestrain |
although rubenwardy's meaning was manifest in context |
| 02:24 |
repetitivestrain |
i have however observed that luanti is an overwhelmingly dach affair |
| 02:24 |
repetitivestrain |
for reasons unknown |
| 02:25 |
[MatrxMT] |
<Blockhead256> gee, mostly barebones and not pretty; free software... advtrains, technic, celevator.. I think it's just perfect for germans |
| 02:26 |
[MatrxMT] |
<Blockhead256> I'm not saying Germans don't like pretty things, but, there are enough "simulationen" out of that country |
| 02:55 |
|
SwissalpS joined #luanti |
| 03:03 |
Confines |
I turned off the server until I had time to patch that |
| 03:03 |
Confines |
It was doing fine but the db was about 24mb so I didn't wanna leave it on creating entries |
| 03:17 |
user333_ |
so we didnt crash it :c |
| 03:19 |
user333_ |
well i found 3 exploits to break your server, let's see what else i can find |
| 03:25 |
mrcheese |
:P |
| 03:26 |
mrcheese |
24MB.... thats insane XD |
| 03:26 |
user333_ |
yeah, and not nearly enough to crash it |
| 03:33 |
mrcheese |
yea |
| 03:34 |
mrcheese |
well leave it running for like a week or smth |
| 03:34 |
user333_ |
Confines is patching it as we speak, we need to find a new exploit |
| 03:36 |
Confines |
Alright, that is all patched |
| 03:36 |
Confines |
I mean those hardly broke the server, it was working fine lmao |
| 03:37 |
user333_ |
true, but it is annoying |
| 03:37 |
Confines |
true |
| 03:37 |
Confines |
I was gonna do some fun coding :wilted_rose: |
| 03:38 |
user333_ |
now open an irc channel for me :P |
| 03:38 |
Confines |
I should do that |
| 03:39 |
user333_ |
yes, i have proven myself worthy of joining you, haven't i? |
| 03:40 |
Confines |
Lol |
| 03:40 |
MTDiscord |
<nathan4220776> Kinky. |
| 03:44 |
mrcheese |
:P |
| 03:55 |
user333_ |
now to find some new exploit |
| 03:56 |
MTDiscord |
<nathan4220776> Excellent. |
| 03:56 |
user333_ |
you sound happy that i'm trying to destroy your backend server |
| 04:00 |
|
MTDiscord joined #luanti |
| 04:02 |
MTDiscord |
<nathan4220776> It's not my server. |
| 04:02 |
MTDiscord |
<nathan4220776> ( ͡° ͜ʖ ͡°) |
| 04:03 |
user333_ |
"TeamAcedia's server", whichyou should also care about bc you kinda rely on it :P |
| 04:03 |
user333_ |
*which you |
| 04:03 |
MTDiscord |
<nathan4220776> Nah. |
| 04:05 |
Confines |
We rely on nathan not the other way around |
| 04:05 |
Confines |
where else would we see the word Kinky |
| 04:06 |
user333_ |
uh... in a tube manufacturing factory |
| 04:14 |
|
YuGiOhJCJ joined #luanti |
| 04:21 |
|
silverwolf73828 joined #luanti |
| 04:22 |
Confines |
user333_ join #teamacedia |
| 04:23 |
mrcheese |
whats stopping others from joining? :P |
| 04:23 |
Confines |
Nothing |
| 04:23 |
Confines |
its public |
| 04:25 |
|
Confines joined #luanti |
| 04:27 |
user333_ |
ooo |
| 04:46 |
|
Guest70 joined #luanti |
| 06:13 |
|
FeXoR joined #luanti |
| 06:20 |
|
SFENCE joined #luanti |
| 06:39 |
|
SFENCE joined #luanti |
| 08:29 |
|
Talkless joined #luanti |
| 09:03 |
MinetestBot |
[git] cx384 -> luanti-org/luanti: Fix missing airlike buffer info f2eabdd https://github.com/luanti-org/luanti/commit/f2eabdd1d521beba20f210b95517e249a63995ee (2025-11-02T09:01:53Z) |
| 09:22 |
|
Warr1024 joined #luanti |
| 09:32 |
|
jaca122 joined #luanti |
| 09:47 |
|
Warr1024 joined #luanti |
| 10:19 |
|
YuGiOhJCJ joined #luanti |
| 10:26 |
|
jemius joined #luanti |
| 10:30 |
|
mrkubax10 joined #luanti |
| 10:51 |
|
panwolfram joined #luanti |
| 11:06 |
|
stg-developer joined #luanti |
| 11:46 |
|
turtleman joined #luanti |
| 12:34 |
|
mrkubax10 joined #luanti |
| 12:52 |
|
ireallyhateirc joined #luanti |
| 13:24 |
|
SFENCE joined #luanti |
| 13:24 |
[MatrxMT] |
<birdlover32767> i can't get `core.sound_play` working in `core.after` |
| 13:25 |
[MatrxMT] |
<birdlover32767> oh whoops, i used an unknown sound and it didn't warn me |
| 13:27 |
|
SFENCE joined #luanti |
| 13:28 |
|
mrkubax10 joined #luanti |
| 13:45 |
MTDiscord |
<et086> how should it warn you |
| 13:48 |
|
SFENCE joined #luanti |
| 13:51 |
|
PoochInquisitor joined #luanti |
| 13:53 |
cheapie |
et086: A warning on the client that it was asked to play a sound it doesn't have (like it does with textures) would be nice |
| 13:53 |
MTDiscord |
<et086> the issue is that the engine makes sounds to things like player_jump, which don't have to exist |
| 13:54 |
cheapie |
Could those just be excluded from that? |
| 13:54 |
MTDiscord |
<luatic> we can modify SoundMaker in game.cpp |
| 13:56 |
MTDiscord |
<luatic> hmm SoundSpec::use_local_fallback seems related, but is always true? |
| 13:58 |
sfan5 |
the server could warn for this, since it knows all sound files |
| 13:59 |
[MatrxMT] |
<Blockhead256> CSMs need extra files in $PATH_USER/sounds to play sounds... but they can play any sound from the server too I think |
| 13:59 |
[MatrxMT] |
<Blockhead256> at least I don't remember media working properly for CSMs |
| 13:59 |
[MatrxMT] |
<Blockhead256> sorry to even mention them :P |
| 14:10 |
|
pgimeno joined #luanti |
| 14:20 |
erle |
user333_ did you read the LANGSEC thing |
| 14:26 |
user333_ |
some of it |
| 14:28 |
erle |
user333_ how much |
| 14:29 |
user333_ |
a few pages, i have things to do irl yk :P |
| 14:39 |
|
Confines joined #luanti |
| 15:00 |
|
SFENCE joined #luanti |
| 15:10 |
|
SFENCE joined #luanti |
| 15:23 |
|
rubenwardy joined #luanti |
| 15:23 |
|
rubenwardy joined #luanti |
| 15:23 |
rubenwardy |
test |
| 15:25 |
cheapie |
test failed |
| 15:30 |
erle |
user333_ tell me when you have read and comprehended seven turrets of babel |
| 15:31 |
user333_ |
uhhh ok |
| 15:43 |
Krock |
test failed (copy 2) |
| 15:45 |
user333_ |
test failed successfully |
| 16:08 |
|
silverwolf73828 joined #luanti |
| 17:54 |
|
Desour joined #luanti |
| 18:06 |
|
SFENCE joined #luanti |
| 18:27 |
|
mrcheese joined #luanti |
| 19:27 |
|
MTDiscord1 joined #luanti |
| 19:29 |
|
MTDiscord2 joined #luanti |
| 19:33 |
|
BuckarooBanzai joined #luanti |
| 19:33 |
|
amfl2 joined #luanti |
| 19:33 |
|
repetitivestrain joined #luanti |
| 19:34 |
|
behalebabo joined #luanti |
| 19:38 |
|
SwissalpS joined #luanti |
| 19:38 |
|
user333_ joined #luanti |
| 19:38 |
|
sugarbee1 joined #luanti |
| 19:38 |
|
fluxionary joined #luanti |
| 19:38 |
|
sofar joined #luanti |
| 19:38 |
|
Thermoriax joined #luanti |
| 19:38 |
|
lmisu joined #luanti |
| 19:45 |
|
tzenfore joined #luanti |
| 19:46 |
|
user333_ joined #luanti |
| 20:04 |
|
Talkless joined #luanti |
| 20:26 |
|
oneeyedalien joined #luanti |
| 20:35 |
MinetestBot |
[git] SmallJoker -> luanti-org/luanti: Break include chains and tidy (#16640) 329e210 https://github.com/luanti-org/luanti/commit/329e21032647863879737f7d198a5a2bc87ccc9d (2025-11-02T20:33:10Z) |
| 20:37 |
MinetestBot |
[git] sfan5 -> luanti-org/luanti: Default-initialize SColor 8350fb7 https://github.com/luanti-org/luanti/commit/8350fb734abf9ead60517fb2ed7fb0da8d923de7 (2025-11-02T20:36:39Z) |
| 20:38 |
|
crazylad joined #luanti |
| 20:39 |
MTDiscord |
<bastrabun> I'm experiencing a memoryleak-looking issue with a 5.12.0 server when I have rollback enabled. I have no way to prove the issue on a testserver since it requires a lot of people doing a lot of things (500k to 1.2M actions per day). Please advise: Report now as 5.12.0 issue or wait till we upgraded main to 5.14.0 and try again there? |
| 20:40 |
sfan5 |
don't report issues for outdated engine versions |
| 20:40 |
MTDiscord |
<bastrabun> The vector change in 5.13.0 prevents upgrading until every mod is fixed |
| 20:40 |
sfan5 |
vector change? |
| 20:40 |
sfan5 |
also rollback is pretty pointless, I wouldn't recommend anyone to use it |
| 20:41 |
cheapie |
Rollback works alright since the changes a year-ish ago |
| 20:41 |
MTDiscord |
<bastrabun> Vector change: "Vectors passed to C++ API functions may no longer have nil components." |
| 20:41 |
MTDiscord |
<bastrabun> Apparently some mods do not consider that and crash. We have plenty of those unfortunately. |
| 20:41 |
sfan5 |
that's misleading, it only raises a warning |
| 20:43 |
MTDiscord |
<bastrabun> Rollback: We used it extensively, our rollback databases exceeded 100 GB quite often and there are items relying on it. It doesn't work in any case, but for us it was more than "good enough". We only found that the memory issue is tied to rollback by accident. |
| 20:43 |
sfan5 |
cheapie: in practice what do you use rollback for? I wouldn't trust the code to revert changes correctly |
| 20:43 |
cheapie |
sfan5: For figuring out who griefed a thing and rolling back the destruction, generally speaking it seems to do this no problem |
| 20:44 |
cheapie |
We do have a cleanup script that runs nightly to get rid of actions older than a certain age (how old depends on the privs of the player who did them) to keep the DB from growing indefinitely |
| 20:45 |
erle |
bastrabun how can an item rely on rollback? |
| 20:45 |
sfan5 |
hmm |
| 20:46 |
MTDiscord |
<luatic> erle: can't speak for bastrabun, but some servers make the ability to inspect rollback logs for certain areas a game mechanic |
| 20:46 |
erle |
i didn't know that was possible, the moar you know |
| 20:46 |
cheapie |
Looks like at the moment I have it set for 90 days for most players, and immediately (every night) for players with the "daily_rollback_cleanup" priv |
| 20:46 |
MTDiscord |
<bastrabun> Regarding the "vector change": We upgraded our testserver to 5.13.0 and mods crash when we use vector-y things, where 5.12.0 does not crash doing the same action. |
| 20:47 |
MTDiscord |
<luatic> what does the crash say? |
| 20:47 |
crazylad |
luatic: yes, iirc the Your Land server has such a tool to open a formspec revealing the rollback logs |
| 20:47 |
MTDiscord |
<bastrabun> erle: We have a craftable magnifier that shows who did what on the clicked position |
| 20:48 |
sfan5 |
https://github.com/luanti-org/luanti/commit/a5263dc7e the relevant commit btw |
| 20:48 |
sfan5 |
and https://github.com/luanti-org/luanti/commit/5c2599315 |
| 20:48 |
MTDiscord |
<bastrabun> It does not perform rollbacks (that's for staff only), but it shows actions on a block. |
| 20:51 |
MTDiscord |
<luatic> Bastrabun: i understood you're fairly sure that this is related to rollback? how? |
| 20:52 |
MTDiscord |
<luatic> and if so, can you maybe it narrow a bit further, e.g. were there substantial queries (via core.rollback_get_node_actions), substantial reverts? |
| 20:54 |
MTDiscord |
<luatic> it looks like action_latest_buffer might never be cleared? |
| 20:55 |
MTDiscord |
<luatic> in rollback.cpp |
| 20:55 |
MTDiscord |
<luatic> see RollbackManager::addAction(const RollbackAction & action) |
| 20:56 |
sfan5 |
RollbackManager::flush() does that |
| 20:56 |
sfan5 |
wait |
| 20:56 |
MTDiscord |
<luatic> only the other one 🙃 |
| 20:57 |
MTDiscord |
<luatic> action_todisk_buffer.clear();, but i see no line that would ever shrink action_latest_buffer |
| 20:58 |
MTDiscord |
<luatic> looking at all references via clangd, it seems this might be a leak |
| 20:58 |
MTDiscord |
<bastrabun> luatic: I am fairly sure only due to the fact that with rollback enabled and beetween 500k and 1.2M dig and place actions per day, we never made it beyodn 20 day uptime. I occasionally asked in discord providing htop screenshots what might be the cause, in short it shows crazy numbers like 70GB virt memory and 30 GB res memory usage. It increases somewhat linearly over time until we restart or the inevitable OOM hits. Then, with no other |
| 20:58 |
MTDiscord |
change, we disabled rollback and ever since virt memory was around 10 GB and res between 5 GB and 7 GB, with an uptime of 9d. At that time, with rollback, we'd already have hit 20Gb res easily |
| 20:59 |
sfan5 |
the RollbackManager::getSuspect logic is a bit weird but I guess the idea is that it should only concern recent actions |
| 20:59 |
MTDiscord |
<bastrabun> We hardly ever "roll back" actions and even the tool mentioned is expensive and not used terribly often, so I assume entering into the DB is what causes it |
| 20:59 |
MTDiscord |
<luatic> sfan5: my guess would be that that was the plan but either the logic for clearing got removed or never written 🙃 |
| 21:00 |
sfan5 |
the fact that rollback has had an obvious memory leak apparently since its inception says a lot about how well supported this feature is |
| 21:03 |
MTDiscord |
<bastrabun> If there is any way we could help debug the problem, do say. That's why I asked whether to open an issue on the old version, so that we can discuss there. |
| 21:03 |
cheapie |
I guess I've never noticed the leak since VE-C restarts every night for backup and maintenance |
| 21:03 |
MTDiscord |
<luatic> Bastrabun: I think we have at least one plausible culprit, I'll write a patch |
| 21:03 |
MTDiscord |
<luatic> Should be fairly easy, can just drop all actions that are too old |
| 21:05 |
MTDiscord |
<bastrabun> cheapie: We try to avoid restarts as long as players are affected |
| 21:05 |
cheapie |
How do you manage backups? postgres? |
| 21:06 |
MTDiscord |
<bastrabun> hot backups via postgres |
| 21:06 |
cheapie |
And I guess you just do player cleanup live? |
| 21:06 |
MTDiscord |
<bastrabun> We restore immediately afterwards to a testserver to see whether backups is good |
| 21:06 |
MTDiscord |
<bastrabun> player cleanup? |
| 21:06 |
cheapie |
Dropping old accounts that haven't logged in in forever |
| 21:07 |
MTDiscord |
<bastrabun> Player cleanup was discussed, but never acted upon. There's 130k + accounts right now |
| 21:08 |
cheapie |
On VE-C we delete any accounts that haven't logged in after 7 days if they don't have interact, 1 year if they do. Any accounts with any elevated privs never get deleted. |
| 21:09 |
|
whosit joined #luanti |
| 21:11 |
sfan5 |
a piece of good news: the rollback code will break after 2038 |
| 21:11 |
Krock |
horray |
| 21:13 |
MTDiscord |
<bastrabun> Not to worry. We'll ask AI for a quick fix. |
| 21:19 |
|
bgstack15 left #luanti |
| 21:23 |
|
bgstack15 joined #luanti |
| 21:24 |
|
repetitivestrai- joined #luanti |
| 21:24 |
MTDiscord |
<luatic> ah shit now i gotta regenerate my github token |
| 21:24 |
|
BuckarooBanzai4 joined #luanti |
| 21:24 |
MTDiscord |
<luatic> anyways Bastrabun untested, but you can give this a shot: https://github.com/appgurueu/minetest/pull/new/fix/rollback-leak |
| 21:25 |
MTDiscord |
<luatic> wait did i push on the wrong branch.. |
| 21:25 |
|
amfl joined #luanti |
| 21:25 |
MTDiscord |
<luatic> pushed now |
| 21:26 |
sfan5 |
the 100 there is not a seconds value |
| 21:27 |
sfan5 |
well somewhat, but also somewhat not |
| 21:27 |
MTDiscord |
<luatic> sfan5: well i guess i can choose a better variable name, but i don't really want to fix the rollback code relying on time_t being in seconds.. |
| 21:28 |
sfan5 |
no I mean 100 is part of the scoring method somehow |
| 21:28 |
sfan5 |
anyway my fix is while (action_latest_buffer.size() >= 250) { action_latest_buffer.pop_front(); } |
| 21:29 |
sfan5 |
might be a bad idea but I don't expect more than 250 rollback actions to happen in the relevant time frame |
| 21:32 |
MTDiscord |
<bastrabun> Thanks, I will try that patch. For my understanding: This is a PR to master, can I apply this patch on a 5.12.0 server as well? What exactly does it do? "Flush actions" does not mean "remove from rollback database, just from memory? |
| 21:32 |
MTDiscord |
<luatic> "flush" means "remove from memory, add to database" |
| 21:34 |
MTDiscord |
<bastrabun> Alright. Now I only need to find a way to do 1.2M dig or place actions per day on the testserver |
| 21:34 |
SwissalpS |
reverse order, I hope ;) |
| 21:34 |
sfan5 |
!c 1.2 * 1_000_000 / (24*60*60) |
| 21:34 |
MinetestBot |
13.88888888888889 |
| 21:34 |
sfan5 |
!c 1.2 * 1_000_000 / (24*60*60) * 100 |
| 21:34 |
MinetestBot |
1388.888888888889 |
| 21:35 |
MTDiscord |
<luatic> what the patch (the patches) do is they truncate a certain list of recorded rollback actions used internally for suspect blaming if it gets too large, they should apply to 5.12.0 just fine |
| 21:44 |
erle |
i don't get how you can program this without a test case. do you just model the entire state in your head? |
| 21:44 |
erle |
i mean i do have an attention deficit |
| 21:44 |
erle |
so i can't. but can other people do it? |
| 21:58 |
sfan5 |
some more good news: if you're 134217729 nodes away from an action happening you might be wrongly blamed for it |
| 21:58 |
MTDiscord |
<luatic> lol |
| 21:59 |
MTDiscord |
<luatic> erle: personally i try to reason about code statically when i can get away with it and writing a test case seems like too much work |
| 21:59 |
sfan5 |
(due to integer underflow) |
| 21:59 |
|
SFENCE joined #luanti |
| 22:00 |
|
YuGiOhJCJ joined #luanti |
| 22:13 |
|
qqe joined #luanti |
| 22:28 |
erle |
luatic did you ever use framaC or semgrep? |
| 22:29 |
erle |
luatic especially semgrep is *really* useful for reasoning about bugs. but it can't do cross-file control flow. |
| 22:30 |
erle |
luatic i did use semgrep years ago though to analyze dupe bug fixes. turns out that when lizzd fixed a dupe bug at several places in the code i was able to write a semgrep pattern to find one more place to dupe. |
| 22:30 |
erle |
lizzy i mean |
| 22:31 |
erle |
i showed that to coworkers who proceeded to use semgrep with some public “common C and C++ errors” dataset and didn't get *at all* that i was talking about “if you fix a bug, write a semgrep pattern to find the entire category of bugs that are similar to that” or “if you find a security issue, write a semgrep pattern to find other exploitable code in the same project”. |
| 22:32 |
erle |
i mean you can easily write a rule to e.g. find all double-frees |
| 22:32 |
erle |
but that's something other tools do too |
| 22:32 |
erle |
“find me all functions that operate on a variable of type so and so where the value escapes its scope unprocessed” is something most tools *don't* do |
| 22:34 |
whosit |
in our modset we found a bunch of mods doing `if not thing == "something" then` meaning to do `if thing ~= "something" then` instead... using normal grep though ;D I assume there lots more in luanti ecosystem |
| 22:36 |
whosit |
so yeah, figuring out the bug and doing search for similar cases when possible is useful... |
| 22:36 |
whosit |
lots of mods don't assume `puncher ~= nil` in on_punch - and that's also potential crash |
| 22:37 |
whosit |
*I mean, assume not nil |
| 22:37 |
erle |
whosit if i were a coredev i'd write a semgrep rule to run against cdb for every possible API change to check if it was breaking stuff |
| 22:38 |
MTDiscord |
<steyerofoam> if i'm not mistaken semgrep seems to have commercialized it might be worth looking into alternatives |
| 22:38 |
erle |
is it non-free? |
| 22:38 |
erle |
it was always commercial |
| 22:38 |
erle |
whosit the thing is, semgrep can do analysis on the AST. so like if in python you do “import foo as bar” and later “bar.baz()”, then semgrep will find it, if your pattern looks for “foo.baz()” but grep will not |
| 22:39 |
MTDiscord |
<steyerofoam> they changed the licensing around their ruleset i believe |
| 22:39 |
erle |
their ruleset is not what i care much about |
| 22:39 |
erle |
as i said, semgrep with existing rulesets is okay-ish |
| 22:39 |
erle |
but the real power is in making a semgrep rule for bugs or code smell and finding every single one of them |
| 22:39 |
MTDiscord |
<steyerofoam> and have also dropped official support for the free "community edition" if i'm reading this right |
| 22:40 |
whosit |
I agree that being able to grep AST + some semantics is more powerful than just text, just adding real-life luanti examples where there are lots of lurking bugs this can catch |
| 22:40 |
MTDiscord |
<steyerofoam> sorry my statement was slightly incorrect |
| 22:40 |
MTDiscord |
<steyerofoam> it was stated they consider it obsolete |
| 22:40 |
erle |
steyerofoam that is unfortunate. i don't see it here: https://semgrep.dev/docs/getting-started/quickstart-ce |
| 22:41 |
erle |
steyerofoam well even if it is abandoned, it uses tree-sitter, so you can basically rely on it for a while until it bitrots |
| 22:41 |
MTDiscord |
<steyerofoam> erle: i suppose, but there seems to be a fork |
| 22:41 |
erle |
what i also learned is that kotlin + spring is basically not statically analyze-able |
| 22:42 |
erle |
you mean this? https://www.aikido.dev/blog/launching-opengrep-why-we-forked-semgrep |
| 22:42 |
MTDiscord |
<steyerofoam> yeah that's the one |
| 22:43 |
MTDiscord |
<steyerofoam> oh so they took code out of the open-source one judging by that? weird |
| 22:43 |
erle |
> Follow along on X. |
| 22:43 |
erle |
sorry that platform is too hitlerite for me lol |
| 22:44 |
MTDiscord |
<steyerofoam> true but they are still businesspeople to an extent i think so it tracks |
| 22:44 |
MTDiscord |
<steyerofoam> the people who made the fork i mean |
| 22:48 |
erle |
steyerofoam makes sense. lots of companies are interally organized by stalinist principles. |
| 22:48 |
erle |
few are worker-owned collectives or publicly-owned corporations |
| 23:18 |
|
mrcheese joined #luanti |
| 23:26 |
|
mrcheese joined #luanti |
| 23:32 |
|
panwolfram joined #luanti |