mauer / xmidictrl

XMidiCtrl is an X-Plane plugin to use midi controllers within the flight simulator
https://mauer.github.io/xmidictrl/#/
GNU Affero General Public License v3.0
31 stars 10 forks source link

CTD after aircraft load with (official) 1.01 #13

Closed zumbrunnen closed 1 year ago

zumbrunnen commented 2 years ago

Hi Marco

You might remember #12 where you posted a ZIP with a 1.01 version of the plugin. That one used to work fine.

I've now replaced the plugin with your official release of 1.01 and .... it results in a CTD again :cry: But this time, it's not while "Will initialize plugins", but right in the end after the aircraft has been loaded.

2022-06-26 11:58:29 CL650[except.c:117]: Caught SIGSEGV: segmentation fault ((nil))
Backtrace is:
/lib/x86_64-linux-gnu/libc.so.6(+0x42520) [0x7f0b06dfc520]
/lib/x86_64-linux-gnu/libstdc++.so.6(_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base+0x24) [0x7f0b05e9a584]
/opt/X-Plane11/Resources/plugins/XMidiCtrl/lin_x64/XMidiCtrl.xpl(_ZN9xmidictrl6plugin21process_info_messagesEv+0xc0) [0x7f0a041f0234]
/opt/X-Plane11/Resources/plugins/XMidiCtrl/lin_x64/XMidiCtrl.xpl(_ZN9xmidictrl6plugin19process_flight_loopEffi+0x8b) [0x7f0a041f013d]
/opt/X-Plane11/Resources/plugins/XMidiCtrl/lin_x64/XMidiCtrl.xpl(_ZN9xmidictrl6plugin20callback_flight_loopEffiPv+0xe) [0x7f0a041f00a8]
/opt/X-Plane11/Resources/plugins/XPLM_64.so(+0x27037) [0x7f0a60227037]
/opt/X-Plane11/Resources/plugins/XPLM_64.so(XPLMEventHook+0x209) [0x7f0a6021c6b9]
/opt/X-Plane11/X-Plane-x86_64() [0x1243f1d]
/opt/X-Plane11/X-Plane-x86_64() [0x4aef3a]
/opt/X-Plane11/X-Plane-x86_64() [0xa3ebed]
/opt/X-Plane11/X-Plane-x86_64() [0x16a3dd4]
/opt/X-Plane11/X-Plane-x86_64() [0x169b94c]
/lib/x86_64-linux-gnu/libc.so.6(+0x29d90) [0x7f0b06de3d90]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x80) [0x7f0b06de3e40]
/opt/X-Plane11/X-Plane-x86_64() [0x1727091]
--=={This application has crashed because of the plugin: XMidiCtrl}==--

The same behaviour occurs whether I take your release file or when I've built XMidiCtrl.xpl myself. Reverting to your ZIP in #12 resolves the issue. Also, the CTD occurs independent of the selected aircraft or if I have custom profiles or none at all.

Log.txt XMidiCtrl_Log.txt

zumbrunnen commented 2 years ago

Ooops! And now I just got a similar one. The challenger was fully loaded, then I reverted to my own CL60 profile and told XMidiCtrl to reload the aircraft profile. Resulted in this CTD:

2022-06-26 12:09:16 CL650[except.c:117]: Caught SIGSEGV: segmentation fault (0x1)
Backtrace is:
/lib/x86_64-linux-gnu/libc.so.6(+0x42520) [0x7f8b03588520]
/lib/x86_64-linux-gnu/libc.so.6(+0x19d97d) [0x7f8b036e397d]
/lib/x86_64-linux-gnu/libc.so.6(+0x76db1) [0x7f8b035bcdb1]
/lib/x86_64-linux-gnu/libc.so.6(+0x8851a) [0x7f8b035ce51a]
/opt/X-Plane11/Resources/plugins/XMidiCtrl/lin_x64/XMidiCtrl.xpl(_ZN9xmidictrl11text_logger14create_messageENS_9log_levelESt17basic_string_viewIcSt11char_traitsIcEEP13__va_list_tag+0x8a) [0x7f8a001e4f04]
/opt/X-Plane11/Resources/plugins/XMidiCtrl/lin_x64/XMidiCtrl.xpl(_ZN9xmidictrl11text_logger5debugESt17basic_string_viewIcSt11char_traitsIcEEz+0xec) [0x7f8a001e510a]
/opt/X-Plane11/Resources/plugins/XMidiCtrl/lin_x64/XMidiCtrl.xpl(_ZN9xmidictrl10map_in_cmd7executeERNS_12midi_messageESt17basic_string_viewIcSt11char_traitsIcEE+0x79) [0x7f8a001f9041]
/opt/X-Plane11/Resources/plugins/XMidiCtrl/lin_x64/XMidiCtrl.xpl(_ZN9xmidictrl14inbound_worker7processESt17basic_string_viewIcSt11char_traitsIcEE+0x182) [0x7f8a0020366e]
/opt/X-Plane11/Resources/plugins/XMidiCtrl/lin_x64/XMidiCtrl.xpl(_ZN9xmidictrl6plugin19process_flight_loopEffi+0x5e) [0x7f8a00201e14]
/opt/X-Plane11/Resources/plugins/XMidiCtrl/lin_x64/XMidiCtrl.xpl(_ZN9xmidictrl6plugin20callback_flight_loopEffiPv+0x18) [0x7f8a00201eae]
/opt/X-Plane11/Resources/plugins/XPLM_64.so(+0x27037) [0x7f8a60427037]
/opt/X-Plane11/Resources/plugins/XPLM_64.so(XPLMEventHook+0x209) [0x7f8a6041c6b9]
/opt/X-Plane11/X-Plane-x86_64() [0x1243f1d]
/opt/X-Plane11/X-Plane-x86_64() [0x4aef3a]
/opt/X-Plane11/X-Plane-x86_64() [0xa3ebed]
/opt/X-Plane11/X-Plane-x86_64() [0x16a3dd4]
/opt/X-Plane11/X-Plane-x86_64() [0x169b94c]
/lib/x86_64-linux-gnu/libc.so.6(+0x29d90) [0x7f8b0356fd90]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x80) [0x7f8b0356fe40]
/opt/X-Plane11/X-Plane-x86_64() [0x1727091]
mauer commented 2 years ago

Hi,

I changed quite a few things regarding the logging recently. Unfortunately, I forgot to push them before my holiday. The sources are up-to-date now.

Can you try the attached Linux version, please?

XMidiCtrl_Linux_1.02pre.zip

Thanks, Marco

zumbrunnen commented 2 years ago

Hi Marco

Thank you, it seems to work! I've just tested loading different aircraft that use different profiles. Also, I reloaded profiles using the "Reload Aircraft Profile" menu item. Lookin' good! :+1:

mauer commented 2 years ago

Excellent, I will run some additional test on my side and then I'll publish a new version.

Thanks for testing! Highly appreciated.

Cheers, Marco

lizardslair commented 2 years ago

Not sure if this related to the same issue or not but I was super excited to discover this plugin since I just got an X-Touch Mini for another project I've been working on.

MacOS Monterey, XP 11.55. (Allow Anyways on the plugin due to unkown developer etc....). Main screen loads. Start new flight, Cessena and KSEA. As soon as it loads and I see the cockpit, then crash. Thank you for your work on this project!

Path:                  /Applications/X-Plane 11/X-Plane.app/Contents/MacOS/X-Plane
Identifier:            com.laminar-research.X-Plane
Version:               11.55r2 (398)
Code Type:             X86-64 (Native)
Parent Process:        launchd [1]
User ID:               501

Date/Time:             2022-07-03 18:24:39.0197 -0700
OS Version:            macOS 12.4 (21F79)
Report Version:        12
Bridge OS Version:     6.5 (19P5071)
Anonymous UUID:        8691E320-00FF-30CE-ADC3-6C8687E3508C

Time Awake Since Boot: 8800 seconds

System Integrity Protection: enabled

Crashed Thread:        0  Main Thread  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x0000000000000055
Exception Codes:       0x0000000000000001, 0x0000000000000055
Exception Note:        EXC_CORPSE_NOTIFY

VM Region Info: 0x55 is not in any region.  Bytes before following region: 140737487302571
      REGION TYPE                    START - END         [ VSIZE] PRT/MAX SHRMOD  REGION DETAIL
      UNUSED SPACE AT START
--->  
      VM_ALLOCATE              7fffffeff000-7ffffff00000 [    4K] r-x/r-x SM=ALI  

Thread 0 Crashed:: Main Thread Dispatch queue: com.apple.main-thread
0   XMidiCtrl.xpl                           0x8ad451c9 xmidictrl::plugin::process_info_messages() + 267
1   XMidiCtrl.xpl                           0x8ad45083 xmidictrl::plugin::process_flight_loop(float, float, int) + 165
2   XMidiCtrl.xpl                           0x8ad44fd3 xmidictrl::plugin::callback_flight_loop(float, float, int, void*) + 17
3   XPLM                                    0x870ffdd2 XPLMDoFlightLoopProcessing(float, int) + 343
4   XPLM                                    0x870f7b9a XPLMEventHook + 735
5   X-Plane                                0x1015402f4 XPPEventHook(int, float, float, long, long) + 148
6   X-Plane                                0x101179bb7 APP_update() + 967
7   X-Plane                                0x100617bf3 MACIBM_post_event_proc() + 819
8   X-Plane                                0x10162250a WIN_event_loop_once + 266
9   X-Plane                                0x1016223e3 WIN_run_app + 51
10  X-Plane                                0x10117d569 main + 73
11  dyld                                   0x10ba4451e start + 462
mauer commented 2 years ago

Good Morning,

This looks like the same error some users reported on the Linux platform. Could you test the attached version, please?

XMidiCtrl_v1.02.zip

Many thanks, Marco

lizardslair commented 2 years ago

Thanks for forwarding the updated version. The good news is the crash is fixed on plane load. The bad news is I found another bug. 😅

Plugins menu -> xMidiCtrl -> Settings. Click the button to Test Info Message. I see the "This is a test message" in the lower left popup/overlay. After about 3 seconds, crash. Assuming it might have to do with "unloading" the message overlay after a few seconds? Not sure if this helps but here's some more output.


Exception Codes:       UNKNOWN_0xD at 0x0000000000000000
Exception Codes:       0x000000000000000d, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

VM Region Info: 0 is not in any region.  Bytes before following region: 228904960
      REGION TYPE                    START - END         [ VSIZE] PRT/MAX SHRMOD  REGION DETAIL
      UNUSED SPACE AT START
--->  
      __TEXT                        da4d000-dbdc000      [ 1596K] r-x/rwx SM=COW  ...dstudio.dylib

Thread 0 Crashed:: Main Thread Dispatch queue: com.apple.main-thread
0   XMidiCtrl.xpl                           0x8c223100 xmidictrl::plugin::process_info_messages() + 354
1   XMidiCtrl.xpl                           0x8c222f63 xmidictrl::plugin::process_flight_loop(float, float, int) + 165
2   XMidiCtrl.xpl                           0x8c222eb3 xmidictrl::plugin::callback_flight_loop(float, float, int, void*) + 17
3   XPLM                                    0x885cedd2 XPLMDoFlightLoopProcessing(float, int) + 343
4   XPLM                                    0x885c6b9a XPLMEventHook + 735
5   X-Plane                                0x10ea002f4 XPPEventHook(int, float, float, long, long) + 148
6   X-Plane                                0x10e639bb7 APP_update() + 967
7   X-Plane                                0x10dad7bf3 MACIBM_post_event_proc() + 819
8   X-Plane                                0x10eae250a WIN_event_loop_once + 266
9   X-Plane                                0x10eae23e3 WIN_run_app + 51
10  X-Plane                                0x10e63d569 main + 73
11  dyld                                   0x11b3c451e start + 462```
mauer commented 2 years ago

Hi,

Many thanks for the bug report and I'm sorry for the late reply. I was sick the last few days. I assume MacOS doesn't like the way I remove the info messages. I slightly changed it and would appreciate if you could try this version:

XMidiCtrl_1.02pre_2.zip

lizardslair commented 2 years ago

HI Mauer,

No problem on the delay and am glad you are feeling better. Likewise apologize for my delay in testing your patched version, I have been out of town.

I can confirm that the new version supplied by your link has now fixed the issue of crashing when removing message windows on MacOS.

I will continue to test with my X-Touch device and let you know if i discover any more problems - until then many thanks for developing a great utility!