[Asterisk-Users] 1.2.9.1 crashed today

Matt mhoppes at gmail.com
Wed Jun 21 05:58:49 MST 2006


It fuzzed on the first chunk, so I wiped the source directory, re
un-tarred asterisk so it was clean, and then manually applied the
changes.. doing removes and adds where necessary.  So, unfortunately
no, I do not have the information, though I suppose I could run it
again.

Keep in mind, also, that I'm running 1.2.9.1, not svn-trunk.

On 6/21/06, BJ Weschke <bweschke at gmail.com> wrote:
>  Do you have that patch/commit message from svn-commits where this
> code was introduced so we can track it back?
>
>
>
> On 6/21/06, Matt <mhoppes at gmail.com> wrote:
> > On 6/21/06, BJ Weschke <bweschke at gmail.com> wrote:
> > > On 6/21/06, Matt <mhoppes at gmail.com> wrote:
> > > > Ok,
> > > > So here's some information I've, to this point, left out.   I applied
> > > > the patch to allow * to be pressed in queues to park a call (*270).
> > > > After reverting the patch the system seems stable.  So, it almost
> > > > seems like the crash is directly related to the number of times
> > > > someone parks a call that came in a queue.
> > > >
> > > > I don't understand, though....
> > > >
> > > >                                /* terminates call */
> > > >                              ast_frfree(f);
> > > >                              f = NULL;
> > > >
> > > > How does removing those 2 lines cause asterisk to crash?   Basically
> > > > the code looks for a *, if it sees it it runs that... so the patch
> > > > removes those lines.. so when asterisk sees a * it doesn't do
> > > > anything.    The variables are so cryptic I can't exactly figure out
> > > > what its doing.. is ast_frfree(f) suppose to 'free' something, perhaps
> > > > that is not getting freed?  But then what is f = NULL.  Yikes, who
> > > > comes up with these variable names?
> > > >
> > >
> > >  Yes, ast_frfree(..) is supposed to free any allocated memory
> > > associated with the pointer to the Asterisk frame structure given to
> > > it. If the structure has already been freed somewhere else in the code
> > > and you try to call this again, you will segfault Asterisk. If you
> > > don't call it at all, you will leak memory associated with the
> > > structure. The pointer is being set to NULL after the call so that
> > > further checks of the pointer itself will be able to determine that
> > > the structure has been free'd already and doesn't need to be done
> > > again (preventing a segfault from calling it twice).
> > >
> >
> > Ok... that makes sence, and is probably why asterisk was crashing then
> > (good news is since reversing the patch and installing clean 1.2.9.1
> > we've been rock solid over night).   Now.. my question is... how do
> > those 2 lines of code disconnect a call?
> > _______________________________________________
> > --Bandwidth and Colocation provided by Easynews.com --
> >
> > Asterisk-Users mailing list
> > To UNSUBSCRIBE or update options visit:
> >    http://lists.digium.com/mailman/listinfo/asterisk-users
> >
>
>
> --
> Bird's The Word Technologies, Inc.
> http://www.btwtech.com/
> _______________________________________________
> --Bandwidth and Colocation provided by Easynews.com --
>
> Asterisk-Users mailing list
> To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-users
>



More information about the asterisk-users mailing list