Author Topic: BASSMIDI - Very strange crash when called by chromium for webMIDI  (Read 683 times)

ceraso

  • Posts: 16
Title, the only real details I have are that the issue lies potentially either in windows (as kernelbase.dll having a fit) or as bassmidi.dll having a problem. Not entirely sure how to take a proper chrome dump, but the debug symbol given for bassmidi.dll appears to be something of substance.

> bassmidi.dll!00007ffea2ac5004()    Unknown

I've spoken with the lead developer of OmniMIDI and nothing seems to indicate it being a problem with their end-- although they can reproduce it. I'm running OmniMIDI v14.6.13 (PR127), and the latest version of chrome, attempting to visit https://mppclone.com. Chrome just dies when webMIDI is initialized, and bassmidi spits out the above symbol before an error in kernelbase causes windows to kill chrome, shown below.

Faulting application name: chrome.exe, version: 103.0.5060.114, time stamp: 0x62bf8a9a
Faulting module name: KERNELBASE.dll, version: 10.0.22000.795, time stamp: 0x960371d1
Exception code: 0xc0000409
Fault offset: 0x0000000000057929

I can provide more details on request.

Ian @ un4seen

  • Administrator
  • Posts: 25275
I don't seem to be able to reproduce that here, so I'm unable to see what's causing it right now. I installed the latest Chrome (104.0.5112.81) and OmniMIDI (14.6.13 and also PR127) versions, and then opened that website and set its MIDI output to OmniMIDI, but notes played without a crash. Should it have happened immediately? Perhaps it's config-related. Can you try resetting your OmniMIDI config to defaults and see if it still happens then?

Can you also reproduce the problem when using a different browser? Or when using a different BASSMIDI-based driver, eg. VirtualMIDISynth?

   https://coolsoft.altervista.org/en/virtualmidisynth

Also confirm where you're seeing the "bassmidi.dll!00007ffea2ac5004()    Unknown" line. That looks like a line from a call stack. If so, please post the rest of it too.

ceraso

  • Posts: 16
Pulling this out of necropost no-mans land because it hasn't actually been fixed yet.

For me the crash occurs before the site even finishes loading, seemingly as soon as webMIDI turns to figure out what devices are present. Unfortunately, this site only properly supports chromium webMIDI. I can confirm that it happens in both edge and chrome's latest versions on my end. Resetting OmniMIDI's configs to default as well as reinstalling didn't help. Reinstalling OmniMIDI from scratch, as well as aggressively removing OmniMIDI's remaining files also doesn't seem to have resolved the problem.

Interestingly, installing VMS seems to have worked (and VMS now has your async mode as default, which was not the case when I first started this topic.)

As for the call stack, I'd now need to get this information in the first place, and I'm not sure how to debug the program myself to get this information.


Ian @ un4seen

  • Administrator
  • Posts: 25275
For more info, can you provide a dump file from the crash? You can make Windows generate dump files automatically by applying this "localdumps-full" registry entry:

   www.un4seen.com/stuff/localdumps.zip

Windows will then generate a dump file in the "%LOCALAPPDATA%\CrashDumps" folder whenever a crash occurs. Once you've got the dump file, you can ZIP it and upload it here:

   ftp.un4seen.com/incoming/

Please make sure you're using the latest BASS.DLL and BASSMIDI.DLL versions when generating the dump file. You can use the "localdumps-off" registry file to disable the dump file generation afterwards.

ceraso

  • Posts: 16
Chrome seems to not respect localdumps status and I can't seem to get it to take a proper dump file. I do however get some extended error information in event viewer. I was able to get other programs to generate dumps, so I'm not sure what's going on...

Some dump files with the right timestamps are located in google's own folders, but they seem far too small to actually be of any use. I've uploaded them in any case in the event they are in a "reports.zip"

Here's some info from event viewer that seems to suggest windows is at least partially at fault here, but kernelbase can often be the messenger that there's a problem rather than the cause-- so I don't know.

Code: [Select]
Fault bucket 1879335136453544157, type 5
Event Name: BEX64
Response: Not available
Cab Id: 0

Problem signature:
P1: chrome.exe
P2: 108.0.5359.72
P3: 6385368c
P4: KERNELBASE.dll
P5: 10.0.22621.755
P6: 19d26491
P7: 000000000006b81e
P8: c0000409
P9: 0000000000000039
P10:

Attached files:
\\?\C:\Users\ceras\AppData\Local\Temp\WER.c2623498-0e1f-4572-a462-f6b50376db76.tmp.WERDataCollectionStatus.txt
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER.1df81b39-f82a-4081-a120-58af13cb8348.tmp.WERInternalMetadata.xml
WPR_initiated_DiagTrackMiniLogger_OneTrace_User_Logger_20220920_1_EC_0_inject.etl
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER.af5f74ce-3359-4283-a617-befa7c1cafd6.tmp.etl
WPR_initiated_DiagTrackMiniLogger_WPR System Collector_inject.etl
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER.7d8429b7-178d-4a50-9d20-f063c3732700.tmp.etl
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER.d5886b25-9ef8-4fa8-9416-e17ed28dbad9.tmp.csv
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER.57887edc-3828-4946-9404-3d38537fbe26.tmp.txt
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER.4d3232b8-c0e6-4e26-9eb4-dd7ea70713ae.tmp.xml

These files may be available here:
\\?\C:\ProgramData\Microsoft\Windows\WER\ReportArchive\AppCrash_chrome.exe_36db37852757c36189a774c0d3f0c283531b63e0_64cb95ca_ec7ebc59-ed11-4113-afda-80e15e692971

Analysis symbol:
Rechecking for solution: 0
Report Id: cce5952a-46b4-49f9-b6e1-808702c3b62e
Report Status: 268566528
Hashed bucket: 88bfaaa0227fe74cea14bd59763948dd
Cab Guid: 0

Code: [Select]
Faulting application name: chrome.exe, version: 108.0.5359.72, time stamp: 0x6385368c
Faulting module name: KERNELBASE.dll, version: 10.0.22621.755, time stamp: 0x19d26491
Exception code: 0xc0000409
Fault offset: 0x000000000006b81e
Faulting process id: 0x0x4474
Faulting application start time: 0x0x1D90584F2F3B14B
Faulting application path: C:\Program Files\Google\Chrome\Application\chrome.exe
Faulting module path: C:\WINDOWS\System32\KERNELBASE.dll
Report Id: cce5952a-46b4-49f9-b6e1-808702c3b62e
Faulting package full name:
Faulting package-relative application ID:

Ian @ un4seen

  • Administrator
  • Posts: 25275
Thanks for the dump files. They're only minidumps but do give some more info on the problem. I'll look into it and then hopefully get back to you with an update.

ceraso

  • Posts: 16
Semi-related update, chrome doesn't typically report its own BEX64 crashes anymore, but I've forcefully report it and will monitor the update in case it's chrome instead of BassMIDI

Ian @ un4seen

  • Administrator
  • Posts: 25275
Here's something for you to try:

   www.un4seen.com/stuff/bassmidi.zip

Please replace the BASSMIDI.DLL file in the C:\Windows\System32\OmniMIDI folder and see if Chrome still crashes then.

ceraso

  • Posts: 16
The crash still occurs, though the minidumps aren't immediately identical.

Code: [Select]
Fault bucket 1909104636430281640, type 5
Event Name: BEX64
Response: Not available
Cab Id: 0

Problem signature:
P1: chrome.exe
P2: 108.0.5359.94
P3: 63890cfd
P4: KERNELBASE.dll
P5: 10.0.22621.755
P6: 19d26491
P7: 000000000006b81e
P8: c0000409
P9: 0000000000000039
P10:

Attached files:
\\?\C:\Users\ceras\AppData\Local\Temp\WER.c8ccd80b-6f71-42ba-bd0b-9773a7fb9a4d.tmp.WERDataCollectionStatus.txt
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER.ad8ba8ff-7cc3-429c-a4a4-247e6f26f317.tmp.WERInternalMetadata.xml
WPR_initiated_DiagTrackMiniLogger_OneTrace_User_Logger_20220920_1_EC_0_inject.etl
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER.88ba802c-c67a-447b-99ef-a000974e0b2c.tmp.etl
WPR_initiated_DiagTrackMiniLogger_WPR System Collector_inject.etl
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER.54c56c34-2728-41fb-87bd-9a44b21da424.tmp.etl
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER.a384f1b1-c439-4ddc-ba93-d787e9097e5b.tmp.csv
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER.8b11a5e1-b966-43d0-9a7a-f5ec216db2b0.tmp.txt
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER.b76d6e62-e62b-4298-8de9-0dc4bce2624f.tmp.xml

These files may be available here:
\\?\C:\ProgramData\Microsoft\Windows\WER\ReportArchive\AppCrash_chrome.exe_801d99a96cee704be818285911e7d5dca487c1_03b30a75_3c185ab6-8485-4910-8389-8cdd279c0b69

Analysis symbol:
Rechecking for solution: 0
Report Id: 8afd121f-36f1-4c0c-9920-2c4c9ab4e845
Report Status: 268566528
Hashed bucket: c6d4a548b0a3fdee6a7e808d4d7a6ba8
Cab Guid: 0

Code: [Select]
Faulting application name: chrome.exe, version: 108.0.5359.94, time stamp: 0x63890cfd
Faulting module name: KERNELBASE.dll, version: 10.0.22621.755, time stamp: 0x19d26491
Exception code: 0xc0000409
Fault offset: 0x000000000006b81e
Faulting process id: 0x0x3E60
Faulting application start time: 0x0x1D907E6DE8DAE6C
Faulting application path: C:\Program Files\Google\Chrome\Application\chrome.exe
Faulting module path: C:\WINDOWS\System32\KERNELBASE.dll
Report Id: 8afd121f-36f1-4c0c-9920-2c4c9ab4e845
Faulting package full name:
Faulting package-relative application ID:

Further minidumps available in your ftp drop-point as "reports_dec4_0000.zip"

Ian @ un4seen

  • Administrator
  • Posts: 25275
Those new crashes were related to BASS.DLL - it looks like you replaced OmniMIDI's included version (2.4.16) with the latest (2.4.17). The x64 version of the latter has a new compression system applied, and the latest BASSMIDI release does too. The problem seems to be triggered by that compression, and the BASSMIDI update that I posted has a little tweak to it. So please try putting back OmniMIDI's original BASS.DLL file and see if the crash still happens. If it doesn't, I will then post a similarly tweaked BASS.DLL for you to try.

ceraso

  • Posts: 16
Crashes confirmed resolved. Testing for stability.