[epiar-devel] [SPAM] Re: I am getting some errors during compile time.

Gerard Sweeney gerard0sweeney at gmail.com
Sun Aug 1 02:32:08 PDT 2010


I think I eventually found the problem, and I've pushed it to my github
repository and Matthew has pulled them into his repository.
The solution that I've implemented is change the 'string name' in the
StatusBar class into 'vector<char> name' - it seems like something in the
string reference counting (guessing here) wasn't playing nice with the
constant reassignment of the string object when it was changed via
Hud::setStatus() -> StatusBar::setName(). I saw something online about it
not working too well with multithreading so maybe there's something related
there? Once I made the fix I wasn't able to reproduce the exact same issue
again, although there's another crash signature that happens sporadically.

If any of you see the issue again please let me know and I'll try to figure
it out. This fail is a segfault that happens inside Hud::setStatus - you'll
see a printout for "Entering setStatus", the crashing signature is a
segfault before you see "Leaving setStatus" (or something similar).

~Ger


On Sun, Aug 1, 2010 at 1:41 AM, Gerard Sweeney <gerard0sweeney at gmail.com>wrote:

> Maoserr:
> Yes, shared pointers (now in std::tr1 rather than boost) is what I'm
> referring to.
>
> Matthew:
> You're correct actually - and this late at night I'm having trouble coming
> up with an explanation for it...
> In theory the 'new'ed memory should stay valid, but something is corrupting
> it - from what I could figure out earlier it's something to do with the
> string assignment in setStatus. For some reason, not using naked pointers
> (ie using smart pointers) stops this from happening. My first instinct when
> I see a naked pointer is to want to change it to a smart pointer as I've
> seen this kind of thing happen before. I'll try to pinpoint exactly where
> the corruption was occurring before I push my planned changes rather than
> relying on my intuition that this is guaranteed to fix it, though :-)
>
>
>
> On Sun, Aug 1, 2010 at 12:52 AM, Maoserr <maoserr at gmail.com> wrote:
>
>> I believe he's talking about using boost shared pointers, which we aren't
>> using right now. It's a reference counting pointer implementation.
>>
>> On Sat, 31 Jul 2010 19:43:44 -0400, Matthew Zweig <thezweig at gmail.com>
>> wrote:
>>
>> > Our development model so far has been to each work out of our own forked
>> > github repository.  That way, you make your changes, push them to your
>> > repository, and then I'll pull them into my repository after a quick
>> > test and review.  If you're not using the github email service hook to
>> > send commit emails to the commits mail list (epiar-commits at epiar.net),
>> > then either send me an email or a github pull request.  Otherwise I'll
>> > pull changes in when I notice them.
>> >
>> > You don't need my permission to commit and push your changes.  I'm only
>> > important so long as Chris (and Epiar.net ) keeps pointing people
>> > towards my repository instead of yours or somebody else's.  In the
>> > future we might want to create a group repository that we can all push
>> > changes to and label it the 'official' version.
>> >
>> >
>> > As for your change, I don't quite understand it.  (How are you going to
>> > store the actual objects?  "new" doesn't give you an object, it only
>> > gives you a pointer to an object).  But my C++ knowledge might be
>> > incomplete here, if your change solves the bug, I'd be thrilled to use
>> > it.  Obviously I created a bug here, and I can't find it, so that alone
>> > shows that I'm missing something pretty important.
>> >
>> > Thanks,
>> > ~Matt
>> >
>> > On Jul 31, 2010, at 4:27 PM, Gerard Sweeney wrote:
>> >
>> >> I'm pretty sure I've found at least one of the issues with the
>> >> StatusBar - there are objects being created with 'new' (in
>> >> Hud::newStatus) and the pointers are being stored in a list, but the
>> >> objects themselves are never stored.
>> >>
>> >> I'm going to convert the pointers to be stored in a list of shared_ptrs
>> >> instead of naked pointers as they are now, and I'll push the changes to
>> >> a branch in the github repository (if I have permissions to do so).
>> >>
>> >>
>> >> On Sat, Jul 31, 2010 at 9:22 PM, Matthew Zweig <thezweig at gmail.com>
>> >> wrote:
>> >> I don't follow, what did you change?
>> >>
>> >> I doubt that you're running out of memory, I've seen problems occur at
>> >> about that point in code as well.
>> >> For better or for worse, I've always seen the problem to be
>> >> intermittent, it only seems to crash there once in a few times.
>> >>
>> >> Something is wrong with the Hud / StatusBar management.  Can you new
>> >> developers help me find it?  "Many eyes make shallow bugs".
>> >>
>> >> ~Matt
>> >>
>> >> On Jul 31, 2010, at 12:56 PM, Erkin �nl� wrote:
>> >>
>> >> > i changed the if control on debug.load and started the game. but now
>> >> when i create a new player, StatusBar gives an error below, maybe my
>> >> machine runs out of memory?
>> >> >
>> >> > Creating Player: erkin
>> >> > Creating a new StatusBar 'Coordinate:' : Name(( 0 , 0 )) / Ratio(
>> >> 0.000000)
>> >> > Creating a new StatusBar 'Quadrant:' : Name(( 0 , 0 )) / Ratio(
>> >> 0.000000)
>> >> > Creating a new StatusBar 'Credits:' : Name($0) / Ratio( 0.000000)
>> >> > Creating a new StatusBar 'HULL:' : Name() / Ratio( 1.000000)
>> >> > Creating a new StatusBar 'Target:' : Name() / Ratio( 0.000000)
>> >> > Creating a new StatusBar 'Target:' : Name() / Ratio( 0.000000)
>> >> > *** glibc detected *** ./Epiar: free(): invalid next size (fast):
>> >> 0x0b376170 ***
>> >> >
>> >> >
>> >> > On Sat, Jul 31, 2010 at 10:44 PM, Gerard Sweeney
>> >> <gerard0sweeney at gmail.com> wrote:
>> >> > I found '?' so that gets me a bit further at least!
>> >> >
>> >> >
>> >> > On Sat, Jul 31, 2010 at 8:01 PM, Gerard Sweeney
>> >> <gerard0sweeney at gmail.com> wrote:
>> >> > Pretty basic question, but - are there instructions for actually
>> >> playing the game? I have it built but apart from basic movement I
>> >> haven't really figured out much else. I'm running into a couple of
>> >> segfaults as well - one is the StatusBar one that was already
>> >> mentioned, but also getting one when travelling around.
>> >> >
>> >> > Also looking for specific stuff to do, mainly hoping for C++ work.
>> >> >
>> >> >
>> >> >
>> >> > On Fri, Jul 30, 2010 at 9:20 PM, Matthew Zweig <thezweig at gmail.com>
>> >> wrote:
>> >> > It really depends on what kind of work you're interested in doing.
>> >> >
>> >> > If you are interested in working with Lua, I suggest creating a new
>> >> AI state machine.  See basics.lua and universe.lua. AI.cpp and
>> >> AI_Lua.cpp might be helpful if you want to see how things are hooked
>> up.
>> >> >
>> >> > If you want to work with OpenGL, you could create a 'shield' for the
>> >> Ships that could flash when the get hit.
>> >> >
>> >> > If you want to solve a lingering bug, look at the StatusBar class.
>> >> It seg-faults occasionally just after the player is loaded and the game
>> >> starts.  I'm fine with it being completely rewritten if that's what it
>> >> takes.
>> >> >
>> >> > I'll come up with a few more short wishlist items for people to
>> >> explore later.  Glad to have you on board.
>> >> >
>> >> > ~Matt
>> >> >
>> >> > On Jul 30, 2010, at 10:58 AM, Ryan Borre <ryan.borre at gmail.com>
>> wrote:
>> >> >
>> >> > > Nice. So what exactly needs to be done? Code compiles, runs, etc. I
>> >> need
>> >> > > something to work on.
>> >> > >
>> >> > > On 7/30/2010 12:31 PM, Christopher Thielen wrote:
>> >> > >>   Although it's not always active, channel #epiar on
>> >> irc.freenode.net is
>> >> > >> our 'live chat' standard. If we have any meetings or enough people
>> >> idle
>> >> > >> in there, it can be fun. :)
>> >> > >>
>> >> > >> On 7/29/10 5:11 PM, Ryan Borre wrote:
>> >> > >>
>> >> > >>> Is anyone familiar with Google Wave? It works great for
>> >> collaborating
>> >> > >>> with groups of people. Just thought I would mention it.
>> >> > >>>
>> >> > >>> On 7/29/2010 12:32 PM, Ryan Borre wrote:
>> >> > >>>
>> >> > >>>> Are you using Ubuntu?
>> >> > >>>>
>> >> > >>>> On 7/29/2010 12:29 PM, Maoserr wrote:
>> >> > >>>>
>> >> > >>>>> hmm, on linux, fresh checkout of the master branch doesn't
>> >> compile.
>> >> > >>>>> Am I
>> >> > >>>>> missing something here?
>> >> > >>>>>
>> >> > >>>>> /home/maoserr/Code/Epiar/Source/Engine/simulation.cpp: In
>> member
>> >> > >>>>> function
>> >> > >>>>> ‘bool Simulation::Run()’:
>> >> > >>>>> /home/maoserr/Code/Epiar/Source/Engine/simulation.cpp:145:11:
>> >> error:
>> >> > >>>>> cannot call constructor ‘Hud::Hud’ directly
>> >> > >>>>> /home/maoserr/Code/Epiar/Source/Engine/simulation.cpp:145:11:
>> >> > >>>>> error:   for
>> >> > >>>>> a function-style cast, remove the redundant ‘::Hud’
>> >> > >>>>>
>> >> > >>>>>
>> >> > >>>>> On Thu, 29 Jul 2010 12:50:04 -0400, Christopher
>> >> Thielen<chris at epiar.net>
>> >> > >>>>> wrote:
>> >> > >>>>>
>> >> > >>>>>
>> >> > >>>>>>     Any chance you could sync with knowknowledge's Epiar
>> >> master and push
>> >> > >>>>>> only this one fix (adding the configure.in checks)? If not
>> let
>> >> me know
>> >> > >>>>>> as I can push them; I'm not sure since I believe you're that
>> >> damn cmake
>> >> > >>>>>> guy! :)
>> >> > >>>>>>
>> >> > >>>>>> On 7/29/10 9:23 AM, Maoserr wrote:
>> >> > >>>>>>
>> >> > >>>>>>> I was going to fix the mixer problem but then the memory
>> >> corruption
>> >> > >>>>>>> issues
>> >> > >>>>>>> cropped up and I haven't looked at it since.  The problem is
>> >> that
>> >> > >>>>>>> Ubuntu
>> >> > >>>>>>> uses an older version of SDL_mixer that cannot dynamically
>> >> load
>> >> > >>>>>>> libraries.  While I put in runtime conditionals to check for
>> >> sdl_mixer
>> >> > >>>>>>> version, I did not put in compile time conditionals to check
>> >> > >>>>>>> against the
>> >> > >>>>>>> compiled version.  This can be fixed easily with a few
>> >> preprocessor
>> >> > >>>>>>> macros, although I do recommend you compile against the
>> >> latest version
>> >> > >>>>>>> of
>> >> > >>>>>>> sdl_mixer if possible so that the binary can run on distros
>> >> with the
>> >> > >>>>>>> latest sdl_mixer.
>> >> > >>>>>>>
>> >> > >>>>>>> On Thu, 29 Jul 2010 11:36:03 -0400, Christopher
>> >> > >>>>>>> Thielen<chris at epiar.net>
>> >> > >>>>>>> wrote:
>> >> > >>>>>>>
>> >> > >>>>>>>
>> >> > >>>>> <snip>
>> >> > >>>>>
>> >> > >>>>>>> _______________________________________________
>> >> > >>>>>>> epiar-devel mailing list
>> >> > >>>>>>> epiar-devel at epiar.net
>> >> > >>>>>>> http://epiar.net/mailman/listinfo/epiar-devel
>> >> > >>>>>>>
>> >> > >>>>>> _______________________________________________
>> >> > >>>>>> epiar-devel mailing list
>> >> > >>>>>> epiar-devel at epiar.net
>> >> > >>>>>> http://epiar.net/mailman/listinfo/epiar-devel
>> >> > >>>>>>
>> >> > >>>>> _______________________________________________
>> >> > >>>>> epiar-devel mailing list
>> >> > >>>>> epiar-devel at epiar.net
>> >> > >>>>> http://epiar.net/mailman/listinfo/epiar-devel
>> >> > >>>>>
>> >> > >>> _______________________________________________
>> >> > >>> epiar-devel mailing list
>> >> > >>> epiar-devel at epiar.net
>> >> > >>> http://epiar.net/mailman/listinfo/epiar-devel
>> >> > >>>
>> >> > >> _______________________________________________
>> >> > >> epiar-devel mailing list
>> >> > >> epiar-devel at epiar.net
>> >> > >> http://epiar.net/mailman/listinfo/epiar-devel
>> >> > >>
>> >> > > _______________________________________________
>> >> > > epiar-devel mailing list
>> >> > > epiar-devel at epiar.net
>> >> > > http://epiar.net/mailman/listinfo/epiar-devel
>> >> >
>> >> > _______________________________________________
>> >> > epiar-devel mailing list
>> >> > epiar-devel at epiar.net
>> >> > http://epiar.net/mailman/listinfo/epiar-devel
>> >> >
>> >> >
>> >> >
>> >> > _______________________________________________
>> >> > epiar-devel mailing list
>> >> > epiar-devel at epiar.net
>> >> > http://epiar.net/mailman/listinfo/epiar-devel
>> >> >
>> >> >
>> >> > _______________________________________________
>> >> > epiar-devel mailing list
>> >> > epiar-devel at epiar.net
>> >> > http://epiar.net/mailman/listinfo/epiar-devel
>> >>
>> >>
>> >> _______________________________________________
>> >> epiar-devel mailing list
>> >> epiar-devel at epiar.net
>> >> http://epiar.net/mailman/listinfo/epiar-devel
>> >>
>> >> _______________________________________________
>> >> epiar-devel mailing list
>> >> epiar-devel at epiar.net
>> >> http://epiar.net/mailman/listinfo/epiar-devel
>> >
>> >
>> > _______________________________________________
>> > epiar-devel mailing list
>> > epiar-devel at epiar.net
>> > http://epiar.net/mailman/listinfo/epiar-devel
>>
>>
>> _______________________________________________
>> epiar-devel mailing list
>> epiar-devel at epiar.net
>> http://epiar.net/mailman/listinfo/epiar-devel
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://epiar.net/pipermail/epiar-devel/attachments/20100801/2cae42ab/attachment-0001.html 


More information about the epiar-devel mailing list