Summary:ASTERISK-00697: Segfault in h323
Reporter:Tilghman Lesher (tilghman)Labels:
Date Opened:2003-12-23 10:42:40.000-0600Date Closed:2004-09-25 02:49:15
Versions:Frequency of
Description:Backtrace follows:

#0  0x459965a0 in PThread::PXBlockOnIO(int, int, PTimeInterval const&) ()
  from /usr/src/pwlib/lib/libpt_linux_x86_r.so.1
#1  0x45971b77 in PChannel::PXSetIOBlock(PChannel::PXBlockType, PTimeInterval const&) ()
  from /usr/src/pwlib/lib/libpt_linux_x86_r.so.1
#2  0x4594b17f in PSocket::os_accept(PSocket&, sockaddr*, int*) ()
  from /usr/src/pwlib/lib/libpt_linux_x86_r.so.1
#3  0x45946c9d in PTCPSocket::Accept(PSocket&) () from /usr/src/pwlib/lib/libpt_linux_x86_r.so.1
#4  0x46115837 in H323ListenerTCP::Accept(PTimeInterval const&) ()
  from /usr/src/openh323/lib/libh323_linux_x86_r.so.1
ASTERISK-1  0x46116316 in H323ListenerTCP::Main() () from /usr/src/openh323/lib/libh323_linux_x86_r.so.1
ASTERISK-2  0x45996167 in PThread::PX_ThreadStart(void*) () from /usr/src/pwlib/lib/libpt_linux_x86_r.so.1
ASTERISK-3  0x40024811 in pthread_start_thread () from /lib/i686/libpthread.so.0


openh323 and pwlib are the recommended versions:
drwxr-xr-x    7 10002    10002        4096 Oct  8 13:27 openh323/
-rw-r--r--    1 root     root      2109194 Oct  8 13:00 openh323_1.11.7.tar.gz
drwxr-xr-x    9 10002    10002        4096 Oct  8 13:01 pwlib/
-rw-r--r--    1 root     root       964386 Oct  8 13:00 pwlib_1.4.11.tar.gz

Running current CVS as of: CVS-12/15/03-19:40:33
Comments:By: jerjer (jerjer) 2003-12-23 15:01:22.000-0600

The recomended versions are now outdated for any new compiler. Use Open H.323 1.12.2 and Pwlib 1.4.11.

By: Tilghman Lesher (tilghman) 2003-12-23 16:27:11.000-0600

openh323 1.12.2 fails to compile against pwlib 1.4.11 with the following error:

h323ep.cxx:599:25: ptclib/pils.h: No such file or directory
h323ep.cxx: In member function `BOOL H323EndPoint::ParsePartyName(const PString&, PString&, H323TransportAddress&)':
h323ep.cxx:1404: no matching function for call to `PURL::PURL(const PString&, const char[5])'
/usr/src/pwlib/include/ptclib/url.h:118: candidates are: PURL::PURL(const PURL&)
/usr/src/pwlib/include/ptclib/url.h:134:                 PURL::PURL(const PFilePath&)
/usr/src/pwlib/include/ptclib/url.h:130:                 PURL::PURL(const PString&)
/usr/src/pwlib/include/ptclib/url.h:126:                 PURL::PURL(const char*)
/usr/src/pwlib/include/ptclib/url.h:122:                 PURL::PURL()
make[1]: *** [/usr/src/openh323/lib/obj_linux_x86_r/h323ep.o] Error 1
make[1]: Leaving directory `/usr/src/openh323/src'
make: *** [opt] Error 2

By: jerjer (jerjer) 2003-12-23 16:45:52.000-0600

Then use a pwlib 1.5.2

By: Tilghman Lesher (tilghman) 2003-12-23 17:05:54.000-0600

Still doesn't work with those versions:

g++ -DP_LINUX=2.4.21-0.13mdksmp -ffunction-sections -fdata-sections -D_REENTRANT -Wall  -fPIC -DP_USE_PRAGMA -DPHAS_TEMPLATES -I/usr/src/pwlib/include/ptlib/unix -I/usr/include/pwlib -DPTRACING -I/usr/src/openh323/include -DHAS_IXJ -DHAS_OSS -DPTRACING -I/usr/src/pwlib/include -fPIC -DP_USE_PRAGMA -Os -DNDEBUG  -x c++ -c svcctrl.cxx -o /usr/src/openh323/lib/obj_linux_x86_r/svcctrl.o
svcctrl.cxx:38:21: svcctrl.h: No such file or directory
svcctrl.cxx:51: invalid use of undefined type `struct H323ServiceControlSession'
/usr/src/openh323/include/h323ep.h:219: forward declaration of `struct H323ServiceControlSession'
svcctrl.cxx:56: invalid use of undefined type `struct H323ServiceControlSession'
/usr/src/openh323/include/h323ep.h:219: forward declaration of `struct H323ServiceControlSession'
svcctrl.cxx: In member function `PString H323ServiceControlSession::GetServiceControlType() const':
svcctrl.cxx:57: `GetClass' undeclared (first use this function)
svcctrl.cxx:57: (Each undeclared identifier is reported only once for each function it appears in.)
svcctrl.cxx: At global scope:
svcctrl.cxx:63: syntax error before `::' token
svcctrl.cxx:69: syntax error before `::' token
svcctrl.cxx:75: syntax error before `::' token
svcctrl.cxx:81: syntax error before `::' token
svcctrl.cxx:87: syntax error before `::' token
svcctrl.cxx:92: `contents' was not declared in this scope
svcctrl.cxx:93: ISO C++ forbids declaration of `url' with no type
svcctrl.cxx:93: cannot convert `const PASN_IA5String' to `int' in initialization
svcctrl.cxx:94: parse error before `return'
svcctrl.cxx:98: syntax error before `::' token
svcctrl.cxx:101: conflicting types for `PASN_IA5String&pdu'
svcctrl.cxx:92: previous declaration as `const PASN_IA5String&pdu'
svcctrl.cxx:101: `contents' was not declared in this scope
svcctrl.cxx:102: ISO C++ forbids declaration of `pdu' with no type
svcctrl.cxx:102: conflicting types for `int pdu'
svcctrl.cxx:101: previous declaration as `PASN_IA5String&pdu'
svcctrl.cxx:104: parse error before `return'
svcctrl.cxx:108: syntax error before `::' token
svcctrl.cxx:115: syntax error before `.' token
svcctrl.cxx:121: syntax error before `::' token
svcctrl.cxx:126: syntax error before `::' token
svcctrl.cxx:132: syntax error before `::' token
svcctrl.cxx:137: conflicting types for `const H225_H248SignalsDescriptor&pdu'
svcctrl.cxx:102: previous declaration as `int pdu'
svcctrl.cxx:137: `contents' was not declared in this scope
svcctrl.cxx:139: `H248_SignalsDescriptor signal' redeclared as different kind of symbol
/usr/include/signal.h:90: previous declaration of `void (* signal(int, void (*)(int)))(int)'
svcctrl.cxx:140: parse error before `if'
svcctrl.cxx:147: syntax error before `::' token
svcctrl.cxx:150: conflicting types for `H225_H248SignalsDescriptor&pdu'
svcctrl.cxx:137: previous declaration as `const H225_H248SignalsDescriptor&pdu'
svcctrl.cxx:150: `contents' was not declared in this scope
svcctrl.cxx:152: redefinition of `H248_SignalsDescriptor signal'
svcctrl.cxx:139: `H248_SignalsDescriptor signal' previously defined here
svcctrl.cxx:154: syntax error before `.' token
svcctrl.cxx:160: syntax error before `::' token
svcctrl.cxx:162: `descriptor' was not declared in this scope
svcctrl.cxx:162: parse error before `;' token
svcctrl.cxx:162: syntax error before `++' token
svcctrl.cxx:171: syntax error before `::' token
svcctrl.cxx:174: syntax error before `.' token
svcctrl.cxx:181: syntax error before `::' token
svcctrl.cxx:191: syntax error before `::' token
svcctrl.cxx:197: syntax error before `::' token
svcctrl.cxx:203: syntax error before `::' token
svcctrl.cxx:208: `contents' was not declared in this scope
svcctrl.cxx:210: parse error before `if'
svcctrl.cxx:227: syntax error before `::' token
svcctrl.cxx:230: conflicting types for `H225_CallCreditServiceControl&credit'
svcctrl.cxx:208: previous declaration as `const H225_CallCreditServiceControl&credit'
svcctrl.cxx:230: `contents' was not declared in this scope
svcctrl.cxx:232: parse error before `if'
svcctrl.cxx:234: syntax error before `.' token
svcctrl.cxx:236: syntax error before `.' token
svcctrl.cxx:237: syntax error before `.' token
svcctrl.cxx:243: syntax error before `.' token
svcctrl.cxx:244: syntax error before `.' token
svcctrl.cxx:245: syntax error before `.' token
svcctrl.cxx:252: syntax error before `::' token
svcctrl.cxx:260: syntax error before `.' token
make[1]: *** [/usr/src/openh323/lib/obj_linux_x86_r/svcctrl.o] Error 1
make[1]: Leaving directory `/usr/src/openh323_1.12.2/src'
make: *** [opt] Error 2

By: jerjer (jerjer) 2003-12-23 17:14:07.000-0600

i've setup 4 chan_h323 based systems TODAY using Open H.323 1.12.2 and PWlib 1.5.2 using gcc 3.2.2 and 2 of them were debian.  So it does work.