mukunku / ParquetViewer

Simple Windows desktop application for viewing & querying Apache Parquet files
GNU General Public License v3.0
687 stars 82 forks source link

[BUG] App doesn't launch via pre-compiled binaries and any IDE besides Visual Studio #64

Closed karosas closed 1 year ago

karosas commented 1 year ago

Parquet Viewer Version 2.4.2

Where was the parquet file created? Not parquet related issue

Sample File Not parquet related issue

Describe the bug Launching latest pre-compiled binary fails silently. Launching project using dotnet run fails silently Launching project using Jetbrains Rider produces error Appx recipe file[] does not exist Launching project using VS2022 works fine and then later launching produced binary works fine as well

Screenshots I don't think they're helpful here

Additional context Windows 10 21H2 dotnet cli version - 7.0.101 dotnet sdks installed - 7.0.101, 6.0.100 .NET 4.6 installed .NET 4.7.2 or later is installed, or at least that's what 4.7.2 installer tells me

I'm not too familiar with windows GUI app development, so don't really know what to look at. If anything the error from running it in Rider seems to be the biggest hint, but can't really find much information on that specific error.

mukunku commented 1 year ago

Hi, thanks for the report.

Can you see if there's anything in Windows Event Viewer under the Application Logs section?

  1. Try running the application again
  2. Hit Win + R
  3. Type eventvwr and hit Enter
  4. See if there are any interesting logs under Windows Logs -> Application

image

Also when you run the app can you double check if the process is running or not in Task Manager? Maybe it's hidden but actually running.

karosas commented 1 year ago

Ah, right, I was looking at code if you use eventlog as a log sink, but I completely forgot windows track crashes itself.

Events in chronological order:

ERR

Application: ParquetViewer.exe
CoreCLR Version: 6.0.21.52210
.NET Version: 6.0.0
Description: The process was terminated due to an unhandled exception.
Exception Info: System.IO.FileLoadException: Could not load file or assembly 'System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. The located assembly's manifest definition does not match the assembly reference. (0x80131040)
File name: 'System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
   at ParquetFileViewer.Program.Main(String[] args)

ERR

Faulting application name: ParquetViewer.exe, version: 2.4.1.2, time stamp: 0x62fff1bf
Faulting module name: KERNELBASE.dll, version: 10.0.19041.2364, time stamp: 0x5b7d4d22
Exception code: 0xe0434352
Fault offset: 0x000000000002cd29
Faulting process id: 0x8370
Faulting application start time: 0x01d91118aa65fa40
Faulting application path: C:\Users\EdgarasAusvicas\Downloads\ParquetViewer.exe
Faulting module path: C:\Windows\System32\KERNELBASE.dll
Report Id: 251ace45-c4b1-4431-a58d-1b846fb755ae
Faulting package full name: 
Faulting package-relative application ID: 

INF

Fault bucket 2222767335915297256, type 4
Event Name: APPCRASH
Response: Not available
Cab Id: 0

Problem signature:
P1: ParquetViewer.exe
P2: 2.4.1.2
P3: 62fff1bf
P4: KERNELBASE.dll
P5: 10.0.19041.2364
P6: 5b7d4d22
P7: e0434352
P8: 000000000002cd29
P9: 
P10: 

Attached files:
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER3477.tmp.dmp
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER3514.tmp.WERInternalMetadata.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER3534.tmp.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER3532.tmp.csv
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER3572.tmp.txt

These files may be available here:
\\?\C:\ProgramData\Microsoft\Windows\WER\ReportArchive\AppCrash_ParquetViewer.ex_cc17fbaa63c3ea3d4984fc78273b905541411c_8e486447_01ee9d76-69cd-4c67-a207-3137328ba196

Analysis symbol: 
Rechecking for solution: 0
Report Id: 251ace45-c4b1-4431-a58d-1b846fb755ae
Report Status: 268435456
Hashed bucket: e8ea74bdeab3f04c6ed8db1d839299e8
Cab Guid: 0

C:\ProgramData\Microsoft\Windows\WER\ReportArchive\AppCrash_ParquetViewer.ex_cc17fbaa63c3ea3d4984fc78273b905541411c_8e486447_01ee9d76-69cd-4c67-a207-3137328ba196\Report.wer (changed extension to txt, because github didn't want me uploading original extension): Report.wer.txt

Other temp files under Attached files: in last log seem to be gone immediately.

karosas commented 1 year ago

Another Note on IDE builds, it seems that Jetbrains Rider/dotnet CLI generate quite different output structures on debug builds.

VS Debug build produces bin\Debug\net6.0-windows

ref
runtimes
Apache.Arrow.dll
IronCompress.dll
Newtonsoft.Json.dll
Parquet.dll
ParquetViewer.deps.json
ParquetViewer.dll
ParquetViewer.dll.config
ParquetViewer.exe
ParquetViewer.pdb
ParquetViewer.runtimeconfig.json
Utilities.dll
Utilities.pdb

Jetbrains Rider / dotnet CLI produce bin\Debug\net6.0-windows\win-x64

Apache.Arrow.dll
IronCompress.dll
Newtonsoft.Json.dll
nironcompress.dll
Parquet.dll
ParquetViewer.deps.json
ParquetViewer.dll
ParquetViewer.dll.config
ParquetViewer.exe
ParquetViewer.pdb
ParquetViewer.runtimeconfig.json
Utilities.dll
Utilities.pdb
mukunku commented 1 year ago

Looks like this might be an issue with the 6.0.2 sdk: https://github.com/dotnet/core/issues/7176 . I'll check if that's what I published the app against.

From the Rider IDE perspective unfortunately I don't have much information about that. There isn't anything special with the project that I could think of that would cause issues with Rider.

mukunku commented 1 year ago

Here's an experimental .NET 7.0 build: ParquetViewer.zip

Let me know if this works for you.

karosas commented 1 year ago

Yup, that was it, dotnet 7.0 build works. Thanks