the-hideout / TarkovMonitor

Monitor Tarkov log files to help track progress, queues, and groups
GNU General Public License v3.0
91 stars 16 forks source link

After latest update, Tarkov Monitor constantly crashes in the background #56

Closed bitpushr closed 7 months ago

bitpushr commented 7 months ago

Opening and then minimising Tarkov Monitor to the background results in it repeatedly crashing and needing to be re-opened.

Can't see any log files to attach.

Razzmatazzz commented 7 months ago

Does is immediately crash, or does it crash after some event happens?

It minimizes normally for me.

bitpushr commented 7 months ago

You can minimise it, for example at the start of a raid, search for a raid, then by the time you've completed a raid it has since crashed.

Vaelek commented 7 months ago

Crashing for me while playing. No errors it just closes. Once at an unknown point after loading into a scav raid, and the 2nd time immediately after selling something on the flea.

EDIT: I am also having the null path1 error when viewing stats if that is helpful.

Vaelek commented 7 months ago

I just reproduced the crash while selling on the flea and in the events it looks like it's the same error as is happening for stats. Every crash I have is this same error in event log.

Application: TarkovMonitor.exe CoreCLR Version: 6.0.2623.60508 .NET Version: 6.0.26 Description: The process was terminated due to an unhandled exception. Exception Info: System.TypeInitializationException: The type initializer for 'TarkovMonitor.Stats' threw an exception. ---> System.ArgumentNullException: Value cannot be null. (Parameter 'path1') at System.IO.Path.Combine(String path1, String path2) at System.Data.SQLite.SQLiteConnection..ctor(String connectionString, Boolean parseViaFramework) at System.Data.SQLite.SQLiteConnection..ctor(String connectionString) at TarkovMonitor.Stats..cctor() in TarkovMonitor\Stats.cs:line 18 --- End of inner exception stack trace --- at TarkovMonitor.Stats.AddFleaSale(FleaSoldMessageEventArgs e) in TarkovMonitor\Stats.cs:line 89 at TarkovMonitor.MainBlazorUI.Eft_FleaSold(Object sender, FleaSoldMessageEventArgs e) in TarkovMonitor\MainBlazorUI.cs:line 504 at System.Threading.Tasks.Task.<>c.b__128_1(Object state) at System.Threading.QueueUserWorkItemCallbackDefaultContext.Execute() at System.Threading.ThreadPoolWorkQueue.Dispatch() at System.Threading.PortableThreadPool.WorkerThread.WorkerThreadStart() at System.Threading.Thread.StartCallback()

bknab commented 7 months ago

I'm also noticing the app silently crashes after installing the latest version earlier this morning. I thought I had accidentally closed the app, rather than minimized it. I opened the app again, and went into a raid. after the raid I noticed the app was no longer running again.

After opening once again, the app crashed a few minutes later after selling an item on the flea as Vaelek noted. It appears to be an issue with the stats module. I found the following error in event viewer after it crashed when selling:


Source:        .NET Runtime
Date:          2/11/2024 12:17:41 PM
Event ID:      1026
Task Category: None
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      herakles
Description:
Application: TarkovMonitor.exe
CoreCLR Version: 6.0.2623.60508
.NET Version: 6.0.26
Description: The process was terminated due to an unhandled exception.
Exception Info: System.TypeInitializationException: The type initializer for 'TarkovMonitor.Stats' threw an exception.
 ---> System.ArgumentNullException: Value cannot be null. (Parameter 'path1')
   at System.IO.Path.Combine(String path1, String path2)
   at System.Data.SQLite.SQLiteConnection..ctor(String connectionString, Boolean parseViaFramework)
   at System.Data.SQLite.SQLiteConnection..ctor(String connectionString)
   at TarkovMonitor.Stats..cctor() in TarkovMonitor\Stats.cs:line 18
   --- End of inner exception stack trace ---
   at TarkovMonitor.Stats.AddFleaSale(FleaSoldMessageEventArgs e) in TarkovMonitor\Stats.cs:line 89
   at TarkovMonitor.MainBlazorUI.Eft_FleaSold(Object sender, FleaSoldMessageEventArgs e) in TarkovMonitor\MainBlazorUI.cs:line 504
   at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__128_1(Object state)
   at System.Threading.QueueUserWorkItemCallbackDefaultContext.Execute()
   at System.Threading.ThreadPoolWorkQueue.Dispatch()
   at System.Threading.PortableThreadPool.WorkerThread.WorkerThreadStart()
   at System.Threading.Thread.StartCallback()

Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name=".NET Runtime" />
    <EventID Qualifiers="0">1026</EventID>
    <Version>0</Version>
    <Level>2</Level>
    <Task>0</Task>
    <Opcode>0</Opcode>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2024-02-11T18:17:41.7529135Z" />
    <EventRecordID>30680</EventRecordID>
    <Correlation />
    <Execution ProcessID="11408" ThreadID="0" />
    <Channel>Application</Channel>
    <Computer>herakles</Computer>
    <Security />
  </System>
  <EventData>
    <Data>Application: TarkovMonitor.exe
CoreCLR Version: 6.0.2623.60508
.NET Version: 6.0.26
Description: The process was terminated due to an unhandled exception.
Exception Info: System.TypeInitializationException: The type initializer for 'TarkovMonitor.Stats' threw an exception.
 ---&gt; System.ArgumentNullException: Value cannot be null. (Parameter 'path1')
   at System.IO.Path.Combine(String path1, String path2)
   at System.Data.SQLite.SQLiteConnection..ctor(String connectionString, Boolean parseViaFramework)
   at System.Data.SQLite.SQLiteConnection..ctor(String connectionString)
   at TarkovMonitor.Stats..cctor() in TarkovMonitor\Stats.cs:line 18
   --- End of inner exception stack trace ---
   at TarkovMonitor.Stats.AddFleaSale(FleaSoldMessageEventArgs e) in TarkovMonitor\Stats.cs:line 89
   at TarkovMonitor.MainBlazorUI.Eft_FleaSold(Object sender, FleaSoldMessageEventArgs e) in TarkovMonitor\MainBlazorUI.cs:line 504
   at System.Threading.Tasks.Task.&lt;&gt;c.&lt;ThrowAsync&gt;b__128_1(Object state)
   at System.Threading.QueueUserWorkItemCallbackDefaultContext.Execute()
   at System.Threading.ThreadPoolWorkQueue.Dispatch()
   at System.Threading.PortableThreadPool.WorkerThread.WorkerThreadStart()
   at System.Threading.Thread.StartCallback()
</Data>
  </EventData>
</Event>
bknab commented 7 months ago

The app also hard crashes with error immediately upon clicking Stats from the menu.


just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.ArgumentNullException: Value cannot be null. (Parameter 'path1')
   at System.IO.Path.Combine(String path1, String path2)
   at System.Data.SQLite.SQLiteConnection..ctor(String connectionString, Boolean parseViaFramework)
   at System.Data.SQLite.SQLiteConnection..ctor(String connectionString)
   at TarkovMonitor.Stats..cctor() in TarkovMonitor\Stats.cs:line 18
bknab commented 7 months ago

It appears the variable path1 is to not being set properly and is instead evaluating to null, producing the error.

Vaelek commented 7 months ago

I looked at stats.cs and ran a test, on my machine that code resolves to C:\Users\jim\AppData\Local\TarkovMonitor\TarkovMonitor.db , which does not exist.

image

Killertom63 commented 7 months ago

Experiencing the same problem

Razzmatazzz commented 7 months ago

The problem is that Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) is resolving to null for everyone experiencing this. I'm not sure why that would be.

Razzmatazzz commented 7 months ago

Closing this as a duplicate of #55