none
Crash in SindycationLinkImpl::get_Uri

    Question

  • Hello,

    I released an app to the Windows Store and noticed that I am getting too many crashes which I can't seem to solve.  I download the dump, load it into VS and notice this call stack below.

    I assume my C# code causing this is here:

    _link = si.Links[0].Uri;

    But it's wrapped inside a try/catch, so it should not crash. 

    Crash dump: http://sdrv.ms/14OQX4J

    Can someone, please, help?

    Thanks

    Windows.Web.dll!JsonValueImpl::`vftable'()C++
    Windows.Web.dll!InternalSyndicationNode::get_BaseUri(Windows::Foundation::IUriRuntimeClass * * value)  Line 117 + 0xd bytes	C++
    Windows.Web.dll!InternalSyndicationNode::get_BaseUri(Windows::Foundation::IUriRuntimeClass * * value)  Line 125 + 0xe bytes	C++
    Windows.Web.dll!InternalSyndicationNode::get_BaseUri(Windows::Foundation::IUriRuntimeClass * * value)  Line 125 + 0xe bytes	C++
    Windows.Web.dll!InternalSyndicationNode::ResolveUri(Windows::Internal::String & relativeOrAbsoluteUri, Windows::Foundation::IUriRuntimeClass * * uri)  Line 478 + 0xc bytes	C++
    Windows.Web.dll!SyndicationLinkImpl::get_Uri(Windows::Foundation::IUriRuntimeClass * * value)  Line 96 + 0x7a bytes	C++
    [Managed to Native Transition]	
    *Windows.Web.ni.dll!000007fcaac2051e()
    [Frames below may be incorrect and/or missing, no symbols loaded for *Windows.Web.ni.dll]	
    [Managed module(s) not found, frames cannot be determined]	
    [Native to Managed Transition]	
    biwinrt.dll!Windows::ApplicationModel::Background::CBackgroundTaskInstance::Run(Windows::ApplicationModel::Background::IBackgroundTask * backgroundTask)  Line 379	C++
    twinapi.dll!Windows::ApplicationModel::Core::BackgroundTaskWrapper::Run()  + 0xf8 bytes	
    twinapi.dll!Windows::ApplicationModel::Core::BackgroundTaskWrapper::ThreadProc()  + 0x34 bytes	
    ntdll.dll!TppWorkpExecuteCallback()  + 0xe5 bytes	
    ntdll.dll!TppWorkerThread()  - 0x554fe bytes	
    kernel32.dll!BaseThreadInitThunk()  + 0x1a bytes	
    ntdll.dll!RtlUserThreadStart()  + 0x21 bytes	
    

    Output from windbg:

    This dump file has an exception of interest stored in it.
    The stored exception information can be accessed via .ecxr.
    (508.308): Illegal instruction - code c000001d (first/second chance not available)
    ntdll!NtWaitForMultipleObjects+0xa:
    000007fc`b859319b c3              ret
    0:001> .ecxr
    rax=00000027d1d44750 rbx=00000027b895f488 rcx=00000027d1d23bf8
    rdx=00000027d1d44be1 rsi=00000027d1d23bf8 rdi=00000027d1d23bb8
    rip=000007fca6679a20 rsp=00000027b895f418 rbp=00000027b895f530
     r8=00000027d1d23c20  r9=0000000000000000 r10=000007fcaabefd50
    r11=0000000000000000 r12=00000027b93e9dc0 r13=000007fc9f6d3ff2
    r14=00000027c93d5788 r15=00000027c93d5688
    iopl=0         nv up ei pl nz na po nc
    cs=0033  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00010206
    Windows_Web!JsonValueImpl::`vftable':
    000007fc`a6679a20 64              ???
    0:001> kb
      *** Stack trace for last set context - .thread/.cxr resets it
    RetAddr           : Args to Child                                                           : Call Site
    000007fc`a66b5f18 : 00000027`b895f4e0 aaaaaaaa`aaaaaaaa aaaaaaaa`aaaaaaaa 00000027`d1d44bd0 : Windows_Web!JsonValueImpl::`vftable'
    000007fc`a66b5f44 : 00000027`b895f4b8 aaaaaaaa`aaaaaaaa 00000027`d1d6dc58 00000027`b895f4f8 : Windows_Web!InternalSyndicationNode::get_BaseUri+0x58 [d:\w8rtm\net\winrt\webclient\src\syndication\internalsyndicationnode.cpp @ 117]
    000007fc`a66b5f44 : 00000027`b895f4f8 00000000`00000000 00000027`d1d604d8 000007fc`aac00140 : Windows_Web!InternalSyndicationNode::get_BaseUri+0x84 [d:\w8rtm\net\winrt\webclient\src\syndication\internalsyndicationnode.cpp @ 125]
    000007fc`a66b7064 : 00000027`b895f580 00000000`00000000 aaaaaaaa`aaaaaaaa aaaaaaaa`aaaaaaaa : Windows_Web!InternalSyndicationNode::get_BaseUri+0x84 [d:\w8rtm\net\winrt\webclient\src\syndication\internalsyndicationnode.cpp @ 125]
    000007fc`a6685908 : 00000027`d1d60530 00000027`b895f580 aaaaaaaa`aaaaaaaa 00000000`00000000 : Windows_Web!InternalSyndicationNode::ResolveUri+0x24 [d:\w8rtm\net\winrt\webclient\src\syndication\internalsyndicationnode.cpp @ 478]

    Saturday, August 24, 2013 3:26 PM

Answers

All replies

  • I don't see an exception being raised in this callstack.  Please run "!analyze -v" and report the output.

    Matt Small - Microsoft Escalation Engineer - Forum Moderator
    If my reply answers your question, please mark this post as answered.

    NOTE: If I ask for code, please provide something that I can drop directly into a project and run (including XAML), or an actual application project. I'm trying to help a lot of people, so I don't have time to figure out weird snippets with undefined objects and unknown namespaces.

    Monday, August 26, 2013 12:28 PM
  • Hi Matt,

    the exception is in the message.

    508.308): Illegal instruction - code c000001d (first/second chance not available)
     ntdll!NtWaitForMultipleObjects+0xa:

     000007fc`b859319b c3              ret

    Tuesday, August 27, 2013 11:21 AM
  • True, but I don't see the exception being raised on the callstack you've displayed.  Does !analyze -v show anything different?  Do you have a link to the crash dump you can share with me?


    Matt Small - Microsoft Escalation Engineer - Forum Moderator
    If my reply answers your question, please mark this post as answered.

    NOTE: If I ask for code, please provide something that I can drop directly into a project and run (including XAML), or an actual application project. I'm trying to help a lot of people, so I don't have time to figure out weird snippets with undefined objects and unknown namespaces.

    Tuesday, August 27, 2013 5:04 PM
  • Yes. The link is also in the original post. SkyDrive.
    Tuesday, August 27, 2013 5:07 PM
  • Analyze -v output:

    FAULTING_IP:
    Windows_Web!JsonValueImpl::`vftable'+0
    000007fc`a6679a20 64              ???

    EXCEPTION_RECORD:  ffffffffffffffff -- (.exr 0xffffffffffffffff)
    ExceptionAddress: 000007fca6679a20 (Windows_Web!JsonValueImpl::`vftable')
       ExceptionCode: c000001d (Illegal instruction)
      ExceptionFlags: 00000000
    NumberParameters: 0

    DEFAULT_BUCKET_ID:  WRONG_SYMBOLS

    PROCESS_NAME:  backgroundTaskHost.exe

    ERROR_CODE: (NTSTATUS) 0xc000001d - {EXCEPTION}  Illegal Instruction  An attempt was made to execute an illegal instruction.

    EXCEPTION_CODE: (NTSTATUS) 0xc000001d - {EXCEPTION}  Illegal Instruction  An attempt was made to execute an illegal instruction.

    NTGLOBALFLAG:  0

    APP:  backgroundtaskhost.exe

    MANAGED_STACK:
    SP               IP               Function
        00000027B895F510 0000000000000000 Windows_Web_ni!UNKNOWN+0x1
        00000027B895F620 000007FCA6AC4DAC NewsReader_ni!UNKNOWN+0x2dc
        00000027B895F680 000007FCA6AC4464 NewsReader_ni!UNKNOWN+0x224
        00000027B895F740 000007FC432004F6 NewsReaderTasks!UNKNOWN+0x3d6

    StackTraceString: <none>
    HResult: 80004005

    EXCEPTION_OBJECT: !pe 27b9465440
    Exception object: 00000027b9465440
    Exception type:   System.Runtime.InteropServices.SEHException
    Message:          <Invalid Object>
    InnerException:   <none>
    StackTrace (generated):
        SP               IP               Function
        00000027B895F510 0000000000000000 Windows_Web_ni!UNKNOWN+0x1
        00000027B895F620 000007FCA6AC4DAC NewsReader_ni!UNKNOWN+0x2dc
        00000027B895F680 000007FCA6AC4464 NewsReader_ni!UNKNOWN+0x224
        00000027B895F740 000007FC432004F6 NewsReaderTasks!UNKNOWN+0x3d6

    StackTraceString: <none>
    HResult: 80004005

    MANAGED_OBJECT: !dumpobj 27b94655e0
    <Note: this object has an invalid CLASS field>
    Invalid object

    MANAGED_OBJECT_NAME:  SYSTEM.RUNTIME.INTEROPSERVICES.SEHEXCEPTION

    MANAGED_STACK_COMMAND:  !pe 27b9465440


    PRIMARY_PROBLEM_CLASS:  WRONG_SYMBOLS

    BUGCHECK_STR:  APPLICATION_FAULT_WRONG_SYMBOLS

    LAST_CONTROL_TRANSFER:  from 000007fca66b5f18 to 000007fca6679a20

    STACK_TEXT:  
    00000027`b895f418 000007fc`a66b5f18 : 00000027`b895f4e0 aaaaaaaa`aaaaaaaa aaaaaaaa`aaaaaaaa 00000027`d1d44bd0 : Windows_Web!JsonValueImpl::`vftable'
    00000027`b895f420 000007fc`a66b5f44 : 00000027`b895f4b8 aaaaaaaa`aaaaaaaa 00000027`d1d6dc58 00000027`b895f4f8 : Windows_Web!InternalSyndicationNode::get_BaseUri+0x58
    00000027`b895f450 000007fc`a66b5f44 : 00000027`b895f4f8 00000000`00000000 00000027`d1d604d8 000007fc`aac00140 : Windows_Web!InternalSyndicationNode::get_BaseUri+0x84
    00000027`b895f480 000007fc`a66b7064 : 00000027`b895f580 00000000`00000000 aaaaaaaa`aaaaaaaa aaaaaaaa`aaaaaaaa : Windows_Web!InternalSyndicationNode::get_BaseUri+0x84
    00000027`b895f4b0 000007fc`a6685908 : 00000027`d1d60530 00000027`b895f580 aaaaaaaa`aaaaaaaa 00000000`00000000 : Windows_Web!InternalSyndicationNode::ResolveUri+0x24
    00000027`b895f4e0 000007fc`aac2051e : 000007fc`aabefd50 00000027`b9465420 00000027`b9465420 000007fc`a66c3718 : Windows_Web!SyndicationLinkImpl::get_Uri+0x8c
    00000027`b895f510 000007fc`a6ac4dac : aaaaaaaa`aaaaaaaa 000007fc`aabfc868 000007fc`a6a56200 aaaaaaaa`aaaaaaaa : Windows_Web_ni+0x4051e
    00000027`b895f620 000007fc`a6ac4464 : aaaaaaaa`aaaaaaaa aaaaaaaa`aaaaaaaa 00000000`00000000 00000000`00000000 : NewsReader_ni+0x84dac
    00000027`b895f680 000007fc`432004f6 : 00000027`b93e3f48 aaaaaaaa`aaaaaaaa 000007fc`a6b0f5f0 000007fc`a29c6720 : NewsReader_ni+0x84464
    00000027`b895f740 000007fc`ab2c76b1 : 00000027`b93d38e8 00000027`b93e24f0 00000027`b895edd0 aaaaaaaa`aaaaaaaa : 0x000007fc`432004f6
    00000027`b895f800 000007fc`a298a829 : 000007fc`a2f2b950 00000027`b6dc71c0 00000027`b895f3b8 aaaaaaaa`aaaaaaaa : Windows_ApplicationModel_ni+0x876b1
    00000027`b895f860 000007fc`a298a6db : aaaaaaaa`aaaaaaaa aaaaaaaa`aaaaaaaa 00000027`b895f9c0 00000027`b895f3f8 : clr!COMToCLRDispatchHelper+0x39
    00000027`b895f890 000007fc`a298a787 : aaaaaaaa`aaaaaaaa 00000000`00000000 00000000`00000000 000007fc`430ec028 : clr!COMToCLRWorker+0x1de
    00000027`b895f950 000007fc`adb5831a : 00000027`b8edff20 00000027`b6dc71c0 00000000`00000000 00000027`b6ff3bc0 : clr!GenericComCallStub+0x57
    00000027`b895f9e0 000007fc`aae54c88 : 00000027`b6dc72a0 00000027`b895fc68 00000027`b6dc72a0 aaaaaaaa`aaaaaaaa : biwinrt!Windows::ApplicationModel::Background::CBackgroundTaskInstance::Run+0x176
    00000027`b895fa90 000007fc`aae54b60 : aaaaaaaa`aaaaaaaa 00000027`b6dc72a0 00000027`b6dc71d0 00000027`b708d848 : twinapi!Windows::ApplicationModel::Core::BackgroundTaskWrapper::Run+0xf8
    00000027`b895fae0 000007fc`b859cbc5 : aaaaaaaa`aaaaaaaa aaaaaaaa`aaaaaaaa 00000000`00000000 00000000`00000000 : twinapi!Windows::ApplicationModel::Core::BackgroundTaskWrapper::ThreadProc+0x34
    00000027`b895fb10 000007fc`b8598552 : aaaaaaaa`aaaaaaaa 00000000`00000000 00000000`00000000 00000000`00000000 : ntdll!TppWorkpExecuteCallback+0xe5
    00000027`b895fb60 000007fc`b5a51832 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : ntdll!TppWorkerThread+0x604
    00000027`b895fe00 000007fc`b85ed609 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : kernel32!BaseThreadInitThunk+0x1a
    00000027`b895fe30 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : ntdll!RtlUserThreadStart+0x1d


    STACK_COMMAND:  ~1s; .ecxr ; kb

    FAILED_INSTRUCTION_ADDRESS:
    Windows_Web!JsonValueImpl::`vftable'+0
    000007fc`a6679a20 64              ???

    FOLLOWUP_IP:
    Windows_Web!JsonValueImpl::`vftable'+0
    000007fc`a6679a20 64              ???

    SYMBOL_STACK_INDEX:  0

    SYMBOL_NAME:  windows_web!JsonValueImpl::`vftable'+0

    FOLLOWUP_NAME:  MachineOwner

    MODULE_NAME: Windows_Web

    DEBUG_FLR_IMAGE_TIMESTAMP:  50107f82

    FAILURE_BUCKET_ID:  WRONG_SYMBOLS_c000001d_Windows.Web.ni.dll!JsonValueImpl::_vftable_

    BUCKET_ID:  APPLICATION_FAULT_WRONG_SYMBOLS_BAD_IP_windows_web!JsonValueImpl::_vftable_+0

    IMAGE_NAME:  Windows.Web.ni.dll

    WATSON_STAGEONE_URL:  http://watson.microsoft.com/StageOne/backgroundTaskHost_exe/6_2_9200_16384/5010a827/Windows_Web_dll/6_2_9200_16384/50107f82/c000001d/00029a20.htm?Retriage=1

    Followup: MachineOwner
    ---------

    Wednesday, August 28, 2013 1:42 AM
  • Now you see the managed callstack where the exception occurred, but your symbols aren't loaded:

        00000027B895F510 0000000000000000 Windows_Web_ni!UNKNOWN+0x1
        00000027B895F620 000007FCA6AC4DAC NewsReader_ni!UNKNOWN+0x2dc
        00000027B895F680 000007FCA6AC4464 NewsReader_ni!UNKNOWN+0x224
        00000027B895F740 000007FC432004F6 NewsReaderTasks!UNKNOWN+0x3d6


    Check out my blog post on how to get the "UNKNOWN" lines inside the callstack to resolve to your function calls:
    http://blogs.msdn.com/b/wsdevsol/archive/2013/08/15/dump-diving-into-cert-failure_3a00_--how-to-get-a-good-callstack-from-triagedump.dmp.aspx


    Matt Small - Microsoft Escalation Engineer - Forum Moderator
    If my reply answers your question, please mark this post as answered.

    NOTE: If I ask for code, please provide something that I can drop directly into a project and run (including XAML), or an actual application project. I'm trying to help a lot of people, so I don't have time to figure out weird snippets with undefined objects and unknown namespaces.

    Wednesday, August 28, 2013 12:57 PM
  • Hi Matt,

    The NewsReader.dll from my app has been ngened and is used in its native form (ngen-ed).  Because it's been ngen-ed, I had trouble loading the symbols for it.

    What is ngen-ed?  Microsoft .NET can fully compile a managed assembly to the target platform to speed up loading and execution.  For more information on how to tell if an assembly was ngen-ed, see this thread:

    http://stackoverflow.com/questions/2167382/how-to-determine-if-assembly-has-been-ngend.

    Anyway, the CLRStack looks like this:

    0:001> .ecxr;!clrstack
    OS Thread Id: 0x308 (1)
            Child SP               IP Call Site
    00000027b895f540 000007fcb859319b [InlinedCallFrame: 00000027b895f540] <unknown method>
    00000027b895f540 000007fcaac2051e [InlinedCallFrame: 00000027b895f540] <unknown method>
    00000027b895f510 000007fcaac2051e DomainBoundILStubClass.IL_STUB_CLRtoWinRT
    00000027b895f620 000007fca6ac4dac NewsReader.ViewModels.FeedItem..ctor(Windows.Web.Syndication.SyndicationItem)
    00000027b895f680 000007fca6ac4464 NewsReader.ViewModels.FeedInfo.LoadNonGUI()
    00000027b895f740 000007fc432004f6 NewsReaderTasks.LoadFeedsTask.Run(Windows.ApplicationModel.Background.IBackgroundTaskInstance)
    00000027b895f800 000007fcab2c76b1 DomainBoundILStubClass.IL_STUB_WinRTtoCLR(IntPtr)
    00000027b895f9c0 000007fca298a829 [ComMethodFrame: 00000027b895f9c0]

    I can tell where my code is throwing the exception.  There's one place where my C# code calls Uri property of the SyndicationLink object.

    Here's what the function looks like:

     if (si.Links.Count > 0)
    {
       _link = si.Links[0].Uri;
    }

    https://windowsnewsreader.codeplex.com/SourceControl/latest#NewsReader/ViewModels/FeedItem.cs


    This code is inside try/catch, so it should not fail, but it does.  I think there's a bug somewhere in the unmanaged portion of the SyndicationLinkImpl class, because some unmanaged memory exceptions do not get raised as managed exceptions and simply cause the process to exit.  Here's the unmanaged call stack from windbg:


    0:001> kp
      *** Stack trace for last set context - .thread/.cxr resets it
    Child-SP          RetAddr           Call Site
    00000027`b895f418 000007fc`a66b5f18 Windows_Web!JsonValueImpl::`vftable'
    00000027`b895f420 000007fc`a66b5f44 Windows_Web!InternalSyndicationNode::get_BaseUri(struct Windows::Foundation::IUriRuntimeClass ** value = 0x00000027`b895f488)+0x58 [d:\w8rtm\net\winrt\webclient\src\syndication\internalsyndicationnode.cpp @ 117]
    00000027`b895f450 000007fc`a66b5f44 Windows_Web!InternalSyndicationNode::get_BaseUri(struct Windows::Foundation::IUriRuntimeClass ** value = 0x00000027`b895f4b8)+0x84 [d:\w8rtm\net\winrt\webclient\src\syndication\internalsyndicationnode.cpp @ 125]
    00000027`b895f480 000007fc`a66b7064 Windows_Web!InternalSyndicationNode::get_BaseUri(struct Windows::Foundation::IUriRuntimeClass ** value = 0x00000027`b895f4f8)+0x84 [d:\w8rtm\net\winrt\webclient\src\syndication\internalsyndicationnode.cpp @ 125]
    00000027`b895f4b0 000007fc`a6685908 Windows_Web!InternalSyndicationNode::ResolveUri(class Windows::Internal::String * relativeOrAbsoluteUri = 0xaaaaaaaa`aaaaaaaa, struct Windows::Foundation::IUriRuntimeClass ** uri = 0x00000027`b895f580)+0x24 [d:\w8rtm\net\winrt\webclient\src\syndication\internalsyndicationnode.cpp @ 478]
    (Inline Function) --------`-------- Windows_Web!SyndicationLinkImpl::get_UriInternal+0x6a [d:\w8rtm\net\winrt\webclient\src\syndication\syndicationlink.cpp @ 115]
    00000027`b895f4e0 000007fc`aac2051e Windows_Web!SyndicationLinkImpl::get_Uri(struct Windows::Foundation::IUriRuntimeClass ** value = 0x00000027`b895f580)+0x8c [d:\w8rtm\net\winrt\webclient\src\syndication\syndicationlink.h @ 96]
    00000027`b895f510 000007fc`a6ac4dac Windows_Web_ni+0x4051e

    I think you should have enough info to help now. 

    Thanks.

    Saturday, August 31, 2013 5:04 PM
  • Can you send me the actual appx package which is generating this dump?  Not a newly compiled package, but this actual package.

    Matt Small - Microsoft Escalation Engineer - Forum Moderator
    If my reply answers your question, please mark this post as answered.

    NOTE: If I ask for code, please provide something that I can drop directly into a project and run (including XAML), or an actual application project. I'm trying to help a lot of people, so I don't have time to figure out weird snippets with undefined objects and unknown namespaces.

    Wednesday, September 04, 2013 5:32 PM
  • I shared it on SkyDrive:

    http://sdrv.ms/1egrcl7

    Please let me know what you find.

    Thanks.

    Thursday, September 05, 2013 1:19 AM
  • Anything on this? 

    This is killing me!

    Saturday, October 05, 2013 3:10 PM
  • I don't see the .pdbs inside the appx package.  Is there any chance you have them somewhere in your solution?  If so, please upload them.

    Matt Small - Microsoft Escalation Engineer - Forum Moderator
    If my reply answers your question, please mark this post as answered.

    NOTE: If I ask for code, please provide something that I can drop directly into a project and run (including XAML), or an actual application project. I'm trying to help a lot of people, so I don't have time to figure out weird snippets with undefined objects and unknown namespaces.

    Monday, October 07, 2013 3:28 PM
  • I figured out the problem.

    Please check this link for explanation: http://wp.me/p30KJ4-45

    Thank you for your help.

    • Marked as answer by Feinberg, Alex Tuesday, October 15, 2013 4:49 PM
    Tuesday, October 15, 2013 3:23 AM