Minetest logo

IRC log for #minetest-dev, 2013-01-16

| Channels | #minetest-dev index | Today | | Google Search | Plaintext

All times shown according to UTC.

Time Nick Message
05:24 celeron55_ joined #minetest-dev
05:33 VanessaE joined #minetest-dev
06:11 VanessaE joined #minetest-dev
06:46 VanessaE joined #minetest-dev
07:39 sema4 joined #minetest-dev
07:44 Taoki joined #minetest-dev
09:40 rsiska joined #minetest-dev
10:17 BackupCoder joined #minetest-dev
11:39 Taoki joined #minetest-dev
11:55 iqualfragile joined #minetest-dev
11:56 iqualfragile joined #minetest-dev
11:59 jojoa1997 joined #minetest-dev
11:59 jojoa1997 left #minetest-dev
12:06 Gambit joined #minetest-dev
14:22 darkrose joined #minetest-dev
14:22 darkrose joined #minetest-dev
15:21 PilzAdam joined #minetest-dev
15:36 Calinou joined #minetest-dev
16:45 hmmmm joined #minetest-dev
17:30 iqualfragile please merge that in: https://github.com/celeron55/minetest/pull/426
17:34 celeron55_ ehm
17:34 celeron55_ that will just make huge liquid transform queues when a server runs a long time?
17:35 celeron55_ and they will all be tried every second, or whatever the way that works was
17:35 celeron55_ shouldn't be merged
17:36 celeron55_ (without testing that the queue does not actually grow in a real situation)
17:45 hmmmm jeepers.... that's insane
17:45 hmmmm don't do it
17:47 celeron55_ hmmmm: what is the status of your... thing? people are telling all kinds of rumors about it, most of which are quite far from reality 8)
17:47 hmmmm oh shoot
17:47 hmmmm it's done
17:47 celeron55_ i might want to write a blog post about the status of many things
17:48 hmmmm i haven't been doing anything minetest related for about a week, i apologize.
17:48 celeron55_ doesn't matter; can you summarize what it does and what it needs, so that it can be replied to anyone who asks
17:49 hmmmm sure
17:49 celeron55_ +?
17:49 hmmmm where would this be posted?
17:49 doserj joined #minetest-dev
17:49 celeron55_ dunno, maybe c55.me/blog, and if not, then at least everybody in this channel knows it and can inform others properly
17:50 hmmmm alright
17:50 hmmmm i should probably mention that not all the changes in my branch are mapgen related; i did take some time out to fix some minor nagging issues along the way
17:54 iqualfragile oh, yeah, i have to admid i did not look at it, i was just annoyed by that problem
17:54 iqualfragile maybee load the needed blocks?
17:54 celeron55_ it will create infinite loadings of blocks
17:55 celeron55_ we have an infinite world; everything non-linear just stops at some point, there's no silver bullet to that
17:55 celeron55_ (dunno if non-linear is the right term though)
17:57 doserj the proper way would be to store the queue with the block
17:57 doserj and add it to the real queue when the block is loaded
17:57 doserj (I guess)
17:58 celeron55_ i think it would work if water would stop, without spreading, when it touches unloaded mapblocks, and when a mapblock is loaded, it would "activate" all water touching it to make it move if it is about to move
17:58 celeron55_ s/water/liquid/
17:59 celeron55_ if somebody does that, it will be merged
17:59 doserj you need more than just touching
17:59 doserj you need to activate all water in the block itself
17:59 doserj (the block may be unloaded while water is flowing inside it)
17:59 celeron55_ well that is obvious (dunno if it is done already)
18:01 doserj I'm pretty sure it doesn't
18:04 doserj And you have to be careful with your solution that it doesn't blow up when you load an ocean block full of water
18:09 celeron55_ indeed that could be bad
18:10 celeron55_ maybe the queue should be stored then, for the in-block cases - it's actually a different case compared to the one that started this discussion though
18:45 sfan5[iPod] joined #minetest-dev
18:56 sfan5[iPod] joined #minetest-dev
19:15 sapier1 joined #minetest-dev
19:17 sapier joined #minetest-dev
19:18 sfan5[iPod] joined #minetest-dev
21:49 * celeron55_ gives a bit of more visibility to this: http://forum.minetest.net/viewtopic.php?id=4243
22:07 hmmmm guys
22:07 * VanessaE raises an eyebrow
22:08 hmmmm i think we should all start working on minecraft more
22:08 hmmmm minetest
22:08 VanessaE I thought we were?>
22:08 hmmmm we were but not enough
22:08 hmmmm there's like nothing going on :(
22:08 hmmmm i have a goal in mind; by friday at the latest we should have master with all the mapgen stuff and leveldb stuff added
22:09 hmmmm and more than that.. before the last bit of snow melts for me outside, I want to have snow on the blocky ground in a winter biome in minetest
22:10 VanessaE how much leveldb "stuff"?
22:10 hmmmm all the leveldb 'stuff'
22:10 VanessaE just the framework, or the whole backend like oldcoder wants?
22:10 hmmmm the whole backend
22:10 hmmmm plus a converter for sqlite3 maps
22:10 hmmmm oh wow that might be a bit taller of an order
22:10 hmmmm okay nevermind friday
22:10 VanessaE sweet
22:10 VanessaE get with oldcoder - he's already done this
22:10 hmmmm well
22:11 VanessaE he runs leveldb on his server 'nexus'
22:11 hmmmm thexyz is the person i'd really want to talk to
22:11 VanessaE at least for linux...
22:11 init leveldb?
22:11 hmmmm it's an alternative to sqlite3 that runs a whole lot better
22:11 init what is it? new format for maps faster?
22:11 hmmmm yes, it makes maps faster :).
22:11 init ;P
22:11 hmmmm so here we are with leveldb
22:12 hmmmm the framework and the backend itself have been tried and proven to work well for a couple months now
22:12 hmmmm plopping that in should be no problem
22:12 hmmmm i don't know what it does about conversion of old maps, which is where i'd ask xyz
22:13 hmmmm but ideally what would be done is all old maps are _converted_ to the new leveldb format
22:13 hmmmm and then eventually we remove the code supporting loading from and everything from 0.3 sector directory and and 0.4 sqlite3
22:13 sapier I don't want to offend someone but issues are queuing up really fast and noone doesn't even seem to categorize them
22:14 hmmmm issues on what
22:14 init github i think
22:14 sapier yes github... isn't bugfixing more important than adding new featues?
22:15 hmmmm a lot of those are enhancements and very non-critical bugs
22:15 sapier of course but without categorizing it you can't decide wich are critical bugs and which are feature requests
22:15 VanessaE hmmmm: oldcoder has also gotten quite proficient at migrating sqlite maps -> leveldb btw
22:16 hmmmm sapier, i know, but just froma glance it really does look like the majority of them are enhacements
22:16 hmmmm from a*
22:16 hmmmm vanessa, that's nice, but it's not particularily difficult to do so
22:16 hmmmm the plan is to have it completely automated
22:17 VanessaE hmmmm: just trying to save some time.
22:17 init i wonder
22:17 hmmmm user upgrades minetest, copies over map, starts it up, says "hey your map format is out of date, to use this version you need to update it!"
22:17 VanessaE init: I already know, and I'm not sure I like what I know ;-)
22:17 init why not a "big upgrade" between adding the new mapgen / new format
22:17 VanessaE (as opposed to just wondering ;) )
22:17 hmmmm and then it asks for a confirmation if you'd like to overwrite the file or move it to another or something
22:17 VanessaE oh yes
22:17 VanessaE +1
22:18 sapier there are at least some important bugs ... entity attachement is buggy, collision handling too, entity client/server out of sync and of course the famouse emerge thread bug is still there
22:18 hmmmm hm
22:18 VanessaE leveldb should be enough to bump the version to 0.4.5.
22:18 sapier I know none of that bugs is easy to solve and won't give lots of merits too ... but they are really anoying
22:18 hmmmm the emerge bug thing.... i'll take a better look at that once my current work is done
22:18 hmmmm collision handling is totally not my area
22:18 hmmmm i have no idea what's going on there or even what source file it resides in
22:20 sapier for this special one I've already written a changeset. But it needs discussion if this way of fixing is accepted or not
22:21 VanessaE hmmmm: regarding emergethread, one thing I've noticed is that the more map content there is (even if it's nothing but a bunch of idle blocks), the sooner the emergethread bug manifests.
22:21 VanessaE is that of any use?
22:21 VanessaE at least it *seems* to be that way
22:21 hmmmm we already know what the problem is exactly, just not a good way to solve it
22:21 hmmmm i have an idea that i'd like to try out, but after i get my other stuff in
22:21 sapier I had a thought about this ... did I understand correct that the real problem is some client not receiving data fast enough?
22:22 hmmmm no
22:22 hmmmm the real problem is that the emerge queue fills up too much and it keeps getting enumerated every tick in the serverthread by getnextblocks
22:23 hmmmm sendblocks holds an envlock which the emerge thread waits on
22:23 sapier why?
22:23 hmmmm so when the emergethread finally gets a chance to run it only clears a couple hundred blocks from the queue and more keep getting added on
22:24 sapier yes but why is sendblocks holding that lock?
22:25 hmmmm because it reads from the environment and it needs to be in a consistent state
22:25 sapier so the real problem is environment being a non shareable resource
22:26 hmmmm i would have to take a better look but i feel like SendBlocks has too broad of an envlock
22:26 hmmmm really envlock is too big
22:27 hmmmm it would be really great if we sit down someday and actually take a look at what resources are being used at what times and make some smaller granularity locks for things within the environment
22:27 sapier I agree
22:28 sapier I haven't had a look if this idea might work but what about block range locking of env?
22:28 VanessaE [01-16 17:28] <Menche> could they fix the bug where you have to jiggle the mouse to open a formspec after just closing one?
22:28 VanessaE for the logs ^^^
22:28 sapier jiggle?
22:28 hmmmm sapier, that too
22:28 sapier what exactly happens there?
22:29 VanessaE sapier: if you open a chest and then close it, you can't hit any other key to do anything, even move.  you have to jiggle the mouse a little to reset keyboard focus back onto the world.
22:29 VanessaE or something like that.
22:30 sapier might be combinable with on_close callback
22:30 VanessaE (I did not want to steer the conversation this direction, that was supposed to just be for the logs)
22:31 sapier I think as there's a easy workaround for this bug it's not quite high priority
22:31 hmmmm in the meantime i think it might be a good idea for my code to actually ship, the emergethread getting done with its stuff quicker would be a way to alleviate the problem (but not actually fix the consumer starvation)
22:31 sapier related to emerge thread is a problem in on_generated callback
22:31 hmmmm oh god....
22:31 hmmmm let's hear it
22:32 sapier some ppl use on_generated to heavyly modify world
22:32 VanessaE oh boy.
22:32 sapier but behaviour of setnode is not intended to do that at all
22:32 VanessaE jeez, speaking of emergethread, my server just went down hard :-/
22:33 hmmmm hrmm
22:33 hmmmm there are also other remedies for fixing that
22:33 sapier any node modified by setnode will touch at least 6 other nodes queuing them to transform queue in worst case and doing light calculations
22:33 hmmmm like make the queue count for each peer an O(1) lookup so it spends the same amount of time in sendblocks
22:34 hmmmm and also my work that i'm planning to do with the emergethread would fix that as well, that is, do a trylock when blitting the new blocks back to the environment
22:34 hmmmm instead of waiting
22:34 sapier that's not a solution hmmmm it will improve situation but won't fix it
22:34 hmmmm what, the trylock?
22:35 hmmmm all of these are things that should have been done in the first place
22:35 sapier not the separate queuing for each client
22:35 sapier still it should be done for other reasons
22:40 sapier puhhh ... I've just had a look at sendblocks function ... where I work we do call functions like that "infinite loop"
22:42 Gambit joined #minetest-dev
22:43 sapier those loops don't have a worst case limit
22:43 VanessaE sapier: do you think you can fix it?
22:44 sapier you're kidding ;-) to fix bugs like that you need to reconsider what you're doing and what you really need to be done
22:45 VanessaE ohheh
22:45 sapier I think hmmmm has already some interesting ideas
22:45 VanessaE agreed, for as much as I can understand it anyway.
22:46 sapier hmmmm I still don't understand why envlock is taken for whole sendblocks function
22:47 sapier is consistency between different clients really required?
22:49 sema4 joined #minetest-dev
23:09 sapier VanessaE could you have a look if this change reduces emerge thread problems? https://github.com/sapier/minetest/commit/81098c8e112c24bd503473a4b5b5eb26b388d8f2
23:09 VanessaE sure, lemme pull that in real quick
23:10 sapier I don't think it'll fix it completely but as far as I understand that code it most likely won't harm
23:11 VanessaE building it now...
23:11 sapier still real problem is the way block updates are done
23:12 VanessaE ok, it's installed.
23:12 sapier and we need some testcase to decide if a change improves or makes things worse ... as I don't think there's a single fix to make it instantly run
23:12 init VanessaE: how can you "reproduce" the bug?
23:13 VanessaE init:  just have a really detailed, heavily-loaded map
23:13 VanessaE e.g. tons of buildings, or lots of conifers, jungle trees, etc.
23:13 VanessaE fly around for a while
23:13 sapier :-) not qute a testcase
23:13 init my netbook can't handle that, so i can't try :P
23:13 sapier you can't even decide "fixed" with it
23:14 VanessaE sapier: I don't see any improvement... :(
23:15 sapier I thought so ... env lock is huge spliting it wasn't quite promising ... 2big locks are still to big
23:16 VanessaE it was worth a try
23:17 sapier so this bug obviously needs mor investigation maybe whole mechanism needs to be redesigned ... but maybe some small adjustments are enough ... don't quite know by now
23:26 sapier VanessaE do you run linux?
23:26 VanessaE sapier: yep
23:28 sapier hmm ... I have to check something maybe there is a quick solution for this problem
23:29 VanessaE oh?
23:30 sapier linux uses fifo as default scheduler ... this results in not changing from a busy thread to a waiting thread without being forced
23:30 sapier this isn't as critical in multicore environments ... how many cores do you have?
23:33 VanessaE 6 cores.
23:33 VanessaE and I think it uses a different kind of scheduler these days, "Completely Fair" they call it.
23:33 sapier hmmm ... ok that doesn't comply with my guess
23:33 sapier process scheduling but not pthread thread scheduling
23:34 VanessaE oh right
23:48 sapier https://github.com/sapier/minetest/commit/3861bf3d86689d85cf3b08324dfea98b160326fc
23:48 sapier VanessaE probably adding this improves behaviour ... but switching from fifo to rr may show bugs not beeing visible before
23:50 sapier I remember you had a link to that world triggering the problem yesterday? can you give it to me so I can test myself?
23:50 VanessaE sure, world:  http://digitalaudioconcepts.com/vanessa/hobbies/minetest/My_World_server.tar.bz2   game:  http://digitalaudioconcepts.com/vanessa/hobbies/minetest/vanessa_game.tar.bz2
23:51 VanessaE (you'll need the game or the world will be like 50% unknown blocks ;-)
23:52 sapier 127MB? .... I think that'll take some time
23:53 sapier that commit changes two things, SCHED_RR for all threads and lift emerge thread above all other threads
23:54 VanessaE 127MB is nothin' compared to redcrab's server.  His world file is in the 5GB range now :-)
23:55 sapier :-)
23:55 VanessaE also, the map:  http://digitalaudioconcepts.com/vanessa/hobbies/minetest/images/my_world_map.png
23:55 VanessaE so you can see where the dense areas are.
23:56 sapier do you have some coordinates? :-)
23:56 VanessaE not really, just fly around and eventually it'll barf :-)
23:58 VanessaE the spawn is somewhere around 130,25,100 or so
23:58 sapier is this bug occuring singleplayer too?
23:58 VanessaE -138,24,100 to be exact.
23:59 VanessaE the only thing I've seen singleplayer is the map sometimes loads slowly, but I never play in that mode anymore
23:59 VanessaE I just use it for the occasional test of a mod

| Channels | #minetest-dev index | Today | | Google Search | Plaintext