TASEmulators / TASEmulators/BizHawk
Unhandled Exception (crashing on Linux)
Nobody has claimed this yet.
- 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
- Launched using
GTK_DATA_PREFIX='' /path/to/BizHawk-2.11.1-linux-x64/EmuHawkMono.sh - Launched a Game Boy game, opened TAStudio and RAM Watch, loaded saved files
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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