Search Unity

Different reports stacks ending in same problem

Discussion in 'Unity Cloud Diagnostics' started by jerome-lacoste, Sep 1, 2020.

  1. jerome-lacoste

    jerome-lacoste

    Joined:
    Jan 7, 2012
    Posts:
    206
    We regularly see reports with very different stacks and message being merged into similar problems.

    E.g.

    Code (CSharp):
    1.    "ts": 1598897807271,
    2.     "user_agent": "UnityPlayer/2019.4.1f1 (UnityWebRequest/1.0, libcurl/7.52.0-DEV)",
    3.     "project_name": "DBSchool",
    4.     "crash_report_hash": "945480aaaf4274aaee464c0dc991d02b",
    5.     "type": "Exception",
    6.     "message": "InvalidCastException: Specified cast is not valid.",
    7.     "stack_trace": "Managed Stack Trace:\n\n(wrapper castclass) System.Object.__castclass_with_cache(object,intptr,intptr)\nWWTK.Persistence.FileBaseDataStorage.Get[T] (System.String _key) (at <d7b280cda3f64fe98d00c1a83a49425c>:0)\nDataPersistenceCleaner.TryGetSavedVersion (System.Int32& version) (at <b1362673a0464935949ac4ad35190acf>:0)\nDataPersistenceCleaner.CleanObsoleteData () (at <b1362673a0464935949ac4ad35190acf>:0)\nWWTK.School.DataStorageInitializer.Initialize () (at <b1362673a0464935949ac4ad35190acf>:0)\nZenject.InitializableManager.Initialize () (at <a20fabd0823041b9b9d24118e3621561>:0)\nRethrow as ZenjectException: Error occurred while initializing IInitializable with type 'DataStorageInitializer'\nZenject.InitializableManager.Initialize () (at <a20fabd0823041b9b9d24118e3621561>:0)\nZenject.MonoKernel.Initialize () (at <a20fabd0823041b9b9d24118e3621561>:0)\nZenject.MonoKernel.Start () (at <a20fabd0823041b9b9d24118e3621561>:0)\n\n\n",
    8.     "counter": 1

    Code (CSharp):
    1.     "ts": 1598887606142,
    2.     "user_agent": "UnityPlayer/2019.4.1f1 (UnityWebRequest/1.0, libcurl/7.52.0-DEV)",
    3.     "project_name": "DBSchool",
    4.     "crash_report_hash": "945480aaaf4274aaee464c0dc991d02b",
    5.     "type": "Exception",
    6.     "message": "IOException: Sharing violation on path C:\\Users\\Eleve2\\AppData\\LocalLow\\WeWantToKnow AS\\Les Noums CP\\FranceYear1\\app.json",
    7.     "stack_trace": "Managed Stack Trace:\n\nSystem.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.Boolean anonymous, System.IO.FileOptions options) (at <4756199cf52a4f14b33cdcc5659f782e>:0)\nSystem.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.IO.FileOptions options, System.String msgPath, System.Boolean bFromProxy, System.Boolean useLongPath, System.Boolean checkHost) (at <4756199cf52a4f14b33cdcc5659f782e>:0)\n(wrapper remoting-invoke-with-check) System.IO.FileStream..ctor(string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,int,System.IO.FileOptions,string,bool,bool,bool)\nSystem.IO.StreamWriter.CreateFile (System.String path, System.Boolean append, System.Boolean checkHost) (at <4756199cf52a4f14b33cdcc5659f782e>:0)\nSystem.IO.StreamWriter..ctor (System.String path, System.Boolean append, System.Text.Encoding encoding, System.Int32 bufferSize, System.Boolean checkHost) (at <4756199cf52a4f14b33cdcc5659f782e>:0)\nSystem.IO.StreamWriter..ctor (System.String path, System.Boolean append, System.Text.Encoding encoding, System.Int32 bufferSize) (at <4756199cf52a4f14b33cdcc5659f782e>:0)\nSystem.IO.StreamWriter..ctor (System.String path) (at <4756199cf52a4f14b33cdcc5659f782e>:0)\n(wrapper remoting-invoke-with-check) System.IO.StreamWriter..ctor(string)\nWWTK.Persistence.ObjectFileStorer.SaveObject[T] (T coarseObject) (at <c7d4f65be73d4dc3ade1c751258d1c16>:0)\nWWTK.Persistence.FileBaseDataStorage.Save () (at <c7d4f65be73d4dc3ade1c751258d1c16>:0)\nWWTK.School.SaveManager.PersistChanges () (at <7b63c0d7f88d447e87c6b34ab3a5dd4d>:0)\nWWTK.School.SaveManager.Dispose () (at <7b63c0d7f88d447e87c6b34ab3a5dd4d>:0)\nZenject.DisposableManager.Dispose () (at <e7c7d7d1efd64c2ba8f1216b2fe63449>:0)\nRethrow as ZenjectException: Error occurred while disposing IDisposable with type 'SaveManager'\nZenject.DisposableManager.Dispose () (at <e7c7d7d1efd64c2ba8f1216b2fe63449>:0)\nZenject.MonoKernel.OnDestroy () (at <e7c7d7d1efd64c2ba8f1216b2fe63449>:0)\n\n\n",
    A bit confusing.

    (In light of the message in the other thread that this tool is deprecated, I guess no-one is going to do anything about this though)
     
  2. Ryan-Unity

    Ryan-Unity

    Joined:
    Mar 23, 2016
    Posts:
    1,993
    Hi @jerome-lacoste, I'm sorry to hear that. Are similar reports being listed together on the Dashboard too? Where are you pulling this report data from?

    (Also, to clear up confusion around my messaging in the other thread, Cloud Diagnostics is not being deprecated. It is just being put into maintenance mode temporarily while we evaluate where to take the product next. We are still supporting it by addressing any critical bugs.)
     
  3. jerome-lacoste

    jerome-lacoste

    Joined:
    Jan 7, 2012
    Posts:
    206
    > Are similar reports being listed together on the Dashboard too?

    yes

    upload_2020-9-3_11-44-39.png

    upload_2020-9-3_11-44-52.png

    > Where are you pulling this report data from?

    json from your backend.

    So yes this is happening in the dashboard as well. In several places. I actually have a tool that downloads the data from the store and we use a custom script to produce reports out of the data. That's where I noticed that the problems combine reports that are not similar. Do you want anything from me? I can give you out ids of problems where this is happening.
     
  4. Ryan-Unity

    Ryan-Unity

    Joined:
    Mar 23, 2016
    Posts:
    1,993
    That is definitely strange. Unfortunately, the dev responsible for Crash Reporting is on leave for a couple months and we're in the middle of onboarding other devs to the product, so it might take some time for someone to respond to you. But I will log this issue so that it isn't forgotten and someone will look into it as soon as possible.
     
  5. jerome-lacoste

    jerome-lacoste

    Joined:
    Jan 7, 2012
    Posts:
    206
    Another issue with the crash reporter is its inability to merge native crashes. I end up with thousand of entries that are the same in fact.

    Then we have built a little tool that allows to create reports to answer the following questions:
    • what are the issues with the most occurrences / or affecting the biggest quantity of users / affecting the biggest quantity of customers (customer being a concept from our backend)
    • what are the regressions for a particular version (on each platform)? How do they compare to usage of that particular version?
    • are there new issues that started appear for a particular version?
    • what are the issues that affected a particular user on a particular device?
    • what are the most common issues that affect users that have this one issue?
    etc

    From there we can have daily reports and alerts.

    I am not sure Unity would be able to create a tool that answers all those questions. So to us, it would be even better if the crash reporter had an open API and/or allow us to sync the whole dataset to a place we can build more advanced reporting tools, in particular aggregating data from our own backend.

    What's the best place to submit this idea?