[reSIProcate] Crash in Stack probe routine?

david Butcher david at purplecomm.com
Fri Jul 15 19:29:32 CDT 2005


Hi,

I wrote a test against your XML. Parsed just fine.
Your enclosed stack trace isn't all that long; there is no evidence of 
excessive
recursion, for example. Is it possible you just need more stack space?

david

Quoting Christian_Gavin at logitech.com:

>
> 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 at TmV3QWdlTGFwdG9w-674b2c0d in map:
> DEBUG | 20050715-110300.750 | xxxxxxxxxx.dll | RESIP:DUM | 4296 |
> DialogUsageManager.cxx:1501 | [3c3b8257bf749c22 at TmV3QWdlTGFwdG9w-674b2c0d
> -> 02534670, c52ae90a80359d72 at TmV3QWdlTGFwdG9w-1e00d536 -> 02528990,
> c5460b1276371c10 at TmV3QWdlTGFwdG9w-272a8e74 -> 025241D0]
> DEBUG | 20050715-110300.750 | xxxxxxxxxx.dll | RESIP:DUM | 4296 |
> DialogUsageManager.cxx:607 | SEND: SIP/2.0 200 OK
> To: <sip:chris2 at xxx.xx.xxx.xx>;tag=674b2c0d
> From: <sip:chris at xxx.xx.xxx.xx>;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 at TmV3QWdlTGFwdG9w
> CSeq: 5 NOTIFY
> Record-Route: <sip:chris2 at xxx.xx.xxx.xx;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 at xxx.xx.xxx.xx">
>  <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++
>      ...
>
> _______________________________________________
> resiprocate-devel mailing list
> resiprocate-devel at list.sipfoundry.org
> https://list.sipfoundry.org/mailman/listinfo/resiprocate-devel
>





More information about the resiprocate-devel mailing list