Minetest logo

IRC log for #minetest-dev, 2015-09-28

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

All times shown according to UTC.

Time Nick Message
00:08 eugd joined #minetest-dev
00:08 eugd anyone feel like giving a hand helping me squash my commits?
00:08 eugd if they know what's wrong
00:08 eugd https://github.com/minetest/minetest/pull/3199
00:56 eugd left #minetest-dev
01:05 Miner_48er joined #minetest-dev
01:36 pozzoni_ joined #minetest-dev
01:38 JohannesG_ joined #minetest-dev
01:38 enesbil joined #minetest-dev
01:38 janakas joined #minetest-dev
01:55 waressearcher2 there are many choices in source code for database type, like: "Database_SQLite3,Database_LevelDB,Database_Redis",   why are there so many choices and why the default one is "SQLite3" ?
02:08 nanepiwo &(99-21)/4
02:09 deltib joined #minetest-dev
03:43 Puma_rc joined #minetest-dev
05:39 celeron55 waressearcher2: basically not because you need them, but because it's just something that people have found easy enough to add in
05:40 celeron55 the default is sqlite3 because it's the most portable one and it's always been the default
05:41 celeron55 (well, since some version before 0.3.0, but anyway)
06:22 Krock joined #minetest-dev
06:58 est31 joined #minetest-dev
07:19 Calinou joined #minetest-dev
07:22 est31 one thing to improve about the sqlite backend would be to either use z indexes or split the coords up
07:22 est31 whatever performs better
07:52 Krock joined #minetest-dev
09:17 Megaf_ joined #minetest-dev
09:25 nrzkt joined #minetest-dev
09:45 proller joined #minetest-dev
10:00 est31 joined #minetest-dev
10:03 exoplanet joined #minetest-dev
10:23 Krock joined #minetest-dev
10:31 H-H-H joined #minetest-dev
10:32 Megaf joined #minetest-dev
10:57 Player_2 joined #minetest-dev
11:12 H-H-H joined #minetest-dev
11:20 proller joined #minetest-dev
12:07 Amaz joined #minetest-dev
12:12 julienrat joined #minetest-dev
12:12 julienrat left #minetest-dev
12:13 julienrat1 joined #minetest-dev
12:14 turtleman_ joined #minetest-dev
12:16 julienrat1 left #minetest-dev
12:19 Lunatrius` joined #minetest-dev
12:24 est31 joined #minetest-dev
12:46 proller joined #minetest-dev
12:46 Lunatrius joined #minetest-dev
13:01 everamzah joined #minetest-dev
13:15 hmmmm joined #minetest-dev
13:43 julienrat joined #minetest-dev
13:54 Lunatrius joined #minetest-dev
13:59 Soni joined #minetest-dev
14:10 Hunterz joined #minetest-dev
14:27 eugd joined #minetest-dev
14:30 est31 eugd, perhaps connect to the #git channel? people usually help there
14:32 eugd i don't need to have an actual change to push, do I? it isn't actually impossible to just rebase by itself?
14:34 est31 the moment the commit hash changes you have sth to push
14:34 est31 if its just a typo fix of your commit message doesnt matter
14:38 eugd no matter what i do it just returns 'everything up to date'
14:39 est31 eugd, do the following
14:39 est31 git checkout branchname
14:39 eugd done
14:39 est31 git rebase -i master
14:39 est31 then do the rebase
14:39 est31 then type git status and tell me what you have
14:41 eugd ok well when i go to do rebase -i master it has noop
14:41 eugd still go forward?
14:41 est31 no
14:41 est31 you have to squash the commits
14:41 est31 if you type that if opens an editor right=
14:41 est31 ?
14:41 eugd yes
14:42 eugd when i try to rebase master it only brings up latest commit
14:42 eugd should do HEAD~22?
14:42 eugd what i've been doing
14:42 est31 thats ok too
14:42 eugd and you're saying to rebase master, not the branch?
14:43 * Krock offers to do it for eugd but he won't learn anything this way
14:43 Siva joined #minetest-dev
14:44 est31 no eugd if you type "git rebase -i specifier" then it rebases onto the specifier, not the specifier itself if its a branch
14:44 est31 so if you type git rebase -i branchname you rebase the current branch onto "branchname"
14:45 eugd trying to rebase 'master' at all gives no options
14:45 eugd literally 'noop' where the commits would be
14:45 est31 and if you type git rebase -i HEAD~22 then you rebase the current branch onto the commit 22 commits before HEAD. This means that nothing will change, if you dont edit the file
14:45 est31 eugd, what branch are you on
14:45 est31 what does git status say
14:46 eugd 'splitlimit' branch i created
14:46 eugd james@james-Vostro-1520:~/Desktop/minetest$ git status
14:46 eugd HEAD detached at refs/heads/splitlimit
14:46 eugd nothing to commit, working directory clean
14:46 eugd james@james-Vostro-1520:~/Desktop/minetest$
14:46 est31 well, your pull request is from master
14:46 est31 so you have to do it now from your master branch
14:46 eugd yes i push to master to update pull request?
14:46 est31 do git checkout master
14:47 est31 then rebase onto HEAV~22
14:47 est31 or that works well as well
14:49 eugd james@james-Vostro-1520:~/Desktop/minetest$ git rebase -i HEAD~22
14:49 eugd [detached HEAD 64fef2a] Update map.cpp
14:49 eugd Author: EUGD <emugod@comcast.net>
14:49 eugd 6 files changed, 79 insertions(+), 24 deletions(-)
14:49 eugd Successfully rebased and updated refs/heads/master.
14:49 eugd james@james-Vostro-1520:~/Desktop/minetest$ git status
14:49 eugd On branch master
14:49 eugd Your branch and 'origin/master' have diverged,
14:49 eugd and have 1 and 22 different commits each, respectively.
14:49 eugd (use "git pull" to merge the remote branch into yours)
14:49 eugd nothing to commit, working directory clean
14:49 eugd james@james-Vostro-1520:~/Desktop/minetest$
14:50 est31 now it seems that you only have to push
14:50 est31 "git push -f" should suffice
14:52 eugd oh gdi
14:52 eugd wtf
14:52 eugd i swear to god i've done exactly this
14:52 eugd gah thanks
14:52 eugd lol
14:53 eugd i still don't understand what it was causing my original problem, then, because until yesterday i was working exclusively in master
14:54 eugd and doing exactly this, with no result (just returned 'Everything up-to-date')
14:54 eugd thanks so much est31
15:26 CraigyDavi joined #minetest-dev
15:43 selat joined #minetest-dev
15:46 eugd1 joined #minetest-dev
16:00 MinetestForFun joined #minetest-dev
16:09 ElectronLibre joined #minetest-dev
16:09 Tom-s joined #minetest-dev
16:10 eugd joined #minetest-dev
16:19 eugd1 joined #minetest-dev
16:53 CraigyDavi joined #minetest-dev
17:11 DFeniks joined #minetest-dev
17:30 CraigyDavi joined #minetest-dev
17:43 bluegreen joined #minetest-dev
17:59 nrzkt joined #minetest-dev
18:19 eugd1 i may have found another bug
18:19 eugd1 something to do with how settings are saved
18:22 eugd1 been testing with my thing and now map_generation_limit keeps resetting to 200
18:22 eugd1 which was a value i'd provided through minetest.conf, it's not in the code anywhere
18:22 eugd1 this is persisting through different worlds
18:36 eugd did my messages a few minutes ago go through?
18:37 eugd about settings bug?
18:37 Calinou <eugd> thanks so much est31
18:37 Calinou this was your last message
18:37 eugd ok
18:37 eugd may have found another bug
18:37 eugd minetest.conf resetting
18:37 Calinou it never happened to me...
18:38 eugd no idea what's going on, but it's definitely happening
18:38 eugd like the game is loading an earlier version instead, and saving it over the (current) user-defined one
18:39 Robby joined #minetest-dev
18:43 zupoman joined #minetest-dev
18:55 Miner_48er joined #minetest-dev
19:02 eugd it seems to be just map_generation_limit
19:02 eugd or atleast it is NOT map_generation_extent
19:02 eugd that is resetting
19:03 Taoki joined #minetest-dev
19:04 Krock <eugd>minetest.conf resetting
19:04 Krock Does minetest have write access there?
19:05 eugd it would certainly seem to
19:05 eugd yes actually
19:05 eugd for sure
19:05 rubenwardy joined #minetest-dev
19:05 eugd it populates minetest.conf as user changes settings via gui menus
19:05 Krock This definitely doesn't happen with my ... some days old build. Crashes can discard changes
19:05 Krock also don't edit the file while Minetest is runnng
19:06 eugd i think that may be part of it but it's happening even with the file closed
19:15 eugd maybe i'm actually crashing every time i close the window?
19:19 Robby joined #minetest-dev
19:23 Robert_Zenz joined #minetest-dev
19:38 eugd well i'm stuck now
19:39 eugd because of this inexplicable bug
20:09 eugd fixed it by completely deleting my .minetest folder
20:22 VanessaE so,
20:22 VanessaE thanks to inaction by the devs, it looks like my two oldest worlds are corrupted to the point that I have to reset the worlds.
20:22 VanessaE thanks.
20:23 VanessaE I really appreciate the headache.
20:29 Krock VanessaE, /deleteblocks ?
20:30 VanessaE useless.
20:30 notgonnaregister joined #minetest-dev
20:40 kahrl i hadn't even heard of map corruption until now
20:40 kahrl issue #?
20:42 VanessaE I don't remember anymore
20:44 VanessaE as for resetting, I decided just fuck it.  I shut the servers down.
20:45 Krock VanessaE, with your capitulation you shut down months of work
20:45 VanessaE years.
20:45 VanessaE I give up, krock.
20:46 Krock Oh c'mon, please. Aren't there any backups?
20:46 VanessaE there are.
20:46 VanessaE but backups are useless if the corruption is in all of them
20:46 Krock And editing the database isn't an opinion?
20:47 VanessaE I don't know enough about the backend (leveldb), let alone the map format, to safely do anything about it.
20:53 kahrl is it #2610
20:53 ShadowBot https://github.com/minetest/minetest/issues/2610 -- Invalid block data in database: unsupported NameIdMapping version
20:53 VanessaE that's one of them
20:55 VanessaE #1425 is part of it too
20:55 ShadowBot https://github.com/minetest/minetest/issues/1425 -- Deleting extraneous entities from a mapblock deletes PLAYERS also
20:55 VanessaE (specifically, where it is the entities are coming from)
20:56 kahrl wait... how does deleting player objects create entities?
20:56 VanessaE it doesn't.
20:56 VanessaE entities being created out of thin air does by way of the engine trying to delete them.
20:59 CraigyDavi joined #minetest-dev
21:12 VanessaE I'm sorry to be such a bitch about it, kahrl.
21:13 VanessaE but I've been arguing for years now about how too much focus is on new features and not enough on fixing bugs and making sure servers can run well and users' creations aren't threatened
21:13 VanessaE and most of the time, I'm either ignored, or no one's online to discuss it.
21:14 kahrl most of the recent releases had a ton more bugfixes in their changelog than new features
21:14 kahrl (more so than older releases)
21:15 VanessaE maybe I'm not putting it the right way, I guess
21:16 VanessaE how many of those bug fixes are the result of some new "feature" that's been added, or are just stuff like code style or whatever?
21:19 kahrl what I'm wondering is: well, if this bug has been around pretty much forever, why is it threatening your map just now?
21:19 VanessaE it's not "just now"
21:19 VanessaE it's been a problem for a long time now
21:19 VanessaE if I had to guess, I'd say a year and a half
21:21 VanessaE I've just been tolerating the problems in hopes that someone can fix them.
21:24 waressearcher2 "I've just been tolerating the problems in hopes that someone can fix them", that is why statisticaly there more people witness the crime the less chances someone will call the police
21:25 VanessaE calling the police does no good if they don't answer the phone.
21:35 kahrl I can't speak for the other devs, but I generally find it impossible to fix issues like those mentioned because I can't even find a way to reproduce them
21:36 kahrl it would help a lot if users gave steps to reproduce the errors they report
21:36 VanessaE that's why I have had downloadable worlds available for a long time now, to help with that.
21:36 VanessaE but they're big files (multi-gigs), and that's a turn-off for some people I guess
21:37 kahrl Yeah. There's a reason most programming chats ask for *minimal* (non-)working examples
21:37 VanessaE I tried that too.
21:37 VanessaE literally.
21:38 VanessaE (as in a few-megs-in-size world generated using the "minimal" subgame, specifically to illustrate what happens when entities get outside the world bounds)
21:39 VanessaE (I even managed to get it to corrupt itself, entirely with normal in-game activities, and to start producing entities out of thin air)
21:43 H-H-H joined #minetest-dev
21:44 eugd just curious, what are the entities it's producing?
21:46 VanessaE they're invisible, presumably unnamed and undefined as well, hence I call them 'ghost' objects.
21:46 proller joined #minetest-dev
21:47 VanessaE they only show up in the logs and in the amount of block load and mesh gen lag they create
21:48 kahrl oh, you mean those
21:48 kahrl yeah, I've seen that
21:49 kahrl I think it's not actually creating entities, but rather reading the number of entities from an uninitialized variable
21:50 proller joined #minetest-dev
21:51 kahrl (very easy to reproduce: start a fresh map on vanilla minetest_game, teleport to y = -30900, throw an item out the bottom of the world)
21:51 VanessaE (yep)
21:52 VanessaE there are two multiple issues there
21:52 VanessaE the entities should be deleted when the leave the bounds,
21:52 VanessaE the map block should not become corrupt (as in, world load error)
21:52 VanessaE the ghosts should not be created
21:52 VanessaE and it should not kill client fps when they multiply
21:53 kahrl as easy as it is to cause the "ghost" entities by the method I described, I've never actually managed to corrupt any mapblock with that
21:53 VanessaE plus in advanced cases, /clearobjects is not enough to fix the map.
21:53 VanessaE (/deleteblocks sufficient to stop the world load error, temporarily)
21:54 kahrl nor could I figure out the cause of the "ghost" entities, because when I run minetest in valgrind, the entities just sit there instead of dropping out of the world and causing the error
21:55 VanessaE http://digitalaudioconcepts.com/vanessa/hobbies/minetest/stats.html
21:56 VanessaE see that spike near "Wed 12:00" in the mem graph?
21:56 VanessaE and the three large > 10 GB sections to the right?
21:56 VanessaE those were caused by out-of-bounds entities on my Free-for-All map.
21:57 VanessaE (specifically, MOBs from Calinou's mod, looks like they spawned somewhere normal and wandered through a cave to the world edge)
21:59 waressearcher2 kahrl: "it would help a lot if users gave steps to reproduce the errors they report", it will not just help it is how this suppose to happen when reporting bugs
22:24 rubenwardy joined #minetest-dev
22:49 kahrl ok, I figured out what happened in rubenwardy's map
22:50 kahrl specifically the broken mapblock 0,-8,2 from this map: https://github.com/minetest/minetest/issues/2610#issuecomment-138242659
22:50 kahrl I deserialized the mapblock by hand with a hex editor
22:50 treetrunk left #minetest-dev
22:51 kahrl there were 97590 serialized static objects in there
22:51 kahrl but the field that says how many there are said 32054
22:51 kahrl (note how (u16)97590 == 32054)
22:51 est31 joined #minetest-dev
22:53 kahrl so when minetest tries to deserialize this mapblock, at some point it deserializes a StaticObjectList containing 32054 objects
22:53 kahrl and after that it expects a NameIdMapping
22:53 kahrl but the actual data it receives is just more static objects
22:54 rubenwardy that sounds difficult to fix with backwards compatibility
22:55 kahrl yeah :/
22:55 VanessaE that explains why /clearobjects can't fix it, either.
22:55 rubenwardy ~math c 97590/(16*16*16)
22:55 rubenwardy ~c math 97590/(16*16*16)
22:55 ShadowBot rubenwardy: math calc <math expression>
22:55 rubenwardy ~math calc 97590/(16*16*16)
22:55 ShadowBot rubenwardy: 23.82568359375
22:55 rubenwardy that is a lot
22:56 kahrl well, it's easy to prevent new broken mapblock from being written
22:56 kahrl when serializing, check if the number of objects to write exceeds the range of u16
22:56 kahrl and if so, just don't write any objects (or only the first 65535, perhaps)
22:57 est31 it should definitely print a warning
22:57 kahrl yes
23:07 kahrl it *might* be possible to write a program that can fix broken maps
23:08 kahrl it would work as follows: for each block in the database, deserialize it and re-serialize it
23:08 kahrl the (de)serialization code is the same as minetest's, but with a twist
23:08 VanessaE if a program could be written to fix a map, why can't the read part of that be used in-engine to do the same?
23:09 kahrl it ignores the field stating the number of static objects
23:09 kahrl instead, after each static object, it checks if the next byte is a 7 (= ACTIVEOBJECT_TYPE_LUAENTITY)
23:09 est31 kahrl's trick won't work if other fields freak out too
23:09 est31 it shouldnt be added to the engine
23:09 kahrl if that is the case, it keeps reading static objects
23:10 kahrl yeah this is highly dangerous if added to the engine
23:10 kahrl but for a script that attempts to fix people's broken maps, it's fine
23:10 est31 I have already a statistics program that reads every block for the map
23:10 est31 (modified minetest)
23:11 est31 but working with minetest codebase would be hard, in this case because you need full gamedef
23:11 est31 or at least nameid mapping
23:11 est31 perhaps more
23:11 est31 in order to reserialize
23:17 eugd there's also the problem of how they're getting out of bounds anyway
23:17 est31 yup
23:17 est31 right now we are only treating the symptoms
23:20 eugd why aren't object already subject to same unloaded-block physics as players?
23:28 est31 thats not related to the problem
23:28 est31 not to this one
23:36 kahrl est31: yay, nay? https://gist.github.com/kahrl/beec57412d0fa0fd1c7f
23:37 kahrl do we have an U16_MAX, btw?
23:40 hmmmm don't think so
23:40 hmmmm instead of defining it i always used the expression ((u16)-1)
23:42 kahrl ah yeah, I think I like that better than writing 65535
23:44 est31 kahrl, LGTM except perhaps #2610 should be described, links can and do rot
23:44 ShadowBot https://github.com/minetest/minetest/issues/2610 -- Invalid block data in database: unsupported NameIdMapping version
23:45 est31 guess both link and description are best
23:46 kahrl well, I hope github doesn't go the sourceforge path any time soon :)
23:46 est31 hrmm, should we reserve the count of 65535 for "overfull, please fix this mapblock"?
23:46 kahrl I'll add the description at least. Link might be a tad verbose?
23:46 est31 ah, it will overflow
23:47 est31 link as #abc is perfectly fine
23:47 est31 for me
23:48 hmmmm not saying that (u16)-1 is better than U16_MAX
23:48 hmmmm i think it probably should get defined in irrlichttypes.h
23:49 kahrl https://gist.github.com/kahrl/374b693e9ebdcf3835bb
23:50 est31 +1 kahrl
23:50 hmmmm looks good.
23:50 hmmmm btw what do you guys think of decoupling object storage from mapblocks
23:50 kahrl pushing in a few mins then
23:51 est31 hmmmm, not right now, I want to write the converter for VanessaE, ok?
23:51 hmmmm this is a pretty large change so i don't think it can be done right now.  lol.
23:51 est31 I mean discussing it
23:52 hmmmm oh ok.
23:55 eugd uh
23:56 eugd don't you need an 'else' after that 'if'?
23:56 est31 no
23:56 eugd ok
23:56 est31 its return
23:56 eugd oh ok
23:56 eugd oh i see
23:57 est31 man, I'm too tired to do this
23:58 est31 will do it tomorrow

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