Retransmission timeout?


#1

Dear all,

we’re experiencing weird issue (actually an annoyance): If an extension calls out and called party doesn’t answer, this warning appears after agent hungs up.

[2013-02-16 13:14:50] WARNING[2428]: chan_sip.c:3974 retrans_pkt: Retransmission timeout reached on transmission 001bd433-6379027d-fda50280-1e20f86f@192.168.0.142 for seqno 102 (Critical Response) – See wiki.asterisk.org/wiki/display/ … nsmissions
Packet timed out after 6400ms with no response

Thing is that both phone(s) and asterisk box reside on LAN, there is no nat between them. Above Warning only appears if call is unanswered; otherwise everything works ok and I can’t notice any service impact, loss of quality, etc… There’s no difference if I call out via SIP or E1 trunk using chan_capi.

If I set pedantic=no, messages go away, but It seems (that’s not confirmed yet) that this setting ocassionaly causes other problems: viewtopic.php?f=1&t=85741

Any pointers, ideas, suggestions would be most welcome.

Using Asterisk 1.8.21-rc1 (but were having this prob with version 1.8.20.1 too) and Cisco 7940 / 7960 / 7941 phones.

Best regards,
Andrej


#2

That means there is a protocol violation. Probably the CANCEL is not being recognized because it is missing a tag field on the To or From header. A SIP trace would make this clear.


#3

Here it is, hopefully I did it right:

[code]18:28:07.899547 IP (tos 0x60, ttl 64, id 12553, offset 0, flags [none], proto: UDP (17), length: 1107) 192.168.0.139.51059 > 192.168.0.16.sip: [no cksum] UDP, length 1079
E`.S1 …@…E…s…?..INVITE sip:900040567891@192.168.0.16 SIP/2.0
Via: SIP/2.0/UDP 192.168.0.139:5060;branch=z9hG4bK7edec5b5
From: “User 23” sip:123@192.168.0.16;tag=0018739356250195670abf48-25ca4e8d
To: sip:900040567891@192.168.0.16
Call-ID: 00187393-5625000a-14582dbc-2b4afc55@192.168.0.139
Max-Forwards: 70
Date: Sat, 16 Feb 2013 17:28:06 GMT
CSeq: 101 INVITE
User-Agent: Cisco-CP7960G/8.0
Contact: sip:123@192.168.0.139:5060;user=phone;transport=udp
Expires: 180
Accept: application/sdp
Allow: ACK,BYE,CANCEL,INVITE,NOTIFY,OPTIONS,REFER,REGISTER,UPDATE
Remote-Party-ID: “User 23” sip:123@192.168.0.16;party=calling;id-type=subscriber;privacy=off;screen=yes
Supported: replaces,join,norefersub
Content-Length: 278
Content-Type: application/sdp
Content-Disposition: session;handling=optional

v=0
o=Cisco-SIPUA 16219 0 IN IP4 192.168.0.139
s=SIP Call
t=0 0
m=audio 28730 RTP/AVP 8 0 18 101
c=IN IP4 192.168.0.139
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=no
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=sendrecv

18:28:07.899748 IP (tos 0x60, ttl 64, id 29105, offset 0, flags [none], proto: UDP (17), length: 584) 192.168.0.16.sip > 192.168.0.139.sip: [bad udp cksum baec!] UDP, length 556
E`.Hq…@…4.1SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP 192.168.0.139:5060;branch=z9hG4bK7edec5b5;received=192.168.0.139
From: “User 23” sip:123@192.168.0.16;tag=0018739356250195670abf48-25ca4e8d
To: sip:900040567891@192.168.0.16;tag=as1b28d3bd
Call-ID: 00187393-5625000a-14582dbc-2b4afc55@192.168.0.139
CSeq: 101 INVITE
Server: FPBX-2.10.1(1.8.21.0)
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
WWW-Authenticate: Digest algorithm=MD5, realm=“asterisk”, nonce="1f5be562"
Content-Length: 0

18:28:07.992189 IP (tos 0x60, ttl 64, id 12554, offset 0, flags [none], proto: UDP (17), length: 394) 192.168.0.139.51457 > 192.168.0.16.sip: [no cksum] UDP, length 366
E`…1
…@…
…v…ACK sip:900040567891@192.168.0.16 SIP/2.0
Via: SIP/2.0/UDP 192.168.0.139:5060;branch=z9hG4bK7edec5b5
From: “User 23” sip:123@192.168.0.16;tag=0018739356250195670abf48-25ca4e8d
To: sip:900040567891@192.168.0.16;tag=as1b28d3bd
Call-ID: 00187393-5625000a-14582dbc-2b4afc55@192.168.0.139
Date: Sat, 16 Feb 2013 17:28:06 GMT
CSeq: 101 ACK
Content-Length: 0

18:28:08.068716 IP (tos 0x60, ttl 64, id 12555, offset 0, flags [none], proto: UDP (17), length: 1273) 192.168.0.139.51059 > 192.168.0.16.sip: [no cksum] UDP, length 1245
E`…1…@…s…INVITE sip:900040567891@192.168.0.16 SIP/2.0
Via: SIP/2.0/UDP 192.168.0.139:5060;branch=z9hG4bK0deff938
From: “User 23” sip:123@192.168.0.16;tag=0018739356250195670abf48-25ca4e8d
To: sip:900040567891@192.168.0.16
Call-ID: 00187393-5625000a-14582dbc-2b4afc55@192.168.0.139
Max-Forwards: 70
Date: Sat, 16 Feb 2013 17:28:06 GMT
CSeq: 102 INVITE
User-Agent: Cisco-CP7960G/8.0
Contact: sip:123@192.168.0.139:5060;user=phone;transport=udp
Authorization: Digest username=“123”,realm=“asterisk”,uri="sip:900040567891@192.168.0.16",response=“4029173dca775614db3ac8c205c81076”,nonce=“1f5be562”,algorithm=MD5
Expires: 180
Accept: application/sdp
Allow: ACK,BYE,CANCEL,INVITE,NOTIFY,OPTIONS,REFER,REGISTER,UPDATE
Remote-Party-ID: “User 23” sip:123@192.168.0.16;party=calling;id-type=subscriber;privacy=off;screen=yes
Supported: replaces,join,norefersub
Content-Length: 278
Content-Type: application/sdp
Content-Disposition: session;handling=optional

v=0
o=Cisco-SIPUA 16219 0 IN IP4 192.168.0.139
s=SIP Call
t=0 0
m=audio 28730 RTP/AVP 8 0 18 101
c=IN IP4 192.168.0.139
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=no
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=sendrecv

18:28:08.070224 IP (tos 0x60, ttl 64, id 29106, offset 0, flags [none], proto: UDP (17), length: 534) 192.168.0.16.sip > 192.168.0.139.sip: [bad udp cksum 5276!] UDP, length 506
E`…q…@…SIP/2.0 100 Trying
Via: SIP/2.0/UDP 192.168.0.139:5060;branch=z9hG4bK0deff938;received=192.168.0.139
From: “User 23” sip:123@192.168.0.16;tag=0018739356250195670abf48-25ca4e8d
To: sip:900040567891@192.168.0.16
Call-ID: 00187393-5625000a-14582dbc-2b4afc55@192.168.0.139
CSeq: 102 INVITE
Server: FPBX-2.10.1(1.8.21.0)
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
Contact: sip:900040567891@192.168.0.16:5060
Content-Length: 0

18:28:08.126444 IP (tos 0x60, ttl 64, id 29107, offset 0, flags [none], proto: UDP (17), length: 880) 192.168.0.16.sip > 192.168.0.139.sip: [bad udp cksum 7448!] UDP, length 852
E`.pq…@…~…YSIP/2.0 183 Session Progress
Via: SIP/2.0/UDP 192.168.0.139:5060;branch=z9hG4bK0deff938;received=192.168.0.139
From: “User 23” sip:123@192.168.0.16;tag=0018739356250195670abf48-25ca4e8d
To: sip:900040567891@192.168.0.16;tag=as4be2e99a
Call-ID: 00187393-5625000a-14582dbc-2b4afc55@192.168.0.139
CSeq: 102 INVITE
Server: FPBX-2.10.1(1.8.21.0)
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
Contact: sip:900040567891@192.168.0.16:5060
Content-Type: application/sdp
Content-Length: 288

v=0
o=root 1778666750 1778666750 IN IP4 192.168.0.16
s=Asterisk PBX 1.8.21.0-rc1
c=IN IP4 192.168.0.16
t=0 0
m=audio 23862 RTP/AVP 8 18 101
a=rtpmap:8 PCMA/8000
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=no
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20
a=sendrecv

18:28:13.604724 IP (tos 0x60, ttl 64, id 29108, offset 0, flags [none], proto: UDP (17), length: 550) 192.168.0.16.sip > 192.168.0.139.sip: [bad udp cksum d577!] UDP, length 522
E`.&q…@…SIP/2.0 180 Ringing
Via: SIP/2.0/UDP 192.168.0.139:5060;branch=z9hG4bK0deff938;received=192.168.0.139
From: “User 23” sip:123@192.168.0.16;tag=0018739356250195670abf48-25ca4e8d
To: sip:900040567891@192.168.0.16;tag=as4be2e99a
Call-ID: 00187393-5625000a-14582dbc-2b4afc55@192.168.0.139
CSeq: 102 INVITE
Server: FPBX-2.10.1(1.8.21.0)
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
Contact: sip:900040567891@192.168.0.16:5060
Content-Length: 0

18:28:18.359928 IP (tos 0x60, ttl 64, id 29109, offset 0, flags [none], proto: UDP (17), length: 618) 192.168.0.16.sip > 192.168.0.139.sip: [bad udp cksum 8bf2!] UDP, length 590
E`.jq…@…V.SOPTIONS sip:123@192.168.0.139:5060;user=phone;transport=udp SIP/2.0
Via: SIP/2.0/UDP 192.168.0.16:5060;branch=z9hG4bK77606d6c
Max-Forwards: 70
From: “Unknown” sip:Unknown@192.168.0.16;tag=as55f17470
To: sip:123@192.168.0.139:5060;user=phone;transport=udp
Contact: sip:Unknown@192.168.0.16:5060
Call-ID: 03a4ffaa695eeea37a6a66544a6d9355@192.168.0.16:5060
CSeq: 102 OPTIONS
User-Agent: FPBX-2.10.1(1.8.21.0)
Date: Sat, 16 Feb 2013 17:28:18 GMT
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
Content-Length: 0

18:28:18.481628 IP (tos 0x60, ttl 64, id 13069, offset 0, flags [none], proto: UDP (17), length: 958) 192.168.0.139.51458 > 192.168.0.16.sip: [no cksum] UDP, length 930
E`…3
…@…SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.0.16:5060;branch=z9hG4bK77606d6c
From: “Unknown” sip:Unknown@192.168.0.16;tag=as55f17470
To: sip:123@192.168.0.139:5060;user=phone;transport=udp;tag=00187393562501960dd4c28f-67c47f34
Call-ID: 03a4ffaa695eeea37a6a66544a6d9355@192.168.0.16:5060
Date: Sat, 16 Feb 2013 17:28:17 GMT
CSeq: 102 OPTIONS
Server: Cisco-CP7960G/8.0
Allow: ACK,BYE,CANCEL,INVITE,NOTIFY,OPTIONS,REFER,REGISTER,UPDATE
Accept: application/sdp,multipart/mixed,multipart/alternative
Accept-Encoding: identity
Accept-Language: en
Supported: replaces,join,norefersub
Content-Length: 238
Content-Type: application/sdp
Content-Disposition: session;handling=optional

v=0
o=Cisco-SIPUA 11709 0 IN IP4 192.168.0.139
s=SIP Call
t=0 0
m=audio 0 RTP/AVP 8 0 18 101
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=no
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15

18:28:21.441058 IP (tos 0x60, ttl 64, id 13215, offset 0, flags [none], proto: UDP (17), length: 600) 192.168.0.139.51059 > 192.168.0.16.sip: [no cksum] UDP, length 572
E`.X3…@…s…D…CANCEL sip:900040567891@192.168.0.16 SIP/2.0
Via: SIP/2.0/UDP 192.168.0.139:5060;branch=z9hG4bK0deff938
From: “User 23” sip:123@192.168.0.16;tag=0018739356250195670abf48-25ca4e8d
To: sip:900040567891@192.168.0.16
Call-ID: 00187393-5625000a-14582dbc-2b4afc55@192.168.0.139
Max-Forwards: 70
Date: Sat, 16 Feb 2013 17:28:20 GMT
CSeq: 102 CANCEL
User-Agent: Cisco-CP7960G/8.0
Content-Length: 0
Authorization: Digest username=“123”,realm=“asterisk”,uri="sip:900040567891@192.168.0.16",response=“3e2b2c921dbdf5827fd98a63dd8ff1ca”,nonce=“1f5be562”,algorithm=MD5

18:28:21.441157 IP (tos 0x60, ttl 64, id 29110, offset 0, flags [none], proto: UDP (17), length: 514) 192.168.0.16.sip > 192.168.0.139.sip: [bad udp cksum 4d61!] UDP, length 486
E`…q…@…SIP/2.0 487 Request Terminated
Via: SIP/2.0/UDP 192.168.0.139:5060;branch=z9hG4bK0deff938;received=192.168.0.139
From: “User 23” sip:123@192.168.0.16;tag=0018739356250195670abf48-25ca4e8d
To: sip:900040567891@192.168.0.16;tag=as4be2e99a
Call-ID: 00187393-5625000a-14582dbc-2b4afc55@192.168.0.139
CSeq: 102 INVITE
Server: FPBX-2.10.1(1.8.21.0)
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
Content-Length: 0

18:28:21.441178 IP (tos 0x60, ttl 64, id 29111, offset 0, flags [none], proto: UDP (17), length: 498) 192.168.0.16.sip > 192.168.0.139.sip: [bad udp cksum dfbb!] UDP, length 470
E`…q…@…SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.0.139:5060;branch=z9hG4bK0deff938;received=192.168.0.139
From: “User 23” sip:123@192.168.0.16;tag=0018739356250195670abf48-25ca4e8d
To: sip:900040567891@192.168.0.16;tag=as4be2e99a
Call-ID: 00187393-5625000a-14582dbc-2b4afc55@192.168.0.139
CSeq: 102 CANCEL
Server: FPBX-2.10.1(1.8.21.0)
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
Content-Length: 0

18:28:21.534682 IP (tos 0x60, ttl 64, id 13216, offset 0, flags [none], proto: UDP (17), length: 701) 192.168.0.139.51059 > 192.168.0.16.sip: [no cksum] UDP, length 673
E`…3…@…D…s…ACK sip:900040567891@192.168.0.16 SIP/2.0
Via: SIP/2.0/UDP 192.168.0.139:5060;branch=z9hG4bK41c5716c
From: “User 23” sip:123@192.168.0.16;tag=0018739356250195670abf48-25ca4e8d
To: sip:900040567891@192.168.0.16
Call-ID: 00187393-5625000a-14582dbc-2b4afc55@192.168.0.139
Max-Forwards: 70
Date: Sat, 16 Feb 2013 17:28:20 GMT
CSeq: 102 ACK
User-Agent: Cisco-CP7960G/8.0
Authorization: Digest username=“123”,realm=“asterisk”,uri="sip:900040567891@192.168.0.16",response=“3e2b2c921dbdf5827fd98a63dd8ff1ca”,nonce=“1f5be562”,algorithm=MD5
Remote-Party-ID: “User 23” sip:123@192.168.0.16;party=calling;id-type=subscriber;privacy=off;screen=yes
Content-Length: 0

18:28:21.540799 IP (tos 0x60, ttl 64, id 29112, offset 0, flags [none], proto: UDP (17), length: 514) 192.168.0.16.sip > 192.168.0.139.sip: [bad udp cksum 4d61!] UDP, length 486
E`…q…@…SIP/2.0 487 Request Terminated
Via: SIP/2.0/UDP 192.168.0.139:5060;branch=z9hG4bK0deff938;received=192.168.0.139
From: “User 23” sip:123@192.168.0.16;tag=0018739356250195670abf48-25ca4e8d
To: sip:900040567891@192.168.0.16;tag=as4be2e99a
Call-ID: 00187393-5625000a-14582dbc-2b4afc55@192.168.0.139
CSeq: 102 INVITE
Server: FPBX-2.10.1(1.8.21.0)
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
Content-Length: 0

18:28:21.740800 IP (tos 0x60, ttl 64, id 29113, offset 0, flags [none], proto: UDP (17), length: 514) 192.168.0.16.sip > 192.168.0.139.sip: [bad udp cksum 4d61!] UDP, length 486
E`…q…@…SIP/2.0 487 Request Terminated
Via: SIP/2.0/UDP 192.168.0.139:5060;branch=z9hG4bK0deff938;received=192.168.0.139
From: “User 23” sip:123@192.168.0.16;tag=0018739356250195670abf48-25ca4e8d
To: sip:900040567891@192.168.0.16;tag=as4be2e99a
Call-ID: 00187393-5625000a-14582dbc-2b4afc55@192.168.0.139
CSeq: 102 INVITE
Server: FPBX-2.10.1(1.8.21.0)
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
Content-Length: 0

18:28:22.140798 IP (tos 0x60, ttl 64, id 29114, offset 0, flags [none], proto: UDP (17), length: 514) 192.168.0.16.sip > 192.168.0.139.sip: [bad udp cksum 4d61!] UDP, length 486
E`…q…@…SIP/2.0 487 Request Terminated
Via: SIP/2.0/UDP 192.168.0.139:5060;branch=z9hG4bK0deff938;received=192.168.0.139
From: “User 23” sip:123@192.168.0.16;tag=0018739356250195670abf48-25ca4e8d
To: sip:900040567891@192.168.0.16;tag=as4be2e99a
Call-ID: 00187393-5625000a-14582dbc-2b4afc55@192.168.0.139
CSeq: 102 INVITE
Server: FPBX-2.10.1(1.8.21.0)
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
Content-Length: 0

18:28:22.940794 IP (tos 0x60, ttl 64, id 29115, offset 0, flags [none], proto: UDP (17), length: 514) 192.168.0.16.sip > 192.168.0.139.sip: [bad udp cksum 4d61!] UDP, length 486
E`…q…@…SIP/2.0 487 Request Terminated
Via: SIP/2.0/UDP 192.168.0.139:5060;branch=z9hG4bK0deff938;received=192.168.0.139
From: “User 23” sip:123@192.168.0.16;tag=0018739356250195670abf48-25ca4e8d
To: sip:900040567891@192.168.0.16;tag=as4be2e99a
Call-ID: 00187393-5625000a-14582dbc-2b4afc55@192.168.0.139
CSeq: 102 INVITE
Server: FPBX-2.10.1(1.8.21.0)
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
Content-Length: 0

18:28:24.540791 IP (tos 0x60, ttl 64, id 29116, offset 0, flags [none], proto: UDP (17), length: 514) 192.168.0.16.sip > 192.168.0.139.sip: [bad udp cksum 4d61!] UDP, length 486
E`…q…@…SIP/2.0 487 Request Terminated
Via: SIP/2.0/UDP 192.168.0.139:5060;branch=z9hG4bK0deff938;received=192.168.0.139
From: “User 23” sip:123@192.168.0.16;tag=0018739356250195670abf48-25ca4e8d
To: sip:900040567891@192.168.0.16;tag=as4be2e99a
Call-ID: 00187393-5625000a-14582dbc-2b4afc55@192.168.0.139
CSeq: 102 INVITE
Server: FPBX-2.10.1(1.8.21.0)
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
Content-Length: 0

18:28:27.740785 IP (tos 0x60, ttl 64, id 29117, offset 0, flags [none], proto: UDP (17), length: 514) 192.168.0.16.sip > 192.168.0.139.sip: [bad udp cksum 4d61!] UDP, length 486
E`…q…@…SIP/2.0 487 Request Terminated
Via: SIP/2.0/UDP 192.168.0.139:5060;branch=z9hG4bK0deff938;received=192.168.0.139
From: “User 23” sip:123@192.168.0.16;tag=0018739356250195670abf48-25ca4e8d
To: sip:900040567891@192.168.0.16;tag=as4be2e99a
Call-ID: 00187393-5625000a-14582dbc-2b4afc55@192.168.0.139
CSeq: 102 INVITE
Server: FPBX-2.10.1(1.8.21.0)
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
Content-Length: 0

[/code]

Thanks for your help,
T


#4

The Cisco is sending a malformed CANCEL (no To tag), which Asterisk is, nonetheless accepting.

It is also missing out the To tag on the ACKs to the request cancelled final status on the original call, resulting in Asterisk repeatedly retransmitting that status.

You will have to use pedantic=no until Cisco fix their bug.


#5

Unfortunately, it is not very likely cisco will release a firmware update for those phone as they’re EOL; last one was from 2009. Funny, I haven’t noticed those errors in asterisk 1.4 and they only happen in when outgoing call is not answered.

This is only unconfirmed speculation, but I am afraid using pedantic=no contributes to problems that are far worse, described here: viewtopic.php?f=1&t=85741. I might be totally wrong, it’s just a precousion (more likely culprits being cel module and pthread timing).

Are those retransmission messages something to worry about and could cause f.e. zombie / locked channels? Or are they purely annoyance?

Thanks for your help, very appreciated.

T


#6

That issue seems to have nothing to do with SIP, so pedantic=no can have no effect on it.

Basically pedantic=no gives a slightly increased risk that SIP responses and BYE/CANCEL will not be matched with the right call.

                                                                                                                                                                                                                                                                                                                                                                     As the Cisco does seem to be accepting the OK, accepting the retransmissions just wastes resources and log file space.  It     possibly doesn't even extend the duration of a thread.  However operating any software in error handling code is likely to be operating it in   an area that is less well tested, so the chances fo their being an undetected bug is somewhat higher.