TASEmulators / TASEmulators/BizHawk

Unhandled Exception (crashing on Linux)

Open
#4,817 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

App: EmuHawk re: Multiplatform Repro: Affects 2.11.1
Dominant language
C#
Stars
2.8k
Forks
468
PR merge metrics
No merged PRs in 30d

Description

Summary

Bizhawk will crash while using TAStudio after some time. Both TAStudio and RAM Watch are open during this time.

Repro
  1. Launched using GTK_DATA_PREFIX='' /path/to/BizHawk-2.11.1-linux-x64/EmuHawkMono.sh
  2. Launched a Game Boy game, opened TAStudio and RAM Watch, loaded saved files
  3. After some time, Bizhawk crashes
Output

From EmuHawkMono_laststdout.txt:

Using SDL2 for host input (keyboard + gamepads)
Connected SDL gamepad, device index 0, instance ID 1, name Inland MK47 System Control
GB
Core reported BoardID: "MBC1 [RAM,battery]"
Active firmware:
	GB+World : 4ED31EC6B0B175BB109C0EB5FD3D193DA823339F
Disconnecting SDL gamepad, device index 0, instance ID 1, name Inland MK47 System Control

From EmuHawkMono_laststderr.txt:

Unhandled Exception:
Mono.Unix.UnixIOException: Resource temporarily unavailable [EWOULDBLOCK].
  at Mono.Unix.UnixMarshal.ThrowExceptionForLastError () [0x00005] in <839634f360c34ac38639edc357a9a03a>:0 
  at Mono.Unix.UnixStream.Write (System.Byte[] buffer, System.Int32 offset, System.Int32 count) [0x00055] in <839634f360c34ac38639edc357a9a03a>:0 
  at System.Windows.Forms.XplatUIX11.WakeupMain () [0x00000] in <c87c1b414e134a3b85f757beb69a2505>:0 
  at System.Windows.Forms.XplatUIX11.SetTimer (System.Windows.Forms.Timer timer) [0x00033] in <c87c1b414e134a3b85f757beb69a2505>:0 
  at System.Windows.Forms.XplatUI.SetTimer (System.Windows.Forms.Timer timer) [0x00000] in <c87c1b414e134a3b85f757beb69a2505>:0 
  at System.Windows.Forms.Timer.set_Enabled (System.Boolean value) [0x0004c] in <c87c1b414e134a3b85f757beb69a2505>:0 
  at BizHawk.Client.EmuHawk.ExceptionBox.InitializeComponent () [0x00429] in <923595f18a5244b8a77a3faa19fe4777>:0 
  at BizHawk.Client.EmuHawk.ExceptionBox..ctor (System.String str) [0x00006] in <923595f18a5244b8a77a3faa19fe4777>:0 
  at BizHawk.Client.EmuHawk.ExceptionBox..ctor (System.Exception ex) [0x00007] in <923595f18a5244b8a77a3faa19fe4777>:0 
  at (wrapper remoting-invoke-with-check) BizHawk.Client.EmuHawk.ExceptionBox..ctor(System.Exception)
  at BizHawk.Client.EmuHawk.Program.SubMain (System.String[] args) [0x0058a] in <923595f18a5244b8a77a3faa19fe4777>:0 
  at BizHawk.Client.EmuHawk.Program.Main (System.String[] args) [0x00000] in <923595f18a5244b8a77a3faa19fe4777>:0 
[ERROR] FATAL UNHANDLED EXCEPTION: Mono.Unix.UnixIOException: Resource temporarily unavailable [EWOULDBLOCK].
  at Mono.Unix.UnixMarshal.ThrowExceptionForLastError () [0x00005] in <839634f360c34ac38639edc357a9a03a>:0 
  at Mono.Unix.UnixStream.Write (System.Byte[] buffer, System.Int32 offset, System.Int32 count) [0x00055] in <839634f360c34ac38639edc357a9a03a>:0 
  at System.Windows.Forms.XplatUIX11.WakeupMain () [0x00000] in <c87c1b414e134a3b85f757beb69a2505>:0 
  at System.Windows.Forms.XplatUIX11.SetTimer (System.Windows.Forms.Timer timer) [0x00033] in <c87c1b414e134a3b85f757beb69a2505>:0 
  at System.Windows.Forms.XplatUI.SetTimer (System.Windows.Forms.Timer timer) [0x00000] in <c87c1b414e134a3b85f757beb69a2505>:0 
  at System.Windows.Forms.Timer.set_Enabled (System.Boolean value) [0x0004c] in <c87c1b414e134a3b85f757beb69a2505>:0 
  at BizHawk.Client.EmuHawk.ExceptionBox.InitializeComponent () [0x00429] in <923595f18a5244b8a77a3faa19fe4777>:0 
  at BizHawk.Client.EmuHawk.ExceptionBox..ctor (System.String str) [0x00006] in <923595f18a5244b8a77a3faa19fe4777>:0 
  at BizHawk.Client.EmuHawk.ExceptionBox..ctor (System.Exception ex) [0x00007] in <923595f18a5244b8a77a3faa19fe4777>:0 
  at (wrapper remoting-invoke-with-check) BizHawk.Client.EmuHawk.ExceptionBox..ctor(System.Exception)
  at BizHawk.Client.EmuHawk.Program.SubMain (System.String[] args) [0x0058a] in <923595f18a5244b8a77a3faa19fe4777>:0 
  at BizHawk.Client.EmuHawk.Program.Main (System.String[] args) [0x00000] in <923595f18a5244b8a77a3faa19fe4777>:0
Host env.
  • BizHawk 2.11.1-linux-x64; EndeavourOS Linux x86_64 (7.1.5-arch1-2)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the Linux launch and TAStudio/RAM Watch workflow, then trace the reported path through BizHawk.Client.EmuHawk.ExceptionBox.InitializeComponent and Mono System.Windows.Forms.XplatUIX11.SetTimer. Compare the EWOULDBLOCK failure in UnixStream.Write with how the exception dialog is created; done means the reported workflow no longer terminates with this unhandled exception and the error remains reportable.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp, linux
Domain
desktop, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.