exceptions occuring during a read from a TCPStream
object may not be correctly propagated to the calling
functions:
Tested system is current debian testing, tested
commoncpp2-libs were the debian-package (1.0.3) and
1.0.8 compiled from the download tarballs.
GDB-Trace
#0 0x40122581 in kill () from /lib/libc.so.6
#1 0x4008094e in pthread_kill () from /lib/libpthread.so.0
#2 0x40080e29 in raise () from /lib/libpthread.so.0
#3 0x401238d1 in abort () from /lib/libc.so.6
#4 0x40049598 in __terminate () from
/usr/local/lib/libccgnu2-1.0.so.0
#5 0x400495b5 in __terminate () from
/usr/local/lib/libccgnu2-1.0.so.0
#6 0x40049fb0 in throw_helper () from
/usr/local/lib/libccgnu2-1.0.so.0
#7 0x4004a165 in __throw () from
/usr/local/lib/libccgnu2-1.0.so.0
#8 0x4003c7fb in ost::Socket::error () from
/usr/local/lib/libccgnu2-1.0.so.0
#9 0x4003ec14 in ost::TCPStream::underflow () from
/usr/local/lib/libccgnu2-1.0.so.0
#10 0x4003e8d9 in ost::TCPStream::uflow () from
/usr/local/lib/libccgnu2-1.0.so.0
#11 0x40163f58 in __uflow () from /lib/libc.so.6
#12 0x4015fca4 in getc () from /lib/libc.so.6
#13 0x400b4390 in skip_ws () from
/usr/lib/libstdc++-libc6.2-2.so.3
#14 0x400b65c7 in istream::_skip_ws () from
/usr/lib/libstdc++-libc6.2-2.so.3
#15 0x400b4893 in istream::operator>> () from
/usr/lib/libstdc++-libc6.2-2.so.3
#16 0x400b75e1 in istream::operator>> () from
/usr/lib/libstdc++-libc6.2-2.so.3
#17 0x08063386 in YTCPConnection::checkReceive
(this=0x809f148
in #11/#12 there the c-routine getc is called from the
istream class
exceptions occuring in c++-routines can not be
propagated back to their calling routines if there is a
c-routine on the way (see g++-docs)
unsigned char byte;
try {
myStream >> byte;
} catch(...) {
snarfucate();
}
won't catch the exception then (if, for example the
connection suddenly vanishes).
for more info you can contact me via
jgraef at linetco dot com