Bug#466729: asterisk: terminate called ...

Eloy Paris peloy at debian.org
Sun Mar 16 23:18:24 UTC 2008


Hi Ron,

On Mon, Mar 17, 2008 at 05:30:36AM +1030, Ron wrote:

> We're going to need a bit more information about what is 'unique'
> about your system, and/or what you are really seeing when this fails
> if we are to figure out what is going on. Nobody else seems to be able
> to reproduce this with the current code, and from everything you've
> told us so far, neither should you. Even without the latest patch...

Sorry, I wasn't aware that nobody else had seen this problem; that's
why I didn't investigate further, and especially because the workaround
"noload => chan_vpb.so" made things work for me.

> Could you please forward the output of asterisk -vvv for us to take a
> look at what you are seeing when it crashes.
> 
> Also what arch are you running on?

Before I provide this information you've requested please allow me to
share what I've found. If after going through this you still think the
information you requested is needed I'll be happy to provide it.

So, after reading your email I looked closer at what is happening. First
of all, what I found is that I was not seeing a crash - asterisk was
exiting with exit code 1 (my guess would be from libvpb) and the last
line in the output of asterisk -vvv was:

Couldnt open VTCore device node (/dev/vt0): No such file or directory

I then ran asterisk under strace and saw towards the end:

open("/etc/vpb/vtcore.conf", O_RDONLY|O_LARGEFILE) = 20

I opened this file and found:

----------------------------------------------------------------------
[general]
name  = vtcore
cards = 1

[card0]
type = OpenPCI
#country = 1
#fxs_impedance = 4
#fxo_impedance = 2
#logging = 1
#hwplaygain =
#hwrecordgain =
#playgain =
#recordgain =
#dtmfms =
#cutthrough =
#chan = 0
#chan = 1
#chan = 2
#chan = 3
#chan = 4
#chan = 5
#chan = 6
#chan = 7
----------------------------------------------------------------------

Changing "cards = 1" to "cards = 0" allowed me to run asterisk without
the "noload => chan_vpb.so" workaround, so I can now confirm that
everything works fine now.

Now, I have no idea where /etc/vpb came comes from, and I have even less
idea how "cards" was set to 1 in /etc/vpb/vtcore.conf. There are two
files in /etc/vpb, vtcore.conf and vpb.conf. Both had a timestamp of
2007-12-07. I certainly didn't mess with these files because I don't
have a VPB card.

Running "dpkg -S /etc/vpb" returns "dpkg: /etc/vpb not found"; no
package in my system provides /etc/vpb, and no installation script
creates it, nor the files in it.

I don't recall installing any of the packages provided by the source
package vpb-driver. The only one is libvpb0 which is pulled in by
asterisk as a dependency.

This system has a Digium Wildcard X100P clone controlled by the Zaptel
driver. Any chance some package incorrectly identified this card as a
VPB card?

Anyway, no package seems to be responsible for /etc/vpb on my system,
but libvpb.so seems to be accessing it:

# strings /usr/lib/libvpb.so.0.0.0  | grep etc/vpb
/etc/vpb/vpb.conf

I just moved it out of the way and asterisk started fine. My guess is
that it is a leftover from an old package, although I'd love to know
which, and more importantly, how "cards" came to be "1", which is what
caused this problem.

Thanks for the willigness to help me, and for being involved in
maintenance of these important VoIP packages. My apologies for the
noise.

Cheers,

Eloy Paris.-

P.S. If the exit() was happening from within libvpb I think it'd be much
better for libvpb to return an error code to the caller. Do you know
if there are any exit() calls in libvpb? Haven't checked the source
code myself, and I feel lazy to do it, but it was confusing to see
asterisk exiting like that instead of crashing. I think a crash would
have provided more information than a clean exit ;-)





More information about the Pkg-voip-maintainers mailing list