Time |
Nick |
Message |
00:15 |
|
AnotherBrick joined #minetest-dev |
01:08 |
|
OldCoder joined #minetest-dev |
01:10 |
|
est31 joined #minetest-dev |
01:40 |
|
AnxiousInfusion left #minetest-dev |
02:06 |
|
crazyR joined #minetest-dev |
02:55 |
|
kaeza joined #minetest-dev |
04:15 |
hmmmm |
github acting weird for anybody? |
04:18 |
kahrl |
it's a bit slow but that's it |
04:44 |
RealBadAngel |
hi guys. http://irc.minetest.ru/minetest-dev/2015-08-04#i_4351489 |
04:44 |
RealBadAngel |
any opinions on that? |
04:50 |
hmmmm |
i'm not really sure i understand the question to be honest |
04:51 |
hmmmm |
wasn't the tileable definition added in a different commit? |
04:52 |
hmmmm |
well nevermind that, i think plantlike should be non-tileable by default. this way everybody's mod works correctly when using fancy graphics |
04:53 |
hmmmm |
everybody, PTAL: https://github.com/kwolekr/minetest/commit/3cc9a69f3a7b5dc6efc46b9c43d0cb781a575d43 |
04:54 |
hmmmm |
est31, kahrl, tbc_x, realbadangel, vanessae even |
04:55 |
RealBadAngel |
hmmmm, tileable flags were added because of parallax mapping. now it turned out that its needed for more stuff because of fsaa |
05:14 |
hmmmm |
TBC_x: Ahhh, thank you, address sanitizer |
05:14 |
hmmmm |
so it turns out that outgoing_reliables_sent is accessed by another thread |
05:15 |
hmmmm |
for the sequence number |
05:22 |
hmmmm |
boy connection.cpp is shit |
05:23 |
hmmmm |
exceptions everywhere, fatal assertion errors on invalid protocol fields, crazy object structuring, multiple threads for no reason at all, i can go on forever |
05:24 |
hmmmm |
i'm going to make it a priority for this to get rewritten in a sane manner next version |
05:56 |
|
OldCoder joined #minetest-dev |
06:06 |
|
Hunterz joined #minetest-dev |
06:14 |
|
Sketch2 joined #minetest-dev |
06:45 |
|
paramat joined #minetest-dev |
06:46 |
paramat |
sfan5 and all, game#607 game#608 |
06:46 |
ShadowBot |
https://github.com/minetest/minetest_game/issues/607 -- Biomes: Improve biome system and v6 mushroom spawning by paramat |
06:46 |
ShadowBot |
https://github.com/minetest/minetest_game/issues/608 -- Default/crafting: Add composting of leaves group to dirt by paramat |
06:46 |
|
paramat left #minetest-dev |
06:57 |
hmmmm |
https://github.com/kwolekr/minetest/commit/1db70a97bacd588e9dc7bce1b3e9679aa7816ed1 |
06:57 |
hmmmm |
PTAL as well |
07:08 |
|
Darcidride joined #minetest-dev |
07:13 |
|
kaeza joined #minetest-dev |
07:47 |
|
est31 joined #minetest-dev |
07:48 |
est31 |
~tell RealBadAngel about http://irc.minetest.ru/minetest-dev/2015-08-04#i_4351489 : I agree, plants should be non-tileable. I don't see any usecase for tiling plant textures. Perhaps we can allow it later to be made tiling in the nodedef, if we find a usecase, but I doubt that. |
07:48 |
ShadowBot |
est31: O.K. |
08:05 |
|
Yepoleb joined #minetest-dev |
08:41 |
|
nore joined #minetest-dev |
08:47 |
|
Gael-de-Sailly joined #minetest-dev |
08:52 |
|
Amaz joined #minetest-dev |
09:02 |
|
leat joined #minetest-dev |
09:06 |
|
Calinou joined #minetest-dev |
09:12 |
|
RealBadAngel joined #minetest-dev |
09:52 |
TBC_x |
oh, does that mean that when a server gets malformed packet it will cause a DoS? |
09:56 |
TBC_x |
that's very smart engineering there |
10:03 |
RealBadAngel |
btw, since when mushrooms grow in grasslands? that kind should grow only in woods |
10:07 |
RealBadAngel |
firelike is also affected by fsaa |
10:10 |
|
H-H-H joined #minetest-dev |
10:31 |
|
rubenwardy joined #minetest-dev |
10:47 |
VanessaE |
~tell est31 plantlike need to be tileable for some nodes in Realtest. that drawtype is used for tree leaves. |
10:47 |
ShadowBot |
VanessaE: O.K. |
10:48 |
RealBadAngel |
VanessaE, then you will have to specify that in nodedef |
10:48 |
VanessaE |
hmmmm's two commits look okay to me from a quick look at the code, haven't tried them though. |
10:49 |
VanessaE |
RealBadAngel: fine by me so long as it's not some hard-coded, non-overrideable feature. |
10:50 |
RealBadAngel |
just for firelike and plantlike tiling will be set by default to false |
10:50 |
RealBadAngel |
if you need to override it, just define it within tiledef |
10:51 |
RealBadAngel |
all other nodes have tiling set to true by default |
10:51 |
VanessaE |
that seems fair then |
10:51 |
VanessaE |
nodebox and mesh drawtypes can probably be se to false also by default |
10:52 |
VanessaE |
well maybe just nodebox... most of the time, those aren't used for tiling |
10:52 |
RealBadAngel |
that doesnt matter for them i think |
10:52 |
VanessaE |
meshes are though - stairs. |
10:52 |
VanessaE |
ok. |
10:53 |
RealBadAngel |
if we find any other case that should be defaulted other way, its easy to add that |
11:05 |
VanessaE |
~tell paramat the compost idea is kinda "meh" in my opinion. you should need to add something to that recipe besides leaves. maybe 8 leaves + 1 dirt in the center --> get 2 or 3 dirt |
11:05 |
ShadowBot |
VanessaE: Error: Spurious ">". You may want to quote your arguments with double quotes in order to prevent extra brackets from being evaluated as nested commands. |
11:05 |
VanessaE |
~tell paramat "the compost idea is kinda "meh" in my opinion. you should need to add something to that recipe besides leaves. maybe 8 leaves + 1 dirt in the center --> get 2 or 3 dirt" |
11:05 |
ShadowBot |
VanessaE: Error: Spurious ">". You may want to quote your arguments with double quotes in order to prevent extra brackets from being evaluated as nested commands. |
11:06 |
VanessaE |
stupid bot. |
11:08 |
|
FR^2 joined #minetest-dev |
11:08 |
|
Gael-de-Sailly joined #minetest-dev |
11:09 |
|
FR^2 left #minetest-dev |
11:09 |
TBC_x |
I did some modifications to ClientInterface |
11:10 |
TBC_x |
now, everything is broken |
11:12 |
VanessaE |
~tell paramat 'the compost idea is kinda "meh" in my opinion. you should need to add something to that recipe besides leaves. maybe 8 leaves + 1 dirt in the center --> get 2 or 3 dirt' |
11:12 |
ShadowBot |
VanessaE: Error: Spurious ">". You may want to quote your arguments with double quotes in order to prevent extra brackets from being evaluated as nested commands. |
11:12 |
VanessaE |
fuck it. |
11:12 |
VanessaE |
TBC_x: oops :) |
11:13 |
TBC_x |
well... I haven't started on doing significant changes yet |
11:13 |
TBC_x |
the goal is to put everything behind ClientInterface |
11:14 |
TBC_x |
No direct modification of RemoteClient outside of that interface should be permitted |
11:15 |
TBC_x |
the existence of ClientInterface::Lock() and ClientInterface::Unlock() was a sign that bad stuff is going on there |
11:15 |
* H-H-H |
gasps @ VanessaE,s laungage :O |
11:17 |
|
nrzkt joined #minetest-dev |
11:17 |
VanessaE |
uh oh |
11:17 |
VanessaE |
now you gotta contend with nrz ;) |
11:19 |
VanessaE |
btw is there a reason windows builds still aren't using a self-extracting zip or whatever? |
11:19 |
rubenwardy |
ShadowBot, is useless |
11:19 |
ShadowBot |
rubenwardy: Error: You must be registered to use this command. If you are already registered, you must either identify (using the identify command) or add a hostmask matching your current hostmask (using the "hostmask add" command). |
11:20 |
rubenwardy |
point proven |
11:22 |
|
proller joined #minetest-dev |
11:28 |
|
T4im joined #minetest-dev |
11:35 |
RealBadAngel |
https://github.com/RealBadAngel/minetest/blob/tiling_fixes/src/script/common/c_content.h |
11:35 |
RealBadAngel |
shall i fix the intendation here? its done with damn spaces |
11:36 |
VanessaE |
no |
11:36 |
VanessaE |
tabs for indentation, but spaces for columnar formatting. |
11:36 |
|
amadin joined #minetest-dev |
11:37 |
VanessaE |
the blank line at 82 can go, though |
11:39 |
RealBadAngel |
thats against any rules |
11:40 |
RealBadAngel |
whole file is wrongly formatted |
11:40 |
VanessaE |
no |
11:40 |
VanessaE |
that's actually the correct way |
11:40 |
VanessaE |
"Add spaces between operators so they line up when appropriate (don't go overboard). For example:" |
11:41 |
VanessaE |
http://dev.minetest.net/Code_style_guidelines#Spaces |
11:41 |
RealBadAngel |
ok |
11:42 |
VanessaE |
except line 67 needs fixed. |
11:44 |
RealBadAngel |
heh "tabs for indentation" |
11:44 |
RealBadAngel |
theres no single tab in that file ;) |
11:44 |
VanessaE |
line 67 is tabbed. |
11:45 |
RealBadAngel |
its added by me |
11:45 |
VanessaE |
well fix it :) |
11:45 |
RealBadAngel |
using spaces for indentation? |
11:45 |
VanessaE |
mmhmm |
11:45 |
VanessaE |
in this case it's required. |
11:45 |
VanessaE |
because you're aligning a param with the others on the page |
11:45 |
RealBadAngel |
tell that to hmmm |
11:47 |
H-H-H |
kids lol |
11:54 |
|
leat joined #minetest-dev |
12:06 |
|
proller joined #minetest-dev |
12:29 |
TBC_x |
to align params use spaces |
12:29 |
TBC_x |
so it is aligned even with wider or shorter tabs |
12:30 |
TBC_x |
if you don't care about aligning, just use an extra tab |
12:35 |
|
kilbith joined #minetest-dev |
12:46 |
TBC_x |
does any mod calling get_player_information utilizes ClientState? |
13:05 |
|
leat joined #minetest-dev |
13:08 |
|
OldCoder joined #minetest-dev |
13:17 |
|
SopaXT2 joined #minetest-dev |
13:21 |
VanessaE |
nrzkt: are we any closer to getting an Apple Store build going? I'm still running into idiots who are using that old 0.4.9 iOS version that can't even render signs_lib correctly. |
13:22 |
sfan5 |
i almost got minetest to work on ios a year (or two) ago |
13:23 |
VanessaE |
eesh |
13:23 |
sfan5 |
with work i mean it goes into the mainmenu |
13:31 |
|
blaise joined #minetest-dev |
13:36 |
|
Darcidride_ joined #minetest-dev |
13:38 |
nrzkt |
nrzkt: to be clear i don't care about mac users and i will not buy a mac and pay a yearly licence to apple shit to publish a free app |
13:38 |
nrzkt |
and to build it |
13:39 |
VanessaE |
well the clones need to be removed from the play store |
13:40 |
VanessaE |
or we need a reliable way to block them |
13:41 |
TBC_x |
just request source code from each of them |
13:42 |
VanessaE |
somehow, I doubt 0.4.7 sources will do us any good :P |
13:43 |
VanessaE |
(I'm told that THAT is how old the still-in-use iOS clones are) |
13:43 |
Calinou |
we should break protocol at every minor version; this is a damn game |
13:44 |
Calinou |
this is not OpenSSL |
13:44 |
VanessaE |
I don't wanna be forced to enable strict version checking again (or whatever the option was called) |
13:44 |
VanessaE |
at least not until 0.4.13 comes out and I can at least be sure most players can GET it. |
13:47 |
nrzkt |
i have an idea to solve this VanessaE, you will be enjoyed |
13:47 |
VanessaE |
? |
13:48 |
nrzkt |
stand up and go install it on each device of your users :D |
13:48 |
VanessaE |
hah! |
13:52 |
|
Robby_ joined #minetest-dev |
13:52 |
TBC_x |
that's briliant idea! |
14:58 |
|
SopaXorzTaker joined #minetest-dev |
15:09 |
|
hmmmm joined #minetest-dev |
15:16 |
rubenwardy |
I left my server running for a few days, and when I came back mapblocks wouldn't load except for the ones I spawned into. |
15:16 |
rubenwardy |
the server uses delete_blocks |
15:17 |
rubenwardy |
it's not sqlite corruption as restarting fixed it |
15:22 |
VanessaE |
check your log, see if your player handle is being deleted. |
15:22 |
VanessaE |
this happens on my creative server because of how entities are being mishandled. |
15:23 |
rubenwardy |
no errors in debug.txt |
15:24 |
rubenwardy |
I guess I need a higher log level |
15:25 |
|
lag01 joined #minetest-dev |
15:27 |
|
nrzkt joined #minetest-dev |
15:48 |
|
Zeitgeist_ joined #minetest-dev |
16:05 |
hmmmm |
hrmm :) |
16:05 |
hmmmm |
crap, delete_area() seems to be a lot more difficult to get right than it seemed like |
16:06 |
hmmmm |
i think I have an idea of how to fix that though, which just involves setting m_static_allowed = false for the objects inside the mapblocks being deleted that happen to be active |
16:12 |
RealBadAngel |
hmmmm, what do you think about #3006 ? |
16:12 |
ShadowBot |
https://github.com/minetest/minetest/issues/3006 -- Fix tiling issues for PLANTLIKE and FIRELIKE with FSAA enabled by RealBadAngel |
16:12 |
hmmmm |
well I see a fatal problem right away |
16:13 |
RealBadAngel |
where? |
16:13 |
hmmmm |
https://github.com/minetest/minetest/pull/3006/files#diff-f44f50a96d13d2421bd5301b7511ee26R222 |
16:13 |
hmmmm |
check out operator precedence for & vs. && |
16:14 |
hmmmm |
actually nevermind, i'm mistaken there |
16:15 |
hmmmm |
still it might be a good idea to surround material_flags & MATERIAL_FLAG_TILEABLE_HORIZONTAL with () |
16:15 |
RealBadAngel |
ok |
16:15 |
RealBadAngel |
anythin more? |
16:17 |
|
Amaz joined #minetest-dev |
16:17 |
hmmmm |
it looks good |
16:18 |
hmmmm |
note that I say this without compiling, testing, or valgrinding it |
16:18 |
hmmmm |
just... please make sure it compiles without any warnings and that it works |
16:18 |
hmmmm |
it doesn't look like any memory is being allocated there so i guess that's okay |
16:19 |
RealBadAngel |
it works ok |
16:19 |
RealBadAngel |
now i will need to push some tiling fixes to the game |
16:20 |
RealBadAngel |
all the grass nodes needs new defs |
16:30 |
|
crazyR joined #minetest-dev |
16:47 |
|
Hunterz joined #minetest-dev |
16:49 |
hmmmm |
oh |
16:49 |
hmmmm |
RealBadAngel: c_content.h is definitely wonky but I'd rather leave it stay consistent with the way it is than change everything |
16:50 |
hmmmm |
we'll do a script/ cleanup at some point |
16:50 |
hmmmm |
you can't deny there is some amount of appeal to how neat and lined up it looks, but it's a horrible violation of our code style |
16:54 |
|
MinetestForFun joined #minetest-dev |
16:56 |
hmmmm |
alrighty |
16:56 |
hmmmm |
est31: you around? re-review https://github.com/kwolekr/minetest/commit/3050bbcf242c57240db719a111076e7cdbe834e7 |
16:56 |
hmmmm |
also what about https://github.com/kwolekr/minetest/commit/fa9afbd4465e8e4c5a9733254b40da5b782e96c0 ? |
16:56 |
|
VargaD joined #minetest-dev |
16:58 |
VanessaE |
hmmmm: how is c_content.h a violation of the coding style? |
16:59 |
hmmmm |
when I say it's good to have operators line up I'm talking about operators on expressions, not function prototypes |
17:00 |
VanessaE |
right, I get that |
17:01 |
VanessaE |
seems to me that if there is "appeal", and spaces are otherwise used for columnar listings as in the examples, then some sort of "it's permissible to..." guideline should added for this case as well. |
17:03 |
hmmmm |
well |
17:03 |
hmmmm |
i did have on the backburner for a while to revamp the coding style rules |
17:04 |
hmmmm |
right now it's just a bunch of things that i (and most others) hate, dumped onto a wiki page |
17:05 |
hmmmm |
in addition to having added rationale for each, what I'd like to do is divide up each into "rule", "guideline", and "suggestion", each of which follow the SHALL/MUST, SHOULD, MAY distinction of RFC 2119 |
17:05 |
VanessaE |
good idea. |
17:06 |
hmmmm |
so what you just said would be covered if we turn most of the purely non-functional "style" rules into guidelines (i.e. must have a good articuable reason for breaking it) |
17:06 |
hmmmm |
but otherwise permissable |
17:07 |
hmmmm |
this is how the the code standards work for the JSF program |
17:07 |
hmmmm |
btw |
17:08 |
VanessaE |
hm? |
17:09 |
hmmmm |
joint strike fighter |
17:09 |
hmmmm |
F-32 |
17:09 |
hmmmm |
35 imean |
17:10 |
VanessaE |
isn't that the one that's massively over-budget and behind-schedule? :) |
17:10 |
hmmmm |
lockheed was mostly responsible for that, we weren't |
17:10 |
hmmmm |
it's like they really don't give a fuck |
17:22 |
|
TBC_x joined #minetest-dev |
17:23 |
TBC_x |
oh, finally they fixed it |
17:25 |
hmmmm |
TBC_x, will this interfere with your modifications? https://github.com/kwolekr/minetest/commit/3050bbcf242c57240db719a111076e7cdbe834e7 |
17:26 |
TBC_x |
I'm not working on that right now |
17:35 |
hmmmm |
okay |
17:36 |
hmmmm |
are you going to do the SharedBuffer race condition? I would but I don't want to take credit for what you found |
17:39 |
TBC_x |
I'm working on ClientInterface, there is too much shared state |
17:39 |
TBC_x |
that is imo causing most havoc |
17:45 |
TBC_x |
I wanted ask est31 about his SRP addition |
17:54 |
VanessaE |
gah, fullscreen in minetest is stupid |
17:55 |
VanessaE |
same image across all three monitors? |
17:55 |
VanessaE |
either it should limit itself to the one monitor the controlling terminal is on, or it should stretch across all. |
18:05 |
|
FR^2 joined #minetest-dev |
18:06 |
|
MinetestForFun joined #minetest-dev |
18:13 |
|
Gael-de-Sailly joined #minetest-dev |
18:26 |
|
crazyR_ joined #minetest-dev |
18:29 |
|
CraigyDavi joined #minetest-dev |
18:33 |
hmmmm |
VanessaE: to be fair, that's irrlicht |
18:33 |
VanessaE |
ok, granted. |
18:35 |
hmmmm |
oh god i wonder what fullscreen does on my setup |
18:35 |
hmmmm |
I have an nvidia card with twinview, and the secondary monitor is to the *left* of the primary one |
18:35 |
hmmmm |
apparently it's too hard for applications to deal with this setup |
18:35 |
VanessaE |
mine is the AMD equivalent to that |
18:35 |
hmmmm |
AMD multimonitor support is actually good. |
18:36 |
VanessaE |
three monitors driven by DVI-D, DVI-D, and HDMI, all piped through AMD's feature |
18:36 |
hmmmm |
this... this is just a crapshoot |
18:36 |
VanessaE |
(not xinerama) |
18:36 |
hmmmm |
hey at least I have as good 3d performance as windows users do :) |
18:36 |
VanessaE |
no strike that, the third one is displayport |
18:47 |
VanessaE |
so, what does it do? :) |
18:49 |
|
lag01 joined #minetest-dev |
18:57 |
|
Gael-de-Sailly joined #minetest-dev |
19:09 |
|
H-H-H joined #minetest-dev |
19:10 |
|
alket joined #minetest-dev |
19:44 |
|
twoelk joined #minetest-dev |
19:51 |
|
Calinou_ joined #minetest-dev |
20:10 |
|
Sketch2 joined #minetest-dev |
20:11 |
|
GunshipPenguin joined #minetest-dev |
20:16 |
nrzkt |
VanessaE: i have analog problem in full screen with MT too. The screen changed for extended to cloned |
20:16 |
VanessaE |
nrzkt: yes, same thing |
20:16 |
nrzkt |
and after exit it stayed cloned :( |
20:17 |
VanessaE |
for me, luckily, it returned to normal. |
20:27 |
GunshipPenguin |
Is there a set 0.4.13 release date at the moment? |
20:31 |
nrzkt |
hmmmm: can you review this little cleanup: #3008 |
20:31 |
ShadowBot |
https://github.com/minetest/minetest/issues/3008 -- Little optimization on getAdded/Removed activeobjects per player loop. by nerzhul |
20:32 |
hmmmm |
god dammit nrzkt |
20:32 |
hmmmm |
FacePositionCache was an optimization that turned out to add a race condition that caused crashes |
20:32 |
nrzkt |
this is not the PR question here |
20:32 |
hmmmm |
i'm just saying |
20:33 |
nrzkt |
i already read what you said. |
20:33 |
hmmmm |
'optimizations' tend to introduce hard to track bugs |
20:33 |
nrzkt |
read the PR before complaining, please |
20:33 |
hmmmm |
I'd rather not rush to conclusions |
20:33 |
hmmmm |
errm, rush to add optimizations so close to release |
20:33 |
hmmmm |
this'll be the first thing after release |
20:33 |
nrzkt |
this is a single thread double call optimization... |
20:34 |
hmmmm |
thing is i'm not perfect |
20:34 |
hmmmm |
i miss things in PRs that I review all the time |
20:34 |
hmmmm |
it's safest to not add things that aren't bugfixes |
20:34 |
nrzkt |
nobody is perfect :) i can ask for a second review if you need on this PR, but it's a very very easy improvement |
20:34 |
nrzkt |
std::set to std::queue for queueing u32 to read them in the callee |
20:35 |
nrzkt |
and second: don't convert position to int to convert it to float in the called functions... |
20:35 |
hmmmm |
see what est31 says |
20:35 |
nrzkt |
okay |
20:35 |
hmmmm |
you know what would be really nice? |
20:36 |
nrzkt |
a world without bugs ? :p |
20:36 |
hmmmm |
if there was a unit test added for addActiveObject/getAddedActiveObjects |
20:36 |
hmmmm |
less optimizations, more unit tests |
20:36 |
hmmmm |
what minetest needs more than ever right now is stability |
20:36 |
nrzkt |
a unit test on this function is very hard to add |
20:36 |
hmmmm |
i'm really tired of seeing the words "crash" "broken" "error" every 5 minutes and i'm sure users are too |
20:36 |
nrzkt |
we need to have a player with objects in the range |
20:37 |
nrzkt |
and objects not in range |
20:37 |
nrzkt |
and then instanciate a set of active objects |
20:37 |
hmmmm |
i would personally prefer to not see this added until after release |
20:37 |
hmmmm |
that's all i'm saying |
20:37 |
nrzkt |
okay. No problem for me |
20:38 |
hmmmm |
i could look at it for an hour and still miss some kind of odd side effect introduced by swapping data structures |
20:38 |
nrzkt |
it's not a so huge improvement, just a little |
20:38 |
hmmmm |
you know minetest.delete_area()? |
20:38 |
nrzkt |
you talk about connection-ugly.cpp ? |
20:38 |
nrzkt |
no, i didn't look at est31 areas |
20:38 |
hmmmm |
no that's my new API i added |
20:38 |
hmmmm |
it seems so simple and so far it caused 3 huge bugs |
20:38 |
hmmmm |
nothing is "trivial" |
20:39 |
nrzkt |
areas are less trivial than a std::queue :p |
20:39 |
nrzkt |
we need a std::area in c++17 |
20:39 |
nrzkt |
:p |
20:39 |
nrzkt |
i looked at a previous thing you said about one thread for MT |
20:39 |
hmmmm |
my point is that Environment and Map and related objects are sooo intertwined that it's almost impossible for any one person to fully understand the impact of their changes |
20:40 |
hmmmm |
it desperately needs cleanup |
20:40 |
nrzkt |
i think we could maybe win some performance by merging emerge + serverthread |
20:40 |
hmmmm |
but so does connection.cpp |
20:40 |
nrzkt |
this will remove many mutex |
20:40 |
hmmmm |
ermrm, i'd rather not |
20:40 |
hmmmm |
that's a horrible idea |
20:40 |
hmmmm |
what we need is smarter locking |
20:41 |
TBC_x |
I'm now stuck at reworking ClientInterface to fix data races and I need informations about est31's SRP |
20:41 |
nrzkt |
yes, i also looked at getNodeNoEx function one hour ago and mapblock data* array. THe data* population is very hard to understand |
20:41 |
nrzkt |
hmmmm: locking on mapblocks ? |
20:41 |
hmmmm |
locking on everything |
20:41 |
nrzkt |
the m_env_mutex is bad |
20:41 |
hmmmm |
freeminer tried this |
20:41 |
nrzkt |
connection thread need only mutex to packet queues |
20:42 |
hmmmm |
proller is STILL fixing race conditions |
20:42 |
nrzkt |
and we need to find emergethread common areas |
20:42 |
hmmmm |
nevermind that |
20:42 |
hmmmm |
let's talk about the current bugs |
20:42 |
hmmmm |
we need to fix the bugs |
20:42 |
nrzkt |
:) |
20:42 |
hmmmm |
we'll add more later |
20:42 |
TBC_x |
hehe |
20:42 |
TBC_x |
more bugs? |
20:42 |
TBC_x |
:) |
20:43 |
hmmmm |
so there's this one guy who is reporting a LUA_ERRERR |
20:43 |
hmmmm |
I had him apply my patch but haven't heard anything back yet |
20:44 |
hmmmm |
i think it would be really nice if it were part of upstream so *anybody* who has an OOM error or double fault can get improved diagnostics |
20:44 |
nrzkt |
running MT in a 32MB VM ? |
20:44 |
hmmmm |
https://github.com/kwolekr/minetest/commit/fa9afbd4465e8e4c5a9733254b40da5b782e96c0 |
20:44 |
hmmmm |
no, out of memory errors happen when something requests an insane amount of memory due to a miscalculation |
20:45 |
hmmmm |
int number_of_things; |
20:45 |
nrzkt |
where is the JAVA GC ? :p |
20:45 |
hmmmm |
if (g_settings->getBool("thing here")) { |
20:45 |
hmmmm |
number of things = blah blah blah; |
20:45 |
hmmmm |
} |
20:45 |
hmmmm |
for (int i = 0; i != number_of_things; i++) { |
20:45 |
hmmmm |
foobars.push_back(new Thing(blah blah blah)); |
20:45 |
hmmmm |
see how easy it was to make an out-of-memory bug? |
20:46 |
nrzkt |
yes but here it's not a lua stack error |
20:46 |
hmmmm |
lua OOM bugs happen the same exact way |
20:46 |
nrzkt |
if you do a memleak in c++ the kernel will kill the process |
20:46 |
TBC_x |
I made this https://github.com/t0suj4/minetest/commit/3449f8df5592f98c115c3884b6ac74a636feb2cd |
20:46 |
TBC_x |
but I'm not gonna make a PR because that does not fix the problem |
20:46 |
TBC_x |
ClientInterface is ill-engineered |
20:47 |
hmmmm |
fixing a data race is still better than nothing |
20:47 |
nrzkt |
yes |
20:47 |
hmmmm |
i'd add it |
20:47 |
TBC_x |
the problem is, it doesn't fix it |
20:47 |
nrzkt |
TBC_x, i miss some time but ClientIface should be removed to have a better, more KISS session system |
20:47 |
hmmmm |
that's alright |
20:47 |
hmmmm |
keep searching I guess :) |
20:47 |
nrzkt |
TBC_x what is the original problem ? |
20:47 |
nrzkt |
lock doesn't solve all |
20:48 |
nrzkt |
you add some useless locks in a previous commit... |
20:48 |
TBC_x |
ClientInterface leaking RemoteClients |
20:48 |
hmmmm |
nrzkt: that was not a useless lock. |
20:48 |
hmmmm |
in any case these aren't random, they come from Thread Sanitizer reports |
20:48 |
nrzkt |
a lock on a variable on only one function called by one thread ? |
20:48 |
TBC_x |
when RemoteClients are in the wild something may concurrently modifi its data |
20:48 |
hmmmm |
did you look close enough? |
20:48 |
hmmmm |
getPeerIDs() is called by 2 different threads, about 5 times total |
20:49 |
nrzkt |
yes, it's right |
20:49 |
hmmmm |
I reviewed it and without a doubt that was the problem |
20:49 |
nrzkt |
but i'm not sure i talked about this |
20:49 |
TBC_x |
I want to remove all getClient() from ClientInterface |
20:49 |
RealBadAngel |
so i am going to merge #3006 now, ok with that? |
20:49 |
ShadowBot |
https://github.com/minetest/minetest/issues/3006 -- Fix tiling issues for PLANTLIKE and FIRELIKE with FSAA enabled by RealBadAngel |
20:49 |
hmmmm |
RealBadAngel: yes, fine |
20:49 |
nrzkt |
TBC_x, why ? |
20:49 |
RealBadAngel |
ok. preparing then PRs for minetest_game |
20:50 |
TBC_x |
because that leaks clients and bad thing may happen |
20:50 |
TBC_x |
and ClientInterface is for interfacing with clients, not to expose them to the cruel world |
20:51 |
TBC_x |
basically let all RemoteClients sit behind the interface |
20:51 |
TBC_x |
and rip out auth and handshake stuff |
20:51 |
RealBadAngel |
wow, not a single whitespace, something new for me ;) |
20:52 |
TBC_x |
as the temporary data are stored for the entire lifetime of clients |
20:53 |
TBC_x |
the only things server packet handlers would do to clients is to setBlocksNotSent |
20:53 |
TBC_x |
through the interface |
20:54 |
nrzkt |
i see |
20:54 |
RealBadAngel |
i think we should fix "holes" in wielded items before release, kahrl do you have any idea how to do that? |
20:55 |
TBC_x |
but I need est31 because his SRP code is in my way |
20:56 |
nrzkt |
One thing in the design is not good |
20:56 |
nrzkt |
Player class is very strange on server side |
20:56 |
nrzkt |
Some attributes should be in PlayerSAO, like HP |
20:56 |
nrzkt |
and some other things like peer_id should be with RemoteClient... |
20:57 |
nrzkt |
and protocol_version too |
20:57 |
TBC_x |
I haven't looked at player class yet |
20:57 |
TBC_x |
but if this is so, it's horrible |
20:57 |
nrzkt |
in fact Player class is used by client & server |
20:58 |
TBC_x |
Player class shouldn't be accessed by server at all |
20:58 |
nrzkt |
client side should be merge with localplayer, (which inherits from player) and server side should be splited. RemoteClient (session) should have a link with SAO if needed, but i don't think this is useful |
20:58 |
TBC_x |
imho |
20:59 |
nrzkt |
wtf we also have peer_id in PlayerSAO |
20:59 |
nrzkt |
... |
20:59 |
nrzkt |
and Player + PlayerSAO have pointer to each other. Data is dup |
21:00 |
|
proller joined #minetest-dev |
21:00 |
TBC_x |
don't look at me |
21:01 |
TBC_x |
I have started contributing code just recently |
21:26 |
nrzkt |
hmmmm: you talked about packet copy, i see many MapNodes copy on a 5 minutes run with valgrind & callgrind |
21:26 |
nrzkt |
all of them are due to getNode(NoEx) |
21:37 |
|
sloantothebone joined #minetest-dev |
21:44 |
nrzkt |
#3010 is not huge hmmm: remove a non included + if #0 file :p |
21:44 |
ShadowBot |
https://github.com/minetest/minetest/issues/3010 -- Remove unused file by nerzhul |
21:49 |
|
Sketch2 joined #minetest-dev |
21:57 |
|
Zeitgeist_ joined #minetest-dev |
22:08 |
hmmmm |
nrzkt: so?? |
22:08 |
hmmmm |
a MapNode is 4 bytes |
22:08 |
hmmmm |
a packet is hundreds of bytes (if not more) |
22:08 |
nrzkt |
30M calls for 5 min with valgrind, multiply this by 10 for a real usage :p |
22:09 |
hmmmm |
that's nothing |
22:09 |
hmmmm |
that is such an inane microoptimization |
22:09 |
nrzkt |
1.2GB memory movements removed :p |
22:09 |
hmmmm |
if you do what |
22:09 |
hmmmm |
how do you fix it |
22:10 |
nrzkt |
i don't tell i will do it, i just said there is a problem. Using pointers instead of copying ? |
22:10 |
hmmmm |
so copy around 8 bytes in order to refer to a 4 byte stucture |
22:10 |
hmmmm |
that's really smart |
22:10 |
nrzkt |
in that case, agree :) |
22:11 |
nrzkt |
i should go, good evening ! |
22:21 |
|
crazyR__ joined #minetest-dev |
22:50 |
kahrl |
RealBadAngel: other than reverting to the old method of creating extrusion meshes, unfortunately I do not :( |
22:52 |
hmmmm |
guys, anybody? |
22:52 |
hmmmm |
https://github.com/kwolekr/minetest/commit/fa9afbd4465e8e4c5a9733254b40da5b782e96c0 |
22:53 |
hmmmm |
https://github.com/kwolekr/minetest/commit/3050bbcf242c57240db719a111076e7cdbe834e7 |
23:26 |
cornernote |
hmmmm, just wondering if this is something I am doing wrong in lua, or a core issue - https://github.com/minetest/minetest/issues/3011 |
23:34 |
|
Taoki_1 joined #minetest-dev |
23:35 |
|
Taoki_1 joined #minetest-dev |
23:41 |
|
Sketch2 joined #minetest-dev |
23:43 |
|
est31 joined #minetest-dev |
23:44 |
est31 |
TBC_x, whats your srp problem? |
23:48 |
est31 |
hmmmm, https://github.com/kwolekr/minetest/commit/3050bbcf242c57240db719a111076e7cdbe834e7#diff-4f2cf5d1d78044ecd5922286ee4d371bR2364 |
23:48 |
est31 |
why an assert now? |
23:49 |
|
diemartin joined #minetest-dev |
23:49 |
est31 |
https://github.com/minetest/minetest/blob/master/src/network/connection.cpp#L2229 |
23:50 |
est31 |
here we call processPacket, and aren't sure whether connection is NULL or not |
23:50 |
est31 |
there is an extra if there |
23:51 |
est31 |
meh, connection.cpp is just such a mess. |
23:53 |
est31 |
all these error messages would have been candidates for warnstream logging messages |
23:53 |
est31 |
because errorstream is reserved for really serious things, its sent to all clients via chat |