Time |
Nick |
Message |
00:05 |
VanessaE |
ok, part of the problem I'm having with server lockups: |
00:09 |
VanessaE |
packets are still being received to my client (per the second F5 display) at about a rate of 1 per second instead of 10, mapgen is totally hung up, but the server is writing to its log file periodically. RTT on the client reads 0.000. Occasionally it'll just inexplicably unlock and drop back to <20% CPU. Every time I move around enough to normally cause more of the map to load or if someone else is on and they do so, the |
00:09 |
VanessaE |
server hangs again |
00:10 |
VanessaE |
the only way out has been to restart the server. |
00:12 |
VanessaE |
if I sign my client out, wait some time (several minutes?) and then sign back in, the server will usually complete the sign-in process but it will take a few minutes just waiting to get past the receipt of nodes and item defs |
00:13 |
VanessaE |
right now it's been hung up off and on for about an hour now, without a restart. |
00:14 |
VanessaE |
(I'm hoping to collect some stats via thexyz's profiler, just in case it's a mod causing it) |
00:15 |
VanessaE |
when the server drops back to <100%, I start seeing normal events around the world such as particles spawning on torches, and the packet stream returns to the usual ~10 packets/second |
00:15 |
VanessaE |
hence the server just unlocked. I grabbed my mouse and simply panned to the right. the server is now hung at 100% again |
00:16 |
VanessaE |
and the packet stream has dropped to about 3/second |
00:17 |
VanessaE |
at the time that the server un-hung, I saw a huge dump (several hundred lines) of stuff like this: 19:14:33: INFO[ServerThread]: Server::ProcessData(): Cancelling: peer 5 not found |
00:18 |
|
OldCoder joined #minetest-dev |
00:18 |
|
OldCoder joined #minetest-dev |
00:18 |
VanessaE |
interspersed with things like: |
00:18 |
VanessaE |
19:14:33: VERBOSE[ServerThread]: Server::peerAdded(): peer->id=6 |
00:18 |
VanessaE |
19:14:33: VERBOSE[ServerThread]: Server: Handling peer change: id=6, timeout=0 |
00:20 |
VanessaE |
all the while that the server is hung up, the log entries show ABM activity (usually a total usage of just over 200 mS) |
00:53 |
VanessaE |
and then for an equally-non-apparent reason, it just stops locking up at all and people can sign in and play normally as if nothing happened. |
01:52 |
BackupCoder |
ve makes similar to ores right? |
01:56 |
VanessaE |
BackupCoder: eh? |
01:56 |
VanessaE |
you mean the mese thing? sorta similar. |
02:05 |
BackupCoder |
:-) |
02:52 |
OldCoder |
Hi |
04:09 |
|
cy1 left #minetest-dev |
06:33 |
|
jin_xi joined #minetest-dev |
08:17 |
hmmmm |
hrm |
08:18 |
hmmmm |
I sort of gave up so i started digging around in minecraft's mapgen |
08:18 |
hmmmm |
it's funny, their implementation is _almost_ the same as mine |
08:19 |
hmmmm |
except they don't have the concept of biome groups |
08:19 |
hmmmm |
so I'm not sure how they ensure that an ocean is next to a beach and a desert is next to a mountain range etc. |
08:22 |
hmmmm |
what's clever is that they made a 64x64 table that maps a combination of humidity/temperature to a specific biome so you can avoid having to iterate through each like i do |
08:23 |
hmmmm |
the obvious disadvantage to this is that their temperature and humidity have only 64 different ranges; but that's rather acceptable |
08:24 |
hmmmm |
i can't do this since i have the third parameter to choose a biome, that is, the biome group |
08:33 |
hmmmm |
hah |
08:34 |
hmmmm |
also their variation of MapNode is 8 bytes |
09:01 |
hmmmm |
I think what i'm going to do is make water occur simply at any point below water_level that isn't air like in the previous mapgen, but keep trying to work with the height interpolation between biomes |
09:01 |
hmmmm |
that might help matters a bit |
09:02 |
celeron56 |
sounds like a good plan |
09:04 |
celeron56 |
oh by the way, if they choose the biome based on a 2d table, don't they implicitly get the transitions from it? |
09:05 |
|
WeAreAnonymous joined #minetest-dev |
09:06 |
OldCoder |
WeAreAnonymous, hello |
09:08 |
hmmmm |
no |
09:10 |
hmmmm |
how the biome terrain height selection works is still unclear; this is what you'd need to look at to figure it out though: http://pastebin.com/k2CReQuu |
09:11 |
hmmmm |
(by the way, i didn't annotate it, but byte0 there is WATER_LEVEL) |
09:12 |
hmmmm |
'night |
10:02 |
|
Calinou joined #minetest-dev |
10:02 |
|
kotolegokot joined #minetest-dev |
10:26 |
|
rsiska joined #minetest-dev |
13:43 |
|
doserj joined #minetest-dev |
13:48 |
|
Polaque joined #minetest-dev |
13:49 |
|
Polaque left #minetest-dev |
15:29 |
|
celeron55 joined #minetest-dev |
15:32 |
|
rsiska joined #minetest-dev |
16:07 |
|
SpeedProg joined #minetest-dev |
16:27 |
thexyz |
celeron55: just built minetest with your patch, and http://i.imgur.com/GfRSd.png |
16:30 |
|
hmmmm joined #minetest-dev |
16:30 |
celeron55 |
so that is a patched server? |
16:32 |
thexyz |
yes |
16:32 |
celeron55 |
no luck then |
16:38 |
|
rubenwardy joined #minetest-dev |
16:54 |
|
PilzAdam joined #minetest-dev |
17:22 |
|
rubenwardy1 joined #minetest-dev |
17:24 |
|
rubenwardy joined #minetest-dev |
17:29 |
|
rubenwardy1 joined #minetest-dev |
17:29 |
|
rsiska joined #minetest-dev |
17:31 |
|
rubenwardy joined #minetest-dev |
17:38 |
|
Calinou joined #minetest-dev |
17:40 |
|
rubenwardy1 joined #minetest-dev |
17:43 |
|
rubenwardy joined #minetest-dev |
17:55 |
|
rubenwardy joined #minetest-dev |
18:28 |
|
rubenwardy joined #minetest-dev |
18:31 |
|
doserj left #minetest-dev |
18:40 |
|
nyuszika7h joined #minetest-dev |
19:01 |
|
rubenwardy1 joined #minetest-dev |
19:02 |
|
jin_xi joined #minetest-dev |
19:13 |
|
rubenwardy joined #minetest-dev |
19:37 |
|
rubenwardy1 joined #minetest-dev |
19:44 |
|
nyuszika7h joined #minetest-dev |
19:54 |
|
rubenwardy joined #minetest-dev |
19:56 |
|
rubenwardy1 joined #minetest-dev |
20:00 |
|
rubenwardy joined #minetest-dev |
20:03 |
|
rubenwardy1 joined #minetest-dev |
20:10 |
|
rubenwardy left #minetest-dev |
20:22 |
hmmmm |
welp |
20:22 |
hmmmm |
that height interpolation between biomes didn't exactly work out |
20:22 |
hmmmm |
it looks like crap |
20:23 |
hmmmm |
back to the drawing board |
20:27 |
|
rsiska joined #minetest-dev |
20:50 |
hmmmm |
i keep looking at real life landscapes like this http://images.4chan.org/adv/src/1355945509014.jpg and i keep wondering how on earth can you possibly replicate that with perlin noise |
20:51 |
hmmmm |
like i guess you can create the rough outline with noise from 3-4 octaves, and then fill in any completely interior points that are missing from the blob |
20:52 |
hmmmm |
and then the roughness of the coastline |
20:53 |
hmmmm |
see, i have no idea how to do that.... my first reaction would be to have a 1d perlin noise to shape how much a piece of land sticks "in" or "out" |
20:53 |
hmmmm |
following the entire coastline |
20:53 |
hmmmm |
but in order to translate that into "is there a block at point x,z" would require a lot of math and is inherently incompatible with the way the coastline is generated |
20:54 |
jin_xi |
is that the tip of a volcano? |
20:54 |
hmmmm |
i don't know what it is, but it looks neat |
20:54 |
VanessaE |
looks more like a meteorite impact to me |
20:54 |
jin_xi |
anyway, my point is it looks more "procedural" than noisy... + erosion |
20:55 |
hmmmm |
the core problem with perlin noise is that that's all it is - noise - it's way better at generating things like clouds |
20:55 |
hmmmm |
and i mean sure it's okay for just plain old terrain, but this... |
20:55 |
celeron55 |
that photo looks like the tip of a huge volcano |
20:55 |
hmmmm |
when you want a certain feature to be present in "the big picture" |
20:55 |
hmmmm |
it's nearly impossible |
20:55 |
celeron55 |
which quite simply makes that shape in a very nonlinear way when looked from that point |
20:55 |
jin_xi |
i think stuff like caves worm hole caves and volcanoes would be more readily special cased |
20:57 |
hmmmm |
i might have some idea on how to vary height without making those huge "cliffs" in between biomes |
20:57 |
celeron55 |
hmmmm: to get natural looking huge features that fit the big picture and still are interesting in a very close level, you need dwarf fortress like generation |
20:57 |
celeron55 |
that is, take minutes to generate all of the huge world at once |
20:57 |
celeron55 |
8) |
20:57 |
hmmmm |
the surface height will be max{base_terrain, high_terrain} |
20:57 |
celeron55 |
using erosion and all that |
20:57 |
hmmmm |
which i think you did in fact |
20:58 |
hmmmm |
well |
20:58 |
hmmmm |
it would be acceptable i think |
20:58 |
hmmmm |
i'm gonna be honest here - minecraft too - blows |
20:58 |
celeron55 |
well, it needs a limited scale, and would make the game quite different to play |
20:58 |
celeron55 |
but it's doable if one decides to do it so |
20:59 |
celeron55 |
you could generate one huge area initially, and do some extensions to it more half-assedly when the player moves closer to some limit of it |
20:59 |
celeron55 |
...or something |
20:59 |
celeron55 |
dunno |
21:00 |
hmmmm |
i'd have to say that's fundamentally incompatible with the way the mapgen works |
21:00 |
celeron55 |
there are huge amounts of unthinked design territory in that |
21:00 |
celeron55 |
nobody is going to whip it up in one go like a minecraft-like generator |
21:00 |
hmmmm |
you're right |
21:00 |
celeron55 |
it's probably some minetest 0.huge number thing once again |
21:01 |
hmmmm |
this is a limitation with perlin noise perhaps |
21:01 |
hmmmm |
no amount of cleverness can fix this |
21:01 |
hmmmm |
regardless i'll try my best to approximate something that looks OK |
21:01 |
celeron55 |
games are about cheating in every aspect to make something simple seem clever and interesting |
21:01 |
celeron55 |
practically always |
21:01 |
hmmmm |
that's true |
21:01 |
celeron55 |
nothing in games is what it looks 8) |
21:02 |
* VanessaE |
looks down at the mossy cobble below her...so this is actually sand or something? :D |
21:02 |
hmmmm |
huh |
21:03 |
celeron55 |
it's two triangles, that are quite unrelated to the collision detector that keeps you on top of them |
21:03 |
celeron55 |
8) |
21:03 |
VanessaE |
heh |
21:04 |
celeron55 |
actually |
21:04 |
celeron55 |
they're probably not even two triangles per block |
21:04 |
celeron55 |
:D |
21:04 |
celeron55 |
the mesh optimizer has probably kicked in and they are some stretched rectangles |
21:05 |
hmmmm |
alright so i think i'm going to stop working on the new mapgen and modularize the old ones like i was talking about yesterday around the same time |
21:05 |
celeron55 |
i mean, triangles |
21:05 |
hmmmm |
the sooner my changes can get in, the better, because then i won't be working with such an outdated version |
21:05 |
hmmmm |
i feel like my changes are already going to be difficult to merge |
21:06 |
celeron55 |
it's probably a good idea to rebase the current generator on top of the fast noises and the relevant parts of the frameworkish stuff |
21:06 |
VanessaE |
I don't mean to change the subject, but did either of you see my "report" earlier? (around 21 hours ago) |
21:06 |
hmmmm |
i am going to read up more on prodecural generation |
21:06 |
hmmmm |
celeron, yes, that's the plan.. |
21:07 |
hmmmm |
you know it's funny, every day is like a cycle.. i wake up, browse some websites, think "i'm going to try something different in the mapgen, maybe i can come up with a breakthrough", then roughly around 4-5PM i give up and say "i'm going to put that aside and work on something i can be productive with" |
21:08 |
celeron55 |
VanessaE: yes; it doesn't bring anything useful to mind |
21:08 |
VanessaE |
ok |
21:08 |
celeron55 |
if you count the breakthroughs per year in the world, and then count the people in the world, you get sad numbers |
21:08 |
celeron55 |
8) |
21:09 |
VanessaE |
output from thexyz's profiler basically says that my mods are a little CPU-heavy, but not nearly enough to cause the issue. |
21:09 |
hmmmm |
hrmm, vanessa, you mean the freezing issue? |
21:09 |
VanessaE |
so I was speculating earlier whether some recent change to the engine may be the cause |
21:09 |
VanessaE |
hmmmm: yeah |
21:09 |
hmmmm |
I witnessed that twice |
21:09 |
hmmmm |
but this was a while back |
21:09 |
hmmmm |
no idea on where to even begin to look |
21:09 |
VanessaE |
first thing I thought of, and this is probably wrong, is that change that is supposed to suppress network activity when none should be needed |
21:10 |
VanessaE |
but I'm sure I'm wrong about that |
21:11 |
VanessaE |
hmmmm: well at least it isn't just me then |
21:12 |
VanessaE |
players havefly and noclip by default - could their flying around be trigging some obscure race condition in the map generator? |
21:13 |
VanessaE |
s/generator/generator or loader/ |
21:14 |
VanessaE |
anyway, end of unintentional topic digression |
21:33 |
hmmmm |
hmm, nope |
21:33 |
hmmmm |
well |
21:33 |
hmmmm |
flying around means that way more blocks get added to the emerge queue |
21:34 |
hmmmm |
it getting filled faster is what causes the race condition (it might be a race condition or might not), not the flying |
22:04 |
|
doserj joined #minetest-dev |
23:42 |
VanessaE |
hmmmm: short of noclip or just disabling flying altogether, is there anything I can do on my end? |
23:42 |
VanessaE |
some setting I've overlooked, etc |
23:56 |
hmmmm |
well wait is it consistently happening? |
23:58 |
VanessaE |
it's intermittent, random - but it is more prevalent when there are at least a few players online - and when I see it unlock itself? if I move or turn to get the mapgen/loader to supply more blocks, it deadlocks again for a while |
23:58 |
VanessaE |
(usually anywhere from about 7 minutes to half an hour at a time from my testing) |
23:59 |
hmmmm |
hmmm |
23:59 |
VanessaE |
which is why I've been sorta fixated on the map loader - this happens even in areas of the map that are guaranteed to be fully generated e.g. the spawn |