< Previous by Date Date Index Next by Date >
  Thread Index Next in Thread >

[reSIProcate] Crash in Stack probe routine?


Hi List,

Has anyone encountered this error? I am writing a DLL linking with
reSIProcate (0.9.0) under VS .NET 2003. The DLL uses the static version of
MFC.

I am testing 2 user agents running in peer-to-peer presence mode. When one
user agent sends a status of "away", the other agent receiving the NOTIFY
crashes in the XmlCursor class. It looks like the crash happens inside
_chkstk( ) which is a stack probe inserted by the VC++ compiler when it
thinks the stack will be greater than 4KB.

I slightly modified the Pidf class to include support for activities.

Any hints on how to debug this?

Thanks,
CG

DEBUG | 20050715-110300.750 | xxxxxxxxxx.dll | RESIP:DUM | 4296 |
DialogUsageManager.cxx:1500 | Looking for dialogSet:
3c3b8257bf749c22@TmV3QWdlTGFwdG9w-674b2c0d in map:
DEBUG | 20050715-110300.750 | xxxxxxxxxx.dll | RESIP:DUM | 4296 |
DialogUsageManager.cxx:1501 | [3c3b8257bf749c22@TmV3QWdlTGFwdG9w-674b2c0d
-> 02534670, c52ae90a80359d72@TmV3QWdlTGFwdG9w-1e00d536 -> 02528990,
c5460b1276371c10@TmV3QWdlTGFwdG9w-272a8e74 -> 025241D0]
DEBUG | 20050715-110300.750 | xxxxxxxxxx.dll | RESIP:DUM | 4296 |
DialogUsageManager.cxx:607 | SEND: SIP/2.0 200 OK
To: <sip:chris2@xxxxxxxxxxxxx>;tag=674b2c0d
From: <sip:chris@xxxxxxxxxxxxx>;tag=ab3afb48
Via: SIP/2.0/UDP xxx.xx.xxx.xx;branch=z9hG4bK5941.dec5.0
Via: SIP/2.0/UDP
172.17.72.53:5065;branch=z9hG4bK-d87543-bd27c179e477ad60-1--d87543-;rport=5065
Call-ID: 3c3b8257bf749c22@TmV3QWdlTGFwdG9w
CSeq: 5 NOTIFY
Record-Route: <sip:chris2@xxxxxxxxxxxxx;ftag=ab3afb48;lr=on>
Contact: <sip:chris2>
User-Agent: ineen release 3005l stamp 17169
Content-Length: 0


DEBUG | 20050715-110300.765 | xxxxxxxxxx.dll | RESIP | 4296 |
SipStack.cxx:269 | SEND: SipResp: 200 tid=5941.dec5.0 cseq=NOTIFY
contact=chris2 / 5 from(tu)
allocate 253aa60
allocate 253aaa8
DEBUG | 20050715-110300.765 | xxxxxxxxxx.dll | RESIP | 4296 |
SipMessage.cxx:790 | SipMessage::getContents: application/pidf+xml
DEBUG | 20050715-110300.765 | xxxxxxxxxx.dll | RESIP | 4296 | Pidf.cxx:263
| Pidf::parse(<?xml version="1.0" encoding="UTF-8"?>
<presence xmlns="urn:ietf:params:xml:ns:pidf"
          xmlns:ep="urn:ietf:params:xml:ns:pidf:rpid:rpid-person"
          xmlns:pp="urn:ietf:params:xml:ns:pidf:person"
          entity="sip:chris@xxxxxxxxxxxxx">
  <pp:person>
   <status>
    <ep:activities>
     <ep:activity>away</ep:activity>
    </ep:activities>
   </status>
  </pp:person>
  <tuple id="9b6yhF2Gk37o4" >
     <status><basic>open</basic></status>
  </tuple>
</presence>
)
STACK | 20050715-110300.765 | xxxxxxxxxx.dll | RESIP:CONTENTS | 4296 |
XMLCursor.cxx:440 | XMLCursor::Node::Node02542398[<presence
xmlns="urn:ietf:params:xm]
STACK | 20050715-110300.765 | xxxxxxxxxx.dll | RESIP:CONTENTS | 4296 |
XMLCursor.cxx:366 | attribute: xmlns
STACK | 20050715-110300.765 | xxxxxxxxxx.dll | RESIP:CONTENTS | 4296 |
XMLCursor.cxx:376 | quote is <">
STACK | 20050715-110300.765 | xxxxxxxxxx.dll | RESIP:CONTENTS | 4296 |
XMLCursor.cxx:366 | attribute: xmlns:ep
STACK | 20050715-110300.765 | xxxxxxxxxx.dll | RESIP:CONTENTS | 4296 |
XMLCursor.cxx:376 | quote is <">
STACK | 20050715-110300.765 | xxxxxxxxxx.dll | RESIP:CONTENTS | 4296 |
XMLCursor.cxx:366 | attribute: xmlns:pp
STACK | 20050715-110300.765 | xxxxxxxxxx.dll | RESIP:CONTENTS | 4296 |
XMLCursor.cxx:376 | quote is <">
STACK | 20050715-110300.765 | xxxxxxxxxx.dll | RESIP:CONTENTS | 4296 |
XMLCursor.cxx:366 | attribute: entity
STACK | 20050715-110300.765 | xxxxxxxxxx.dll | RESIP:CONTENTS | 4296 |
XMLCursor.cxx:376 | quote is <">
INFO | 20050715-110300.765 | xxxxxxxxxx.dll | RESIP | 4296 | Pidf.cxx:276 |
Presence attribute name: xmlns value: urn:ietf:params:xml:ns:pidf

INFO | 20050715-110300.765 | xxxxxxxxxx.dll | RESIP | 4296 | Pidf.cxx:276 |
Presence attribute name: xmlns:ep value:
urn:ietf:params:xml:ns:pidf:rpid:rpid-person

INFO | 20050715-110300.765 | xxxxxxxxxx.dll | RESIP | 4296 | Pidf.cxx:276 |
Presence attribute name: xmlns:pp value: urn:ietf:params:xml:ns:pidf:person

STACK | 20050715-110300.765 | xxxxxxxxxx.dll | RESIP:CONTENTS | 4296 |
XMLCursor.cxx:440 | XMLCursor::Node::Node02542A48[<pp:person>
   <status>
    <ep:a]
STACK | 20050715-110300.765 | xxxxxxxxxx.dll | RESIP:CONTENTS | 4296 |
XMLCursor.cxx:493 | XMLCursor::Node::skipToEndTag(pp:person)
STACK | 20050715-110300.765 | xxxxxxxxxx.dll | RESIP:CONTENTS | 4296 |
XMLCursor.cxx:440 | XMLCursor::Node::Node02542AD8[<status>
    <ep:activities>
    ]
STACK | 20050715-110300.765 | xxxxxxxxxx.dll | RESIP:CONTENTS | 4296 |
XMLCursor.cxx:493 | XMLCursor::Node::skipToEndTag(status)
STACK | 20050715-110300.765 | xxxxxxxxxx.dll | RESIP:CONTENTS | 4296 |
XMLCursor.cxx:440 | XMLCursor::Node::Node02542BA8[<ep:activities>
     <ep:activity>]
STACK | 20050715-110300.765 | xxxxxxxxxx.dll | RESIP:CONTENTS | 4296 |
XMLCursor.cxx:493 | XMLCursor::Node::skipToEndTag(ep:activities)
STACK | 20050715-110300.765 | xxxxxxxxxx.dll | RESIP:CONTENTS | 4296 |
XMLCursor.cxx:440 |
XMLCursor::Node::Node02542C78[<ep:activity>away</ep:activity>
  ]
STACK | 20050715-110300.765 | xxxxxxxxxx.dll | RESIP:CONTENTS | 4296 |
XMLCursor.cxx:493 | XMLCursor::Node::skipToEndTag(ep:activity)
First-chance exception at 0x01b07855 (xxxxxxxxxx.dll) in Test.exe:
0xC00000FD: Stack overflow.
Unhandled exception at 0x01b07855 (xxxxxxxxxx.dll) in Test.exe: 0xC00000FD:
Stack overflow.

Stack Trace
===========

>     xxxxxxxxxx.dll!_chkstk()  Line 91   Asm
      xxxxxxxxxx.dll!resip::XMLCursor::Node::skipToEndTag()  Line 523 +
0x60  C++
      xxxxxxxxxx.dll!resip::XMLCursor::Node::skipToEndTag()  Line 577   C++
      xxxxxxxxxx.dll!resip::XMLCursor::Node::skipToEndTag()  Line 577   C++
      xxxxxxxxxx.dll!resip::XMLCursor::Node::skipToEndTag()  Line 577   C++
      xxxxxxxxxx.dll!resip::XMLCursor::parseNextRootChild()  Line 230   C++
      xxxxxxxxxx.dll!resip::XMLCursor::firstChild()  Line 276     C++
      xxxxxxxxxx.dll!resip::Pidf::parse(resip::ParseBuffer & pb={...})
Line 293 + 0xb    C++
      xxxxxxxxxx.dll!resip::LazyParser::checkParsed()  Line 79 + 0x11   C++
      xxxxxxxxxx.dll!resip::Pidf::getSimpleStatus(resip::Data *
note=0x0220cfec)  Line 449    C++
      ...