#exult@irc.freenode.net logs for 6 May 2012 (GMT)

Archive Today Yesterday Tomorrow
Exult homepage

[00:34:28] --> Kirben has joined #exult
[00:34:28] --- ChanServ gives channel operator status to Kirben
[02:55:56] --> Marzo has joined #exult
[03:16:55] <-- Marzo has left IRC (Remote host closed the connection)
[03:25:37] --> Marzo has joined #exult
[03:38:29] <-- Marzo has left IRC (Ping timeout: 245 seconds)
[03:38:51] --> Marzo has joined #exult
[03:40:51] <-- Marzo has left IRC (Remote host closed the connection)
[03:49:13] --> TheCycoONE has joined #exult
[09:06:56] <-- TheCycoONE has left IRC (Ping timeout: 244 seconds)
[10:08:10] --> SiENcE has joined #exult
[12:56:04] --- Sevalecan is now known as Sev
[13:03:09] <-- SiENcE has left IRC (Quit: cya)
[13:05:38] <-- Kirben has left IRC (Ping timeout: 240 seconds)
[13:38:20] --> Marzo has joined #exult
[16:27:27] --> SiENcE has joined #exult
[16:38:00] <-- SiENcE has left IRC (Ping timeout: 260 seconds)
[16:51:43] <sh4rm4> nutron, you might want to test the latest SVN head. afaict, it solves the disappearing items bug
[16:52:16] <sh4rm4> (and other related bugs)
[16:55:11] --> SiENcE has joined #exult
[16:55:56] <-- SiENcE has left #exult
[17:44:56] --> DominusMobile has joined #exult
[17:45:51] <DominusMobile> Sh4rm4, I doubt that marzo fixed the disappearing objects bug withthis
[17:46:34] <DominusMobile> And when I look at your bug report, are you sure that all your problems weren't caused by your "fix"?
[17:46:36] <sh4rm4> well, i posted a savegame to the bugtracker, which had one kind of disappearing items bugs
[17:46:45] <sh4rm4> that is fixed
[17:47:08] <sh4rm4> and as i said, the real fix is the memleak in the int->bool commit
[17:47:53] <sh4rm4> this fixed all bug reports i filed
[17:48:01] <DominusMobile> The BIG problem is the whole stripping down of chunks
[17:48:28] <DominusMobile> And again, were those bugs before or after you applied your own fix?
[17:48:37] <Marzo> What I coincidence, I *just* got back from lunch
[17:48:42] <Marzo> And had two people in different chats highlight me at the same time
[17:48:45] <DominusMobile> He he
[17:48:47] <sh4rm4> some of them before, some later
[17:49:08] <sh4rm4> but the funny thing is, even the supposedly corrupted savegames work now
[17:50:21] <DominusMobile> sh4rm4: can you mark your bug reports as fixed? Or add to them at least that they are fixed so I can clean the tracker next time I have time to do that?
[17:50:30] <sh4rm4> my guess is that this memleak failed to free a pointer to some structure, which contents were freed later on
[17:50:46] <sh4rm4> so when the pointer was accessed next, it pointed to garbage
[17:50:55] <sh4rm4> and led to corruption of the game state
[17:51:28] <DominusMobile> Was this bug from you that killed party members were resurrected at once as inanimated statues? Killed by fire field?
[17:51:48] <sh4rm4> no, i didn't try to reproduce that one
[17:52:06] <sh4rm4> that bug is annoying, but not much
[17:52:22] <DominusMobile> That bug is just plain strange ;)
[17:52:50] <sh4rm4> could of course been related to the memory corruption
[17:53:01] <DominusMobile> Gonna have to test this again, when I return home...
[17:53:42] <DominusMobile> Marzo: thanks for fixing those double items
[17:54:05] <Marzo> It came by coincidence from an unrelated bug report
[17:54:21] <DominusMobile> ;)
[17:54:37] <Marzo> (which is actually spurious...)
[17:55:24] <DominusMobile> So do you think this that this takes care of the big problem? Or at least takes the edge off it?
[17:56:01] <sh4rm4> i think this was the real problem
[17:56:12] <sh4rm4> a tiny tiny memleak, causing random havoc
[17:58:57] <Marzo> Except it isn't
[17:59:16] <Marzo> If the memleak gets severe enough, Exult will simply crash
[17:59:30] <Marzo> Take, for example, Game_map::create_ireg_object
[17:59:47] <Marzo> It creates a new object based on data read from the map
[18:00:20] <Marzo> Basically, a bunch of conditions ending always in 'return new <object type>();'
[18:00:45] <Marzo> With enough memory being used, the 'new' will fail and return a null pointer
[18:00:56] <sh4rm4> well, i think that the leak caused accesses to already free memory, which happens to be readable
[18:00:58] <Marzo> Exult generally doesn't check to see if the object was created or not
[18:01:03] <sh4rm4> and not in unmapped memory
[18:01:22] <Marzo> That leak doesn't work like that
[18:01:23] <sh4rm4> glibcs malloc will never return freed memory to the kernel
[18:01:28] <sh4rm4> it'll reuse it
[18:01:40] <Marzo> It prevents the memory from being freed, and keeps the object in memory
[18:01:59] <Marzo> The chunks themselves will still refer to them for some time after being cached out
[18:02:23] <Marzo> The memory isn't released to the game, the kernel, or to anything else
[18:02:29] <sh4rm4> so, having that object reserved may have led to other code subtly breaking
[18:02:45] <Marzo> Not that I can see
[18:02:57] <sh4rm4> anyway, even my savegames which crashed immediately after the next "cacheout" work now
[18:03:25] <Marzo> After the chunk really dies in RAM, the objects will be truly leaked, being nreachable and undeletable
[18:03:44] <Marzo> s/nreachable/unreachable
[18:08:59] --> TheCycoONE has joined #exult
[18:18:54] <-- DominusMobile has left IRC (Quit: Rooms • iPhone IRC Client • http://www.roomsapp.mobi)
[21:44:44] <-- Baastuul_ has left IRC ()
[22:35:32] <nutron> sh4rm4: ahh, ok my friend started getting backtraces on the crashes... as well as looking for the disappearing items bug.
[22:35:49] <nutron> almost feels like the original version was just as bugged (in dosbox anyway)
[22:38:59] <sh4rm4> it might more sense to run the newest stuff in the debugger now... in case the issue persisted
[22:39:07] <sh4rm4> *make
[22:39:44] <nutron> I'll let him know, unfortunately I'm in LoG atm, next is U7 =)
[23:08:22] --> Kirben has joined #exult
[23:08:22] --- ChanServ gives channel operator status to Kirben
[23:47:11] <-- Marzo has left IRC (Remote host closed the connection)