Minetest logo

IRC log for #minetest-dev, 2013-11-12

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

All times shown according to UTC.

Time Nick Message
00:15 EvergreenTree joined #minetest-dev
00:45 jojoa1997 joined #minetest-dev
01:01 Gronx joined #minetest-dev
01:25 RealBadAngel joined #minetest-dev
01:31 OldCoder joined #minetest-dev
01:33 kahrl joined #minetest-dev
01:53 bas0801 joined #minetest-dev
02:15 bas080 joined #minetest-dev
02:45 zork__ joined #minetest-dev
04:17 bas080 joined #minetest-dev
06:04 ImQ009 joined #minetest-dev
06:59 darkrose joined #minetest-dev
08:39 celeron55 19:12:44 <+sapier> is there any major issue that would be fixed by starting  from scratch I missed by now
08:40 celeron55 i said i would like to do a focused effort with someone on researching the subject, but then everyone started just shouting around miscellaneous things like usual
09:04 OldCoder joined #minetest-dev
09:23 khonkhortisan joined #minetest-dev
10:05 proller joined #minetest-dev
10:51 proller celeron55, one more shoot around: universe sized game, top level - lot of gravity points (planets, stars),  every point can contain world like current
10:52 proller with rotating planet sky can be real, with reachable (via teleport) start and planets
10:54 celeron55 don't say those to me; nobody gains anything from it
10:54 celeron55 except you gain a little bit of hate from me
10:55 celeron55 it's and odd thing to desire i must say
10:55 celeron55 an*
12:27 ImQ009 joined #minetest-dev
13:12 EmmetCooper joined #minetest-dev
13:12 EmmetCooper left #minetest-dev
13:17 EvergreenTree joined #minetest-dev
13:20 hmmmm joined #minetest-dev
13:34 Taoki joined #minetest-dev
13:45 proller joined #minetest-dev
13:46 proller https://github.com/minetest/minetest/pull/999 jack pot!
13:47 celeron55 someone has to make sure 1000 is the best pull request ever
13:49 celeron55 maybe i should aim for fixing the object duplication more tonight and making pull #1000 out of it
13:49 celeron55 (i'm pretty sure someone accidentally makes #1000 out of something random before that)
13:50 Kray i'm gonna make lörs lärä request
13:50 Kray and you can't prevent it
13:51 celeron55 well that's better than something else i guess
13:52 proller wtf with guiFormSpecMenu.cpp ? why conflict?  http://paste.org.ru/?z4joi2
13:54 proller looks like rebase in master
13:58 celeron55 note the spaces before '+'s
13:58 celeron55 they are diffs stored in the actual file in the repo
13:58 proller but i not touched this file
13:58 proller strange
14:00 sfan5 can someone please fix this: src/util/numeric.cpp:146: error: integer constant is too large for ‘long’ type
14:02 celeron55 http://stackoverflow.com/questions/11691121/warning-integer-constant-too-large-for-long-type-but-it-is-a-uint64-t
14:02 celeron55 try it yourself
14:12 sfan5 fix incoming in 5 mins
14:13 celeron55 so that's the 1000th pull request? :P
14:16 sfan5 no, I'll push directly
14:17 sfan5 1000 deserves something better :P
14:21 NakedFury joined #minetest-dev
14:40 zat joined #minetest-dev
14:49 Zeitgeist_ joined #minetest-dev
14:58 iqualfragile joined #minetest-dev
15:24 RealBadAngel joined #minetest-dev
15:29 ShadowNinja zat: Have you been able to add multiple lines to /rollback_check output yet?
15:31 zat I haven’t had time
15:31 zat I am really busy with family stuff sorry
15:32 zat However can the new rollback be included as is in the next minor version?
15:32 proller hahahahaha
15:34 ShadowNinja zat: I would like to get it in 0.4.8, but it has to be ready soon. I will see if I can fix rollback_check myself.
15:46 Ritchie_ joined #minetest-dev
15:50 zat I would rather call it a feature improvement. Since now it works as it claims to.
15:59 PilzAdam joined #minetest-dev
16:00 Jordach joined #minetest-dev
16:10 EvergreenTree joined #minetest-dev
16:22 ShadowNinja Yes, but either way...
16:24 Calinou joined #minetest-dev
16:28 PilzAdam I dont think that 997 is a "blocker"
16:32 PilzAdam its already in a stable release and its not that important to block a release
16:33 celeron55 activeobject bug counter: 1
16:40 OldCoder joined #minetest-dev
16:41 thexyz and well the patch is already here so instead of arguing whether it's a blocker or not why not merge it?
16:41 celeron55 stumbled upon sapier's fix which only makes things worse in this regard
16:43 celeron55 (activeobject bug counter: 2)
16:48 sapier joined #minetest-dev
16:53 zat joined #minetest-dev
16:53 sapier celeron55 what fix are you talking about?
16:57 zat joined #minetest-dev
17:00 ShadowNinja zat: You should use a time_t instead of a int. A int can be 32 or even 16 bits long, which isn't enough to store time.
17:01 sapier you're right shadow time_t is correct but I guess there's no 16bit os available to run minetest at
17:04 sapier PilzAdam imho any known (not exremely rare) crash is a blocker no matter if it was there before or not
17:06 ShadowNinja sapier: Even 32-bit will be too small soon. (I forget when)
17:07 ShadowNinja And the timestamp in the DB should be a "TIMESTAMP", not a "INTEGER".
17:07 sapier unix time has epochs ;-)
17:07 sapier we just start a new one soon
17:14 celeron55 what changes related to this bug have there been?
17:14 zat ShadowNinja: that wont make difference unless I want to use certain functions for date/time.
17:14 zat still, they should work
17:14 celeron55 i have some very strange behavior and would really like to make sure it's not caused by some half-thought quickfix
17:15 sapier I remember only one bugfix directly related to entities that one where entities got disabled by client while server still thought they were active thus they never got resent to client
17:15 celeron55 where's that?
17:15 celeron55 sounds relevant
17:16 sapier puuhh was marged some months ago
17:16 sapier merged
17:16 celeron55 yes, what is the commit message or changed line or something?
17:16 celeron55 or who did it
17:16 sapier I have a look for it
17:20 sapier https://github.com/sapier/minetest/commit/0ac74f36e2599116897f3e27ca973162a8dbbe3f
17:21 celeron55 wtf
17:21 celeron55 i have a local modification here that basically rolls back that change
17:22 sapier then you'll loose entities on client again
17:22 celeron55 that "fix" isn't a fix at all; it somehow avoids the client losing the object by duplicating the object
17:22 sapier actually the client doesn't loose the object
17:22 celeron55 so that the one that the client lost stays on the server and the server creates a duplicate that it sends to the client
17:22 sapier the object is unloaded on purpose
17:23 celeron55 that patch is the main reason for object duplication
17:23 sapier ok then we need to find a way to make server send objects to clients again
17:23 celeron55 well OBVIOUSLY we do
17:24 sapier I guess I didn't see the duplication there but what I know is client deactivates the object while server doesn't
17:24 sapier and server only sends objects on activation thus the object never is sent again
17:25 celeron55 the server deactivates the object just fine
17:25 sapier it's quite simple to trigger the bug I tried to fix there
17:25 celeron55 the issue is that it somehow doesn't re-activate it afterwards when it should
17:25 sapier put a object somewhere
17:25 celeron55 i can reproduce this completely predictably
17:25 celeron55 that's why i am so directly blaming you
17:26 celeron55 8)
17:26 sapier I don't have a problem yet if this one isn't a propper solution for the original problem we still need a solution for that one ;-)
17:27 celeron55 well i would be far in the making of it by now if i wouldn't have had to hunt this down first
17:27 sapier while missing entities are way better as of servers point of view ... for gameplay missing is as bad as duplication
17:28 sapier don't blame me I told multiple times that this fix might be related to duplication ... a fix for loss is always suspicious for duplication ;-)
17:28 ShadowNinja zat: It will work until time needs more than 32 bits. You also should align things with spaces, as developers set different tab widths. (I use 8, it looks like you use 4)
17:28 PilzAdam sapier, you do realise that the duplications are more than 1000 per object, that causes massive FPS dropdowns (from 60 to 1 or 2)
17:28 PilzAdam and you think that is as bad as missing objects for the gameplay?
17:29 sapier it is
17:29 sapier in fact you almost everytime loose most of entities until you restart client
17:29 celeron55 i found the original bug now... and it's really trivial
17:30 celeron55 (...if one knows how this thing works)
17:30 sapier :-) obviously you're the only one who really does numerous ppl have been looking for the entity loss issue before me
17:31 djdduty joined #minetest-dev
17:31 sapier need to restart my router ... firmware update
17:33 sapier btw celeron55 you did look at that commit prior merge too ;-)
17:33 zat ShadowNinja: you really think my table structure will remain unchanged until 2038?
17:34 zat and that compilers / storage engines won’t work that around even if so?
17:34 zat :PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
17:34 PilzAdam zat, whats wrong with changing it to work until the universe collapses?
17:35 sapier1 joined #minetest-dev
17:35 sapier1 btw celeron55 you did look at that commit prior merge too ;-)
17:35 zat PilzAdam: having searches on integer columns perform much better than in numeric (actually varying char) columns.
17:36 celeron55 sapier: it's impossible to know if a bugfix is correct without understanding the bug
17:36 celeron55 nobody understood that bug at the time
17:36 sapier1 of course obviously I missunderstood bug too
17:38 celeron55 understanding this bug is actually quite easy; it's related to the two different forms of static objects; but a correct fix requires more than little of thought
17:38 sapier It's always easy if you know how things are supposed to work ;-)
17:39 sapier yet I'm glad if this is fixed correct finaly
17:39 ShadowNinja zat: And at least one newline between functions please.
17:39 sapier my appologies to everyone suffering from incorrect fix
17:40 zat ShadowNinja: stop forcing me to code the way you personally like
17:41 zat once again and I am done contributing to minetest.
17:42 sapier zat http://dev.minetest.net/Code_style_guidelines is the only thing you are forced to do ... everything else is things you to to make coredevs more pleasant to merge the pulls ;-)
17:43 ShadowNinja ^ I beleive that requires two newlines, but that isn't really folowed in the code, although one is.
17:44 sapier lol "Contrary to what some people may believe, NULL is a part of the official C++ standard. " someone wanted to have last word ... right ;-) NULL is defined in standard as "implementation specific" ... so at least that sentence is correct :-)
17:44 zat even a single newline between functions makes them look horrible when folded in vim.
17:45 sapier don't use vim ;-) imho between functions there should even bee a /***/ line ;-)
17:45 zat eh
17:45 sapier at least in cpp files ... but that's my personal preference too
17:46 ShadowNinja zat: Folded? I use vim and they look better with a newline.
17:46 sapier vim .... surrounded by masochists :-)
17:47 zat ShadowNinja: that is your humble opinion.
17:47 zat sapier: ???, I just cannot stop using vim now.
17:47 sapier I know it's difficult to switch habits
17:47 zat Give me another IDE and code ends up full of :w, :x, :q and closing the document accidentally every one minute.
17:49 celeron55 i use vim
17:49 sapier everyone should use it's editor of preference yet code needs to be as easy to read as possible for all editors
17:49 celeron55 but i don't use folding of functions in vim, and if the folding of functions looks bad in some editor, it's the editor's, not the codes fault
17:49 sapier I gues snow I know why debug is -O1 :-)
17:50 proller astyle --style=attach --indent=tab --keep-one-line-blocks --keep-one-line-statements --indent-classes --pad-oper *.cpp *.h
17:50 sapier celeron if that would be true we wouldn't have to stick to 80 chars per line
17:50 proller ^ minetest-friendly
17:50 zat celeron55: I cannot blame the editor for not looking the way that I personally like.
17:51 celeron55 proller: --indent-classes is wrong
17:51 zat Or at least cannot say, objectively, it is not a good editor.
17:52 celeron55 it's sad that vim uses it's own obscure scripting language but whatever, can't help that
17:53 sapier celeron is the magic all entity problems fixing pull request supposed to be #1k
17:53 rubenwardy joined #minetest-dev
17:53 celeron55 i hope nobody creates a pull request or issue before i get this properly tested
17:54 celeron55 maybe i should already create it and update it along the way
17:54 sapier I suggest creating it and add force push the final version ;-)
17:54 sapier :-) same idea
17:56 celeron55 https://github.com/minetest/minetest/pull/1000
17:56 celeron55 8)
17:56 sapier "once and for all" brave claim :)
17:57 rubenwardy Woooo hoooo!
17:58 celeron55 if that happens to compile, feel free to test; but it's not intended to work yet
17:58 celeron55 recompiling after switching branch on my laptop takes so many minutes i guess i'll go eat now
17:59 kaeza yay pull #1000 :D
17:59 rubenwardy 1000 :O
18:00 sapier lets open some bottles of champagne ;-)
18:00 ShadowNinja sapier: So, why are spaces in list names invalud?
18:01 sapier because it crashes serialization :-) ask PilzAdam he said this is invalid anyway
18:01 sapier my patch just prevents ppl from creating those lists
18:01 ShadowNinja Ah, just saw his comment. Perhaps serialization should be fixed then.
18:02 sapier I don't see any use in listnames with " " ... they're identifyers not descriptions
18:02 sapier yes technicaly " " is a character as any other :-)
18:03 PilzAdam ShadowNinja, the format is "List main 32" so "List <name> <size>"
18:03 ShadowNinja Yes, but why not allow "This is some list with\nfancy characters. :-)"
18:03 Jordach joined #minetest-dev
18:04 ShadowNinja "List with\ spaces 123"
18:04 kaeza don't see why would anyone use spaces in list, as sapier said
18:04 kaeza listnames*
18:04 sapier why increase complexity of code for no sane reason?
18:04 ShadowNinja Ok, it can always be added later...
18:05 sapier yes but imho only if someone really finds a sane reason to do so ;-)
18:05 PilzAdam ShadowNinja, it can not be added without breaking the serialization format, so that will not happen
18:06 sapier PilzAdam did you read my explanation in pull request?
18:07 PilzAdam yes
18:07 sapier any open questions left?
18:09 sapier I remember someone fixed the formspec chat overlay issue some weeks ago better then my version does anyone remember who did this?
18:10 thexyz proller: #999 how about looping through the list of players and checking if the player we're sending message to is the one who died?
18:11 sapier I know we can't handle e.g. 64 players yet but do we really want to send that information to all of them? think about some sort of deathmatch this will mess up screen
18:11 proller sapier, i can ;)
18:12 sapier especially if those damn chat messages stop you from clicking formspecs ;)
18:12 PilzAdam it should be done by a mod, rather than forced to everyone by hardcoding it in the engine
18:13 proller maybe make it in lua by default?
18:14 proller and remove hardcoded +          //chat_backend.addMessage(L"", L"You died.");
18:14 sapier and maybe add a config switch around it too :-)
18:14 celeron55 now #1000 should work
18:15 celeron55 there has been two distinct object duplication bugs
18:15 celeron55 the other one i fixed already, and the other one was caused by sapier's patch
18:16 sapier and the original entity loss too?
18:16 celeron55 what i fixed already had existed since forever
18:16 celeron55 i've fixed that correctly now
18:16 celeron55 read the commit message
18:17 celeron55 now, the question is, is there a third one? 8)
18:18 sapier I know how to check the loss problem so this is easy to check
18:20 sapier sad to tell entity loss isn't fixed
18:20 PilzAdam celeron55, "item duplication"? arent we talking about object duplication?
18:21 celeron55 message fixed 8)
18:21 celeron55 sapier: what is your test case?
18:21 sapier add a entity e.g. a cart or something else run beyond visible range and run back to that entity
18:22 celeron55 oh crap, how did it work when i tested exactly that just a moment ago
18:22 sapier my testcase was a cart moving out of sight by itself ... I ran behind it but it kept away
18:22 sapier logging out and in brought it back
18:27 celeron55 i tested it again and found one problem, which might or might not have happened to you (pull updated now)
18:28 celeron55 oh, okay
18:28 celeron55 it looks like that case isn't handled
18:44 VanessaE joined #minetest-dev
18:44 sapier tell me once I shall test again
19:12 troller joined #minetest-dev
19:12 proller joined #minetest-dev
19:30 ShadowNinja I made rollback_check work the way I wanted. The results are limited to 5 by the query though, which I would like to change.
19:39 Fadi joined #minetest-dev
19:41 celeron55 sapier: now
19:53 sapier way better
19:53 celeron55 i am quite sure you can't get any hidden or duplicated objects now
19:53 celeron55 prove me wrong
19:53 sapier ran behind a cart for 10 minutes now didn't vanish once
19:59 sapier celeron you didn't reverte my change for the hack is this correct or did you miss it?
20:02 ShadowNinja zat: (ABS(`x`) - ABS(?)) <= ?  <-- Should'nt this be "ABS(`x` - ?) <= ?"?
20:05 ShadowNinja You can now see the whole rollback log if you use something like "/rollback_check 1000 10000000 1000000" :-D
20:05 ShadowNinja ($3 == limit)
20:06 VanessaE um... help?  http://pastebin.ubuntu.com/6407131/
20:06 VanessaE ( ^^^^ shaders are *disabled* )
20:07 PilzAdam VanessaE, is that master, or RBAs branch?
20:07 VanessaE master.
20:07 VanessaE well with a bunch of my patches, but nothing I wasn't using yesterday
20:08 PilzAdam whats the diff against master with your patches?
20:08 zat ShadowNinja: about the abs operation, I am not sure
20:08 zat I just copied it :)
20:09 VanessaE PilzAdam: quite a large diff.  let me just check against master first.
20:09 PilzAdam VanessaE, also a verbose log when its reproduceable
20:09 zat ShadowNinja: might there be some case in which both would yield different results?
20:11 EvergreenTree joined #minetest-dev
20:11 ShadowNinja zat: I beleive -100 == 100 there. Anyway, I was getting incorrect results, changed that, and now it works.
20:13 ShadowNinja zat: I also optimized get_last_node_actor by using a limit of 1 and front() insteat of a loop that stops on the first entry.
20:13 zat ShadowNinja: I am pretty sure the old code used two ABS()s too. Maybe the old code was bad too.
20:13 ShadowNinja I think I will just alias it in Lua to get_node_actors(limit=1)[1]
20:13 zat But nobody ever noticed since nobody ever dared to try a too big rollback_check :)
20:14 ShadowNinja Of course does anything use the rollback functions other than builtin?
20:14 zat idk
20:14 Miner_48er joined #minetest-dev
20:15 zat When I have time again I would like to make times more human friendly. So I can provide arguments such as 1m, 2d, 1w.
20:19 ShadowNinja *shrug* It takes three lines in depreciated.lua to be compatible, so I'l leave it.
20:19 VanessaE PilzAdam: clean build from master, currently up-to-date.  terminal output,  http://pastebin.ubuntu.com/6407183/   debug log, http://pastebin.ubuntu.com/6407186/
20:20 celeron55 sapier: your change for the "hack" did nothing in practice
20:21 VanessaE this happens when connecting to my Realtest server ( vanessae.mine.bz 30000 ) but only when HDX is enabled.
20:21 VanessaE er 30004 is realtest.  doesn't happen when connecting to, say, survival (30001)
20:21 celeron55 sapier: i only reverted the part that broke stuff
20:23 sapier ok hope the other thing isn't wrong too
20:28 troller crashing server on any lua error is annoying
20:28 sapier hopfully shadow completes his fixes soon
20:28 troller 80% mods can crash
20:29 troller 2-3 times today 8(
20:29 sapier that won't change ;-)
20:29 celeron55 there needs to be very good error reporting if it's made to not crash
20:30 celeron55 not so that you need to go look in a 100k line log
20:30 troller maybe special file, or just grep in debug.log
20:30 celeron55 maybe the server could write a file for each error in an error report directory
20:30 sapier yet what shall server do in case of lua error ... just continue?
20:30 VanessaE debug build of minetest, master branch, showing the crash on joining the offending server:  http://pastebin.ubuntu.com/6407236/
20:30 celeron55 sapier: that's a problem too
20:30 VanessaE with gdb backtrace.
20:31 celeron55 sapier: ...actually, that's a pretty considerable problem
20:31 troller sapier, break current lua function, and continue
20:31 troller maybe break step
20:31 sapier in worst case a mods internal data are completely messed up causing even more harm
20:31 celeron55 troller: that's what javascript in browsers do... and it kind of works
20:31 celeron55 so maybe it's reasonable in minetest too
20:31 sapier yes but javascript usually doesn't modify your hdd
20:32 troller sapier, if lua code breaked - it cant write bad data to file (in this step)
20:32 celeron55 well these days there's localstorage and cookies and whatnot... but yeah, it kind of depends on the mod
20:32 PilzAdam VanessaE, I cant look into that now, I have to go to sleep; bye
20:32 VanessaE why is minetest fucking with shaders when I explicitly turned them off in the config?
20:32 troller maybe unload mod (but it harder)
20:32 sapier you think about mods not storing global data persistent for other steps
20:33 celeron55 the only way to unload a mod is to reload all mods leaving that mod out
20:33 celeron55 in a clean lua environment
20:33 sapier might be possible
20:33 celeron55 i think that functionality should be done some day
20:33 sapier I guess this wouldn't be hard to do too
20:34 sapier mainmenu engine is created each time a game is left this should work for scriptapi engine too
20:34 celeron55 if it was possible to reload the lua environment, it would also be possible to add a new mod without dropping clients
20:34 sapier wait ... the register things may be difficult
20:34 ShadowNinja What should the format of the rollback_check messages be? I have "%s changed %s at %s to %s %d seconds ago." currently.
20:35 celeron55 it needs syncing with clients
20:35 celeron55 basically redo the initialization that is currently done only right after connecting
20:35 sapier ok way more effort than initial thought ... as always :-)
20:36 celeron55 and it would be quite slow and definitely noticeable to players
20:37 sapier better stall for some seconds than for minutes till restart
20:37 troller add or update mod
20:37 werwerwer_ joined #minetest-dev
20:38 sapier hmm maybe it may be even less effort to mark a mod bad in error handler and still crash server, a restart script would restart while bad marker will prevent loading of a mod on restart
20:38 sapier yet that requires to find out what mod crashed the server
20:38 celeron55 one option is to not implement runtime reload but rather just tell clients to reconnect automatically and restart the whole server
20:38 celeron55 it would be quite easy
20:39 celeron55 everything is persistent anyway
20:39 celeron55 and server boot time is quite minimal
20:39 sapier yes but to detect what mod crashed server we'd need to do something similar to what I do in mobf to do statistics
20:40 celeron55 that'd need to be done in any case, yes
20:40 sapier so each register call needs to modify the called function adding a wrapper providing the modname
20:41 sapier this way we could even find out which mods cause most cpu load
20:45 ShadowNinja Currently minetest.rollback_get_node_actions returns a list of http://pastebin.ubuntu.com/6407308/ Should I use tables instead of strings there?
20:46 sapier shadwo is your lua errorhandler fix ready?
20:47 ShadowNinja sapier: Yes, I beleive so. Have you looked it over?
20:47 VanessaE so what about my crash?
20:47 sapier can you reproduce it?
20:47 VanessaE many times over.
20:48 sapier in master too?
20:48 VanessaE in master.
20:48 sapier any idea how to trigger it?
20:49 VanessaE lemme re-check it just to be safe
20:50 sapier Shadow any chance you change LuaError back to LuaError(L,"text") I don't se any need for rotating it ;-)
20:50 VanessaE oh great.  Now it's going to make a liar out of me AGAIN
20:50 VanessaE I'm getting sick of this shit
20:51 ShadowNinja sapier: I needed to switch it to make the lua_State* optional.
20:51 VanessaE sapier: I posted the results above.  HDX 256px + my realtest server == crash in some obscure shaders function that should not have been being used to begin with, as shaders were disabled.
20:52 ShadowNinja (Otherwise you get two backtraces or need another boolean argument.
20:52 sapier is it necessary to be optional?
20:54 sapier there are exactly 2 situations where you don't have a second parameter ... you need to change way more than 2 lines to rotate the parametest ... you could supply NULL in those lines and reduce the patch drasticaly
20:59 sapier greate those shaders are right after reading shader configuration ... but it's just ignored :)
21:01 VanessaE sapier: ok, I can reproduce it consistently with master.
21:02 VanessaE same crash as noted above.  get HDX 256, Turn on any or all settings you want except leave preload-item-visuals turned off.  connect to vanessae.mine.bz 30004 .
21:03 sapier shaders aren't exactly disabled there could you try modifying mapblock_mesh.cpp ~ L1113 http://pastebin.com/ZPkZF8X4
21:03 VanessaE um..
21:04 sapier it's a quick fix I think those materials should be defined later
21:04 sapier just remove the shadermat1-bumpmaps2 block
21:04 sapier replace it by those things in the pastebin
21:07 VanessaE sapier: so, http://pastebin.com/8Mer7Wn4   --->   http://pastebin.com/2dtFixkR
21:07 VanessaE like that?
21:07 sapier seems to be fine yes
21:08 VanessaE sapier: no good.
21:08 sapier no build or still crashing?
21:09 VanessaE still crashes, but in a different place now:
21:09 VanessaE http://pastebin.ubuntu.com/6407414/
21:11 sapier ok so that bug with shaders is unrelated to your crash
21:11 celeron55 seems like memory corruption to me
21:12 troller die and join message from lua - https://github.com/minetest/minetest/pull/999/files  need to add config option "die_broadcast" ?
21:12 celeron55 run it in valgrind (and go eat your preferred kind of meal while it takes forever to danything)
21:12 sapier my first thought too but it's now a completely different location yet same assertion
21:12 celeron55 do anything*
21:12 celeron55 that assertion is a very basic sanity check that will never fail unless memory is corrupted
21:13 VanessaE want a full backtrace of it?
21:13 VanessaE this is a debug builg
21:13 VanessaE build*
21:14 sapier or reqeuests within texture queue are messed up yet I don't see a reason why a mutex queue should be messed up
21:15 VanessaE here's what's left on the minetest window at the time of the crash:  http://digitalaudioconcepts.com/vanessa/hobbies/minetest/screenshots/Screenshot%20-%2011122013%20-%2004:13:36%20PM.png   --- and here's the full debug + backtrace from gdb:   http://pastebin.ubuntu.com/6407451/
21:16 celeron55 sapier: i have never seen that queue system fail in any way whatsoever
21:16 celeron55 sapier: and it has been there since the start of time
21:16 celeron55 so it seems unlikely
21:17 Taoki joined #minetest-dev
21:17 sapier I don't see any way how this could fail in code too ... yes I know thats no guarantee it isn't there :-)
21:18 sapier I vague remember a similar problem months ago
21:22 VanessaE switching to a smaller size of HDX (e.g. 128px instead of my usual 256 px) or disabling it entirely is enough to get around the crash, if that tells you anything at all.
21:22 celeron55 so is valgrind impossible?
21:22 VanessaE and earlier 256px with preload item visuals turned *ON* also worked.
21:22 VanessaE I have valgrind, but I don't have a clue how to use it
21:22 VanessaE (haven't had a chance to research)
21:22 sapier does that strange png warning occur with smaller textures too?
21:22 celeron55 well, "valgrind bin/minetest"
21:23 sapier just run valgrind minetest and post results
21:23 VanessaE oh just that?  sure.
21:23 celeron55 valgrind is like magic... magic that burns infinite CPU
21:23 sapier be prepared to wait ... minetest will get really slow
21:23 VanessaE ok, off it goes.
21:24 celeron55 it makes everything about 50 times slower 8)
21:24 VanessaE heh
21:24 sapier imho 50 is average :)
21:24 sapier can be 100 too
21:25 VanessaE weird.  under valgrind it's fine, if slow .
21:25 celeron55 it also consumes multiple times the amount of memory
21:25 ShadowNinja Can serialized node metadata contain nul?
21:26 sapier it doesn't crash within valgrind?
21:26 VanessaE sapier: nope.
21:26 celeron55 valgrind results in a slightly varied memory layout which maybe places the corruption in a more lucky place
21:27 sapier yes but it should warn anyway could you post the valgrind output somewhere?
21:27 VanessaE shall I quit from the program now?
21:27 sapier yes
21:27 celeron55 it doesn't know the "intention" of any memory access
21:27 VanessaE sapier: sure, sec.
21:28 celeron55 it can only check for segfaults and uninitialized memory, which won't happen in the "right" circumstances
21:28 sapier no it doesn't know intention but chance to acces somewhere beyond is way better than correct access
21:28 celeron55 it is, but it doesn't always happen; i have had many such experiences
21:28 sapier I know but it's a chance
21:30 sapier at least if you don't have a more promissing suggestion?
21:30 VanessaE waiting for gedit to capture the whole output from a second run...
21:30 sapier *g*
21:30 VanessaE "==26849== More than 1000 different errors detected.  I'm not reporting any more."
21:30 VanessaE HA!
21:31 celeron55 if i was VanessaE, i would implement some kind of a global function that walks through and sanity-checks TextureSource's queue and abort()s if it's not valid, and call it basically absolutely everywhere in order to bisect where it gets corrupt
21:31 sapier another option is printf debugging (output of values)
21:32 sapier :-) sounds like something one of my collegues did .... just to realize memory handling is fine and a invalid destructor got called :-)
21:33 VanessaE (or I could just use the --log-file switch in valgrind, duh)
21:33 sapier vanessa is 256x texturepack only requirement?
21:33 celeron55 i debugged one thing at work with that kind of an approach... and in the end i found i didn't yet really understand what i should be searching for 8)
21:34 VanessaE sapier: seems that at present, either 256 or 512px will crash it, but 128 doesn't.
21:34 sapier it's quite normal ... just some days ago I did search a week for some communication handling error just to realize it was a obscure endianess bug
21:34 sapier ok I try to reproduce
21:35 VanessaE try other sizes also, if you can
21:35 VanessaE thing is:  Realtest is mostly UNSUPPORTED in HDX.
21:35 VanessaE so why it even crashes at all, is a big mystery
21:36 sapier do I need to install realtest too?
21:36 VanessaE only, basically, the stuff from minetest_game default is found here.
21:36 VanessaE no, just connect to vanessae.mine.bz 30004
21:36 sapier first I need to find your texture pack
21:37 celeron55 it would be useful to poke memory in the core dump around where result.key and name are
21:37 VanessaE screenshot of the client running under valgrind, successfully:  http://digitalaudioconcepts.com/vanessa/hobbies/minetest/screenshots/Screenshot%20-%2011122013%20-%2004:36:27%20PM.png
21:37 celeron55 using gdb
21:37 celeron55 like, just dump out some thousands of raw bytes
21:37 celeron55 the data going there might be identifiable
21:38 VanessaE good idea
21:38 celeron55 and... to do that, use: google
21:38 sapier I'd first try errorstreaming key and name ... quick to do
21:38 celeron55 i bet nobody in this world remembers how to print out correctly formatted stuff in gdb
21:38 VanessaE ok, got it crashed in gdb.  how do I do that memory dump?
21:38 VanessaE haha
21:38 VanessaE ok
21:39 * VanessaE googles
21:39 Fadi joined #minetest-dev
21:39 sfan5 PilzAdam would tell you to not use google now :P
21:40 VanessaE ok first I gotta find the address of the crash
21:40 VanessaE #2  0x00000000006ac080 in assert_fail (assertion=assertion@entry=0xb52dd6 "result.key == name",
21:40 VanessaE there?
21:41 sapier ok 256 isn't enough
21:41 sapier I used your photorealistic pack did you use another one?
21:42 VanessaE sapier: this one, https://github.com/VanessaE/hdx-256
21:45 sapier ok that's a different one
21:46 troller https://github.com/codetiger/IrrNacl  https://developers.google.com/native-client/pnacl-preview/overview ...
21:49 celeron55 VanessaE: are you still at that gdb prompt?
21:49 VanessaE yes
21:49 VanessaE and the web is as cryptic as ever when it comes to telling a noob how to operate a program like gdb :P
21:50 celeron55 this is the best guide there is, but i'll tell you exactly what to do http://www.delorie.com/gnu/docs/gdb/gdb_56.html
21:50 VanessaE heh, I'm on that page now.
21:50 celeron55 so tell this to gdb:
21:50 celeron55 print result.key
21:50 celeron55 print name
21:50 celeron55 print &result.key
21:50 celeron55 print &name
21:50 celeron55 ...actually, leave those two later ones out
21:51 VanessaE http://pastebin.ubuntu.com/6407635/
21:51 VanessaE um.  ouch :)
21:51 celeron55 print result then
21:51 celeron55 -then
21:51 VanessaE (gdb) print result
21:51 VanessaE $2 = '\000' <repeats 113 times>
21:51 celeron55 8) maybe i'll use some quotes
21:52 celeron55 gah, give me the backtrace
21:52 VanessaE coming right up.
21:52 VanessaE http://pastebin.ubuntu.com/6407647/
21:52 sapier still not crashing ... I'm trying to connect to your server
21:54 sapier do I need to enable or disable preloading?
21:55 VanessaE disable.
21:55 celeron55 okay so for gdb: "frame 3"
21:55 celeron55 then try print result
21:56 VanessaE http://pastebin.ubuntu.com/6407668/
21:56 celeron55 and "print name"
21:57 VanessaE (gdb) print name
21:57 VanessaE $4 = (const std::string &) @0x7fffe4a159f0: {static npos = <optimized out>,
21:57 VanessaE _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x7fffd017d488 "default_torch_animated.png^[verticalframe:16:0"}}
21:57 VanessaE (those torch images have not been modified since June)
21:58 celeron55 okay so
21:58 sapier ok worksforme ... :-/
21:59 celeron55 "default_torch_on_ceiling_animated.png^[verticalframe:16:0" <- result.key
21:59 celeron55 "default_torch_animated.png^[verticalframe:16:0" <- name
21:59 celeron55 so the string itself isn't borked but something where the string comes is
22:00 celeron55 and it's borked in some very fine way that doesn't break it completely
22:01 VanessaE can I break 'em or can't I? :)
22:01 sapier If I'd not know better I'd say wrong thing was returned
22:02 celeron55 seems quite impossible to debug this way
22:02 celeron55 we need a more blatant crash
22:03 celeron55 and a more early one
22:03 VanessaE "more blatant"...erm..
22:03 VanessaE :)
22:04 sapier vanessa you do run this on linux?
22:04 VanessaE sapier: yep
22:04 sapier what distribution?
22:04 VanessaE Xubuntu 13.10
22:04 VanessaE (inb4 lol ubuntu sux)
22:04 sapier hmm a little bit more recent than by debian
22:04 sapier yet not that far away
22:05 sapier and you run with current master
22:05 VanessaE yep, this is a clean build, no extra patches.
22:05 celeron55 how about just plain git bisect?
22:05 celeron55 can't really know if something would pop up or not
22:06 VanessaE maybe I could dump the core and put that up for download.
22:06 sapier still doesn't crash for me :-/
22:07 celeron55 it's not useful; it's probably practically impossible to dig through the std::list pointer structure to find out where in it is a problem if it's such a small difference
22:07 sapier maybe a texture queue trace would help
22:08 celeron55 VanessaE: gdb: "print m_get_texture_queue"
22:09 celeron55 also "print result_queue"
22:09 VanessaE ok.  Starting from a fresh run.  I need frame 3 again?
22:10 sapier yes
22:10 celeron55 yes, assuming the backtrace looks the same
22:10 VanessaE yep, seems the same.
22:10 VanessaE sec.
22:10 sapier celeron is there any special reason why this is done as mutex queue not as semaphore variant? except of jthread not supporting semaphore?
22:11 VanessaE http://pastebin.ubuntu.com/6407734/
22:11 celeron55 the only reason for anything is that i did it with plain jthread
22:11 sapier ok because i implemented jsemaphore for async things ... i don't like thise active sleeping things
22:14 celeron55 remember to have the timeout there or some other means to let it quit on shutdown of the program without getting a result
22:15 celeron55 VanessaE: nothing obvious there; git bisect is your friend 8)
22:15 VanessaE bisect!?  *shudder*
22:16 sapier or tell us more precise how to reproduce it ;-)
22:17 VanessaE sapier: what if I sent you my minetest binary?  can you run an amd64 build?
22:17 sapier worth a try
22:17 VanessaE catch.
22:17 VanessaE 81 MB
22:18 sapier 81MB ... wooo
22:19 VanessaE this is built against luajit, leveldb, curl, and irrlicht 1.8
22:19 sapier ok chances this will run are minor
22:20 sapier no leveldb no irrlicht-1.8 and no luajit ... last on would be quite easy to fix others ... especialy irrlicht is a problem on debian
22:21 VanessaE lemme try rebuilding against 1.7.3 and without the others
22:22 celeron55 you could also try valgrind --tool=helgrind
22:22 celeron55 if it's a thread locking issue
22:23 celeron55 but i don't know what to expect from there
22:23 VanessaE hm, there's no cmake option to disable luajit?
22:24 celeron55 oh wow
22:24 celeron55 i tried helgrind and minetest crashed to SIGILL
22:24 VanessaE eek
22:25 celeron55 apparently helgrind didn't like luajit 8
22:25 celeron55 8)*
22:25 VanessaE heh
22:25 Gronx joined #minetest-dev
22:26 celeron55 and no, there doesn't seem to be a cmake option for luajit
22:27 VanessaE sapier: I had to cancel the dcc
22:28 sapier no problem most likely it wouldn't have run for me
22:28 VanessaE ok, I compiled against 1.7.3, no curl, no leveldb
22:28 sapier ok helgrinding now ... this is even more slow than normal valgrind :-)
22:28 VanessaE still getting the same crash
22:29 sapier ok if you send me this version chances it will run for me are better
22:29 VanessaE sure, sec.
22:30 VanessaE uploading it to my web space so both of you can grab it
22:30 VanessaE http://digitalaudioconcepts.com/vanessa/hobbies/minetest/minetest
22:34 * VanessaE attempts to bisect (been years since I did this last)
22:37 VanessaE you know what, screw it.  I'm going all the way back to 0.4.0 and tracking this down once and for all :)
22:41 sapier sorry doesn't work I'm 3 glibc versions behind
22:45 VanessaE bummer.
22:46 sapier debian ;-) rock solid but outdated ;-)
22:46 VanessaE heh
22:49 sapier is there any special place on map maybe?
22:50 VanessaE over by my home, -366,36.-1215
22:50 VanessaE er  -366,36,-1215
22:51 sapier ok no idea how to get there but I don't think this is a realistic reason too
22:52 VanessaE whoa, that's fucked up
22:53 VanessaE it does not crash if I load the same world in singleplayer
22:53 VanessaE (as in, cp -av /path/to/server ~/.minetest/worlds )
22:53 sapier do you use a texture pack localy or download it?
22:53 VanessaE download?  eh?
22:53 sapier ok so local :-)
22:53 VanessaE oh, you mean HDX?  it's my local copy, symlinked from its usual storage dir into ~/.minetest/textures
22:54 VanessaE lrwxrwxrwx 1 vanessa vanessa   54 Nov 12 15:54 HDX-256px -> /home/vanessa/Minetest-related/texture-packs/HDX/256px
23:06 sapier vanessae enabling tile.cpp L 784 might help
23:06 VanessaE sec
23:07 VanessaE I'm redoing my system to clearly separate my servers' build tree from my local client.
23:07 VanessaE s/system/build system/
23:10 Taoki joined #minetest-dev
23:13 sapier i hate templates
23:13 kaeza amen
23:20 sapier wait i think there is a generic problem in there
23:20 sapier Thread A requests texture and gets scheduled before doing pop_front
23:21 sapier hmm forget about it ... different queues
23:28 VanessaE ok, I cannot reproduce the crash if I load the map in singleplayer.
23:30 sapier my guess is a very very rare timing bug in our thread handling I don't have any idea what that callerdata/id thing is supposed to do maybe it's correct maybe not ... at least is seems to be the only thing that may be involved (except a generic memory access error)
23:30 sapier I'll have a closer look at this tomorrow
23:31 sapier left #minetest-dev
23:31 VanessaE fwiw I have not yet started that bisect.  I'm making 100% sure I didn't break anything
23:33 ShadowNinja Thoughts? https://github.com/ShadowNinja/minetest/compare/sqlite_rollback
23:36 ShadowNinja VanessaE: Care to try that? :-) /rollback_check takes about 0.1s now on a old copy of my server rollback(7826433 entries).
23:36 VanessaE maybe later on after I come to some conclusion with this client bug
23:48 VanessaE ok, I purged every last minetest-related thing from my box (except backups and my servers' files), re-installed a server-only build, completely from scratch, with only shadow's pcall_errfunc patch.  The servers are behaving normally.   The client is a run-in-place build, 100% clean upstream, and is stored and run totally separate from the servers.  It still crashes exactly as before.
23:51 VanessaE but that's only the client connecting to the server - I can't reproduce the crash when running the very same map in singleplayer.
23:58 VanessaE http://pastebin.ubuntu.com/6408110/

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