Description of problem: Tried to launch onboard. Insta-crash, now reproducable on 4 instances of Rawhide. GUI is Xfce. Version-Release number of selected component: onboard-1.4.1-33.fc39 Additional info: reporter: libreport-2.17.11 type: CCpp reason: python3.12 killed by SIGSEGV journald_cursor: s=e0c9c776de5943ed9ab81f60713bc2c2;i=b3807;b=4a42e93e8ce14eff981b1d94b6e7945d;m=539dea8;t=6019688e4405b;x=cfd3d9776cc02eb5 executable: /usr/bin/python3.12 cmdline: /usr/bin/python3 -sP /usr/bin/onboard cgroup: 0::/user.slice/user-1000.slice/session-2.scope rootdir: / uid: 1000 kernel: 6.5.0-0.rc3.20230728git57012c57536f.27.fc39.x86_64 package: onboard-1.4.1-33.fc39 runlevel: N 5 backtrace_rating: 4 crash_function: _PyInterpreterState_GET comment: Tried to launch onboard. Insta-crash, now reproducable on 4 instances of Rawhide. GUI is Xfce. Truncated backtrace: Thread no. 1 (48 frames) #0 _PyInterpreterState_GET at /usr/src/debug/python3.12-3.12.0 #1 get_state at /usr/src/debug/python3.12-3.12.0 #2 _PyObject_Malloc at /usr/src/debug/python3.12-3.12.0 #3 PyObject_Malloc at /usr/src/debug/python3.12-3.12.0 #4 _PyObject_New at /usr/src/debug/python3.12-3.12.0 #5 new_device_event at Onboard/osk/osk_devices.c:100 #6 osk_devices_call_event_handler_pointer at Onboard/osk/osk_devices.c:452 #7 handle_enter_event at Onboard/osk/osk_devices.c:779 #8 osk_devices_event_filter at Onboard/osk/osk_devices.c:817 #10 gdk_event_apply_filters at ../gdk/x11/gdkeventsource.c:79 #11 gdk_event_source_translate_event at ../gdk/x11/gdkeventsource.c:198 #12 _gdk_x11_display_queue_events at ../gdk/x11/gdkeventsource.c:341 #13 gdk_display_get_event at ../gdk/gdkdisplay.c:442 #14 gdk_event_source_dispatch.lto_priv at ../gdk/x11/gdkeventsource.c:354 #16 g_main_context_dispatch_unlocked at ../glib/gmain.c:4287 #17 g_main_context_iterate_unlocked.isra.0 at ../glib/gmain.c:4352 #19 gtk_main at ../gtk/gtkmain.c:1329 #20 ffi_call_unix64 at ../src/x86/unix64.S:104 #21 ffi_call_int at ../src/x86/ffi64.c:673 #22 ffi_call at ../src/x86/ffi64.c:710 #23 pygi_invoke_c_callable at ../gi/pygi-invoke.c:684 #24 pygi_function_cache_invoke at ../gi/pygi-cache.c:862 #25 pygi_callable_info_invoke at ../gi/pygi-invoke.c:727 #26 _wrap_g_callable_info_invoke at ../gi/pygi-invoke.c:764 #27 _PyObject_Call at /usr/src/debug/python3.12-3.12.0 #28 PyCFunction_Call at /usr/src/debug/python3.12-3.12.0 #29 _PyEval_EvalFrameDefault at Python/bytecodes.c:3193 #30 _PyFunction_Vectorcall at /usr/src/debug/python3.12-3.12.0 #31 _PyObject_FastCallDictTstate at /usr/src/debug/python3.12-3.12.0 #32 _PyObject_Call_Prepend at /usr/src/debug/python3.12-3.12.0 #33 slot_tp_init at /usr/src/debug/python3.12-3.12.0 #34 type_call at /usr/src/debug/python3.12-3.12.0 #35 _PyObject_MakeTpCall at /usr/src/debug/python3.12-3.12.0 #36 _PyEval_EvalFrameDefault at Python/bytecodes.c:2645 #37 PyEval_EvalCode at /usr/src/debug/python3.12-3.12.0 #38 run_eval_code_obj at /usr/src/debug/python3.12-3.12.0 #39 run_mod at /usr/src/debug/python3.12-3.12.0 #40 pyrun_file at /usr/src/debug/python3.12-3.12.0 #41 _PyRun_SimpleFileObject at /usr/src/debug/python3.12-3.12.0 #42 _PyRun_AnyFileObject at /usr/src/debug/python3.12-3.12.0 #43 pymain_run_file_obj at /usr/src/debug/python3.12-3.12.0 #44 pymain_run_file at /usr/src/debug/python3.12-3.12.0 #45 pymain_run_python at /usr/src/debug/python3.12-3.12.0 #46 Py_RunMain at /usr/src/debug/python3.12-3.12.0 #47 Py_BytesMain at /usr/src/debug/python3.12-3.12.0 #48 __libc_start_call_main at ../sysdeps/nptl/libc_start_call_main.h:58 #49 __libc_start_main_impl at ../csu/libc-start.c:360 #50 _start
Created attachment 1980537 [details] File: proc_pid_status
Created attachment 1980538 [details] File: maps
Created attachment 1980539 [details] File: limits
Created attachment 1980540 [details] File: environ
Created attachment 1980541 [details] File: open_fds
Created attachment 1980542 [details] File: mountinfo
Created attachment 1980543 [details] File: os_info
Created attachment 1980544 [details] File: cpuinfo
Created attachment 1980545 [details] File: core_backtrace
Created attachment 1980546 [details] File: exploitable
Created attachment 1980547 [details] File: dso_list
Created attachment 1980548 [details] File: backtrace
Looks like I'll need to do some testing myself ... I only managed to fix the build for Python 3.12, but apparently the resulting package does in fact build and install without errors, but doesn't *run*. :(
This bug appears to have been reported against 'rawhide' during the Fedora Linux 39 development cycle. Changing version to 39.
It looks like the onboard keyboard dies when you mouse over it. If I launch it from a console I get this: $ onboard 11:56:01.132 WARNING Config: mousetweaks GSettings schema not found, mousetweaks integration disabled. Segmentation fault (core dumped) $ I get the first error line immediately, and the segmentation fault when I mouse over it. This works in Fedora 38 and there is no warning about the missing schema. Not sure if this is a clue.
Hm, that's weird. I have mousetweaks installed on my system (probably by default), and it doesn't crash for me. Can you try installing mousetweaks, to see if that fixes the issue? If it indeed does, I'll add a dependency on mousetweaks to the package.
Well ... maybe that's not it. I tried uninstalling mousetweaks (nothing seems to depend on it), and onboard still doesn't crash for me. But it also doesn't *work* (maybe because I'm on wayland).
Out of curiosity I installed mousetweaks and it cleared the mouseteaks warning, but as soon as the mouse pointer got to the keyboard it seg faulted. Btw I'm running Xfce.
This package has changed maintainer in Fedora. Reassigning to the new maintainer of this component.
Yes, onboard does not work on Wayland. On X I get the crash too on Fedora 39: Stack trace of thread 2820: #0 0x00007fa9f85e2771 _PyObject_Malloc (libpython3.12.so.1.0 + 0x1e2771) #1 0x00007fa9f85ed9e6 _PyObject_New (libpython3.12.so.1.0 + 0x1ed9e6) #2 0x00007fa9e839665c osk_devices_call_event_handler_pointer (osk.cpython-312-x86_64-linux-gnu.so + 0xb65c) #3 0x00007fa9e8396d14 osk_devices_event_filter (osk.cpython-312-x86_64-linux-gnu.so + 0xbd14) #4 0x00007fa9e9544580 gdk_event_apply_filters (libgdk-3.so.0 + 0x8b580) #5 0x00007fa9e954c41e _gdk_x11_display_queue_events (libgdk-3.so.0 + 0x9341e) #6 0x00007fa9e94f070b gdk_display_get_event (libgdk-3.so.0 + 0x3770b) #7 0x00007fa9e954c81e gdk_event_source_dispatch.lto_priv.1 (libgdk-3.so.0 + 0x9381e) #8 0x00007fa9ea623e5c g_main_context_dispatch_unlocked.lto_priv.0 (libglib-2.0.so.0 + 0x5be5c) #9 0x00007fa9ea67edd8 g_main_context_iterate_unlocked.isra.0 (libglib-2.0.so.0 + 0xb6dd8) #10 0x00007fa9ea625447 g_main_loop_run (libglib-2.0.so.0 + 0x5d447) #11 0x00007fa9e8a06ce5 gtk_main (libgtk-3.so.0 + 0x206ce5) #12 0x00007fa9f8204056 ffi_call_unix64 (libffi.so.8 + 0x9056) #13 0x00007fa9f82005ef ffi_call_int.lto_priv.0 (libffi.so.8 + 0x55ef) #14 0x00007fa9f82033fe ffi_call (libffi.so.8 + 0x83fe) #15 0x00007fa9ea765bdb pygi_invoke_c_callable (_gi.cpython-312-x86_64-linux-gnu.so + 0x30bdb) #16 0x00007fa9ea76412a _wrap_g_callable_info_invoke (_gi.cpython-312-x86_64-linux-gnu.so + 0x2f12a) #17 0x00007fa9f861f6b9 _PyObject_Call (libpython3.12.so.1.0 + 0x21f6b9) #18 0x00007fa9f8510043 _PyEval_EvalFrameDefault.cold (libpython3.12.so.1.0 + 0x110043) #19 0x00007fa9f85f7486 _PyObject_FastCallDictTstate (libpython3.12.so.1.0 + 0x1f7486) #20 0x00007fa9f861bfd6 slot_tp_init (libpython3.12.so.1.0 + 0x21bfd6) #21 0x00007fa9f85f4f9b type_call (libpython3.12.so.1.0 + 0x1f4f9b) #22 0x00007fa9f85f4d46 _PyObject_MakeTpCall (libpython3.12.so.1.0 + 0x1f4d46) #23 0x00007fa9f850f588 _PyEval_EvalFrameDefault.cold (libpython3.12.so.1.0 + 0x10f588) #24 0x00007fa9f8687876 PyEval_EvalCode (libpython3.12.so.1.0 + 0x287876) #25 0x00007fa9f86aad9a run_eval_code_obj (libpython3.12.so.1.0 + 0x2aad9a) #26 0x00007fa9f86a5ebe run_mod (libpython3.12.so.1.0 + 0x2a5ebe) #27 0x00007fa9f86c6463 pyrun_file (libpython3.12.so.1.0 + 0x2c6463) #28 0x00007fa9f86c596a _PyRun_SimpleFileObject (libpython3.12.so.1.0 + 0x2c596a) #29 0x00007fa9f86c56cf _PyRun_AnyFileObject (libpython3.12.so.1.0 + 0x2c56cf) #30 0x00007fa9f86b64a8 Py_RunMain (libpython3.12.so.1.0 + 0x2b64a8) #31 0x00007fa9f867185c Py_BytesMain (libpython3.12.so.1.0 + 0x27185c) #32 0x00007fa9f824614a __libc_start_call_main (libc.so.6 + 0x2814a) #33 0x00007fa9f824620b __libc_start_main@@GLIBC_2.34 (libc.so.6 + 0x2820b) #34 0x000055cc71a01095 _start (python3.12 + 0x1095)
Tried to press a key on a On-screen keyboard reporter: libreport-2.17.11 executable: /usr/bin/python3.12 uid: 1000 kernel: 6.5.11-300.fc39.x86_64 runlevel: N 5 reason: python3.12 killed by SIGSEGV cmdline: /usr/bin/python3 -sP /bin/onboard comment: Tried to press a key on a On-screen keyboard backtrace_rating: 4 rootdir: / crash_function: _PyInterpreterState_GET type: CCpp cgroup: 0::/user.slice/user-1000.slice/session-1.scope journald_cursor: s=91b773cbaa584f9a9bf7c421715846f3;i=5e513;b=0f4a0b3d74594d2db1d72b59962193bf;m=1fad5501a;t=60a09a7fbc073;x=c149bd98026415db package: onboard-1.4.1-34.fc39
Hover mouse pointer over the onboard. It's 100% reproducible. I use X.org server. reporter: libreport-2.17.11 cmdline: /usr/bin/python3 -sP /usr/bin/onboard backtrace_rating: 4 cgroup: 0::/user.slice/user-1000.slice/session-2.scope type: CCpp kernel: 6.5.11-300.fc39.x86_64 package: onboard-1.4.1-34.fc39 uid: 1000 journald_cursor: s=2b85895c157d4ec982ceaeabbf4e1e16;i=35ae01;b=d10895a43b6f4be6870619e3f8b42e1b;m=ec6290d25;t=60a31d52efb2b;x=778aa969f932b9d0 rootdir: / crash_function: _PyInterpreterState_GET runlevel: N 5 comment: Hover mouse pointer over the onboard. It's 100% reproducible. I use X.org server. reason: python3.12 killed by SIGSEGV executable: /usr/bin/python3.12
I have the same issue since I've updated to Fedora 39. If I start onboard from Terminal I get the next message: 20:43:31.652 WARNING Indicator: Failed to setup D-Bus match rule, no left-click Activate() for AppIndicator: org.freedesktop.DBus.Error.MatchRuleInvalid: Invalid match rule Violación de segmento (`core' generado)
start onboard. It shows up and disappears, latest, when hovering the mouse over it. in strace you see a SEGV. reporter: libreport-2.17.11 runlevel: N 5 journald_cursor: s=c5e9e6857f0b462ea20f92a4204e7627;i=4c705b;b=db8f4f404c724ddf850d061b1578a9a4;m=372bbe073;t=60b87d6dc5d30;x=4d12fd54162a58d3 type: CCpp cgroup: 0::/user.slice/user-1679.slice/user/app.slice/app-onboard-cc14788f255f463aa2aad3fb4ccd09b6.scope backtrace_rating: 4 uid: 1679 package: onboard-1.4.1-34.fc39 kernel: 6.6.2-201.fc39.x86_64 rootdir: / crash_function: _PyInterpreterState_GET cmdline: /usr/bin/python3 -sP /usr/bin/onboard executable: /usr/bin/python3.12 reason: python3.12 killed by SIGSEGV
Someone please increase the priority and severity. For users with unusual keyboards and language requirements it is not acceptable that onboard is not working. No matter, what other RPMs are installed or not or whether wayland is used or not, no matter what desktop environment is used. Having to switch in one of the respects can only be a temporary crutch. In Fedora 37 it was working without problems. Yet another regression of Fedora 39. Sad sad sad.
I realize that not having the on-screen keyboard work is very problematic for some users, but this package is currently without a maintainer, so "raising the priority" will do nothing unless somebody steps up to take on maintenance of this package again. The onboard project last saw code changes in 2017, which makes it increasingly difficult to support. I tried to keep the package in Fedora, and fixed a build error on Fedora 39 some time ago. However, I could not figure out what causes the crashes.
It's a pity there isn't a virtual keyboard working fine on fedora 39 and onboard was working fine in all fedora versions I used until now. For this reason, I went back to Fedora 38 when I noticed this bug in Fedora 39, I need this feature in my tablet PC.
It happens in include/python3.12/internal/pycore_pystate.h line 118, please have a look a the function and the comments on top: /* Get the current interpreter state. The function is unsafe: it does not check for error and it can return NULL. The caller must hold the GIL. See also _PyInterpreterState_Get() and _PyGILState_GetInterpreterStateUnsafe(). */ static inline PyInterpreterState* _PyInterpreterState_GET(void) { PyThreadState *tstate = _PyThreadState_GET(); #ifdef Py_DEBUG _Py_EnsureTstateNotNULL(tstate); #endif return tstate->interp; } When the SEGV occurs tstate is NULL: Core was generated by `/usr/bin/python3 -sP /usr/bin/onboard'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x00007f13cabe2771 in _PyInterpreterState_GET () at /usr/src/debug/python3.12-3.12.0-1.fc39.x86_64/Include/internal/pycore_pystate.h:118 Downloading source file /usr/src/debug/python3.12-3.12.0-1.fc39.x86_64/Include/internal/pycore_pystate.h 118 return tstate->interp; [Current thread is 1 (Thread 0x7f13cb0c7740 (LWP 27901))] (gdb) print tstate $1 = (PyThreadState *) 0x0 One up in stack: #1 get_state () at /usr/src/debug/python3.12-3.12.0-1.fc39.x86_64/Objects/obmalloc.c:866 Downloading source file /usr/src/debug/python3.12-3.12.0-1.fc39.x86_64/Objects/obmalloc.c 866 PyInterpreterState *interp = _PyInterpreterState_GET(); This is a python 3.12 issue. I guess no chance to workaround by using a different desktop or installing or uninstalling unrelated RPMs. Please someone assign this issue to the python3 maintenance. Probably build with Py_DEBUG defined.
When I originally reported this issue I didn't realize the project had been abandoned upstream. Perhaps a better solution is to retire onboard completely and replace it with something that is still actively maintained. otherwise we'll likely hit a problem like this every future release cycle.
Created attachment 2002713 [details] patch to protect object allocation related operations with the GIL
Created attachment 2002714 [details] SPEC file to apply the patch from the previous post
The updated SRPM can be downloaded here: https://getwings.eu/pub/onboard-1.4.1-35.fc39.src.rpm RPMs for x86_64 are these: https://getwings.eu/pub/onboard-data-1.4.1-35.fc39.noarch.rpm https://getwings.eu/pub/onboard-1.4.1-35.fc39.x86_64.rpm To install the RPMs for x86_64 this command should work: dnf update https://getwings.eu/pub/onboard-data-1.4.1-35.fc39.noarch.rpm https://getwings.eu/pub/onboard-1.4.1-35.fc39.x86_64.rpm
(In reply to Albert Flügel from comment #32) > The updated SRPM can be downloaded here: > https://getwings.eu/pub/onboard-1.4.1-35.fc39.src.rpm > RPMs for x86_64 are these: > https://getwings.eu/pub/onboard-data-1.4.1-35.fc39.noarch.rpm > https://getwings.eu/pub/onboard-1.4.1-35.fc39.x86_64.rpm > > To install the RPMs for x86_64 this command should work: > dnf update https://getwings.eu/pub/onboard-data-1.4.1-35.fc39.noarch.rpm > https://getwings.eu/pub/onboard-1.4.1-35.fc39.x86_64.rpm I've tried your rpm file in my other PC with fedora 39 and I can confirm that it works fine. Thank you so much, Albert, it's a great news you get fix onboard for fedora 39.
This happens when I try to open the app. reporter: libreport-2.17.11 type: CCpp reason: python3.12 killed by SIGSEGV journald_cursor: s=d55b1fedeb584fbf9d1e13520da29e9d;i=6755;b=253bb79da4f34ed0838d3a7d42b06efa;m=5c008154;t=60e1502587e17;x=d455fb4890521dcf executable: /usr/bin/python3.12 cmdline: /usr/bin/python3 -sP /usr/bin/onboard cgroup: 0::/user.slice/user-1000.slice/session-2.scope rootdir: / uid: 1000 kernel: 6.6.8-200.fc39.x86_64 package: onboard-1.4.1-34.fc39 runlevel: N 5 backtrace_rating: 4 crash_function: _PyInterpreterState_GET comment: This happens when I try to open the app.
Jacob, please see comment 32 and have a try: https://bugzilla.redhat.com/show_bug.cgi?id=2227390#c32 (In reply to Jacob from comment #34). Thank you.
Opening "onboard" virtuell keyboard is without problems. But when putting the pointing device (mouse, or finger on surface tablett, or pen on surface tablett) over the virtuell keyboard it disappears with an error message. This happens on 2 normal computers (without touchscreen), a microsoft surface with and without surface kernel. It happens with fedora xfce spin 39 (but not with fedora xfce 38!) and with fedora Budgie atomic (each on surface and normal hardware). reporter: libreport-2.17.11 type: CCpp reason: python3.12 killed by SIGSEGV journald_cursor: s=3b33107646f1438093d503953035256e;i=4126;b=b2d8a5c61b3a4d05901fb31e93e1f69c;m=17069eb3;t=61057f03a407f;x=c3959e818d2d3570 executable: /usr/bin/python3.12 cmdline: /usr/bin/python3 -sP /usr/bin/onboard cgroup: 0::/user.slice/user-1000.slice/session-2.scope rootdir: / uid: 1000 kernel: 6.7.2-1.surface.fc39.x86_64 package: onboard-1.4.1-34.fc39 runlevel: N 5 backtrace_rating: 4 crash_function: _PyInterpreterState_GET
Using the update from comment 32 onboard is fine again! Thank you, Albert Flügel.
onboard, It closes when the mouse hovers over it. reporter: libreport-2.17.11 type: CCpp reason: python3.12 killed by SIGSEGV journald_cursor: s=ab4fa860893a4a539792cf3e668b5933;i=57c0;b=aecbc43870914db599bd33b559cb624a;m=a7f77d9;t=6145b2565587d;x=db63d7492f74d537 executable: /usr/bin/python3.12 cmdline: /usr/bin/python3 -sP /usr/bin/onboard cgroup: 0::/user.slice/user-1000.slice/user/app.slice/app-onboard-82d8b47eb469434c8d7ed566d0c41728.scope rootdir: / uid: 1000 kernel: 6.7.9-200.fc39.x86_64 package: onboard-1.4.1-34.fc39 runlevel: N 5 backtrace_rating: 4 crash_function: _PyInterpreterState_GET comment: onboard, It closes when the mouse hovers over it.
This message is a reminder that Fedora Linux 39 is nearing its end of life. Fedora will stop maintaining and issuing updates for Fedora Linux 39 on 2024-11-26. It is Fedora's policy to close all bug reports from releases that are no longer maintained. At that time this bug will be closed as EOL if it remains open with a 'version' of '39'. Package Maintainer: If you wish for this bug to remain open because you plan to fix it in a currently maintained version, change the 'version' to a later Fedora Linux version. Note that the version field may be hidden. Click the "Show advanced fields" button if you do not see it. Thank you for reporting this issue and we are sorry that we were not able to fix it before Fedora Linux 39 is end of life. If you would still like to see this bug fixed and are able to reproduce it against a later version of Fedora Linux, you are encouraged to change the 'version' to a later version prior to this bug being closed.
The issue is still happily alive on Fedora 40 and i do not expect this to change. My fix still works. However, on @§$%& wayland onboard cannot work anymore. The internet points to maliit as onscreen keyboard. Unfortunately this can only be activated, if the box has a touchscreen (at least i have not found any other way to make it show). So this does in no way help, if one needs to type letters e.g. kyrillian, that are not available on the physical keyboard and the screen is no touchscreen. In general i recommend to switch to xfce on Xorg. There onboard still works as expected. @Ian Laurie, can you please change the version to 40 ? I cannot do it because i haven't opened this issue.
Fedora Linux 39 entered end-of-life (EOL) status on 2024-11-26. Fedora Linux 39 is no longer maintained, which means that it will not receive any further security or bug fix updates. As a result we are closing this bug. If you can reproduce this bug against a currently maintained version of Fedora Linux please feel free to reopen this bug against that version. Note that the version field may be hidden. Click the "Show advanced fields" button if you do not see the version field. If you are unable to reopen this bug, please file a new report against an active release. Thank you for reporting this bug and we are sorry it could not be fixed.
The bug and my fix still hold for Fedora 40. I suggest the opener of this issue (Ian Laurie) changes the version to 40 (others cannot do it) or even 41 as i consider it unrealistic this issue will ever be fixed, not even addressed. I really wonder if we'll ever again see an onscreen keyboard on Linux that can be used without touchscreen to be able to type characters not available on the physical keyboard.
I can't see how to assign it to 40 or 41, possibly because it is closed as EOL? In any case the package has been orphaned (no maintainer) and is no longer in the distro, so reopening it at this point doesn't serve any purpose. I really feel it is up to Fabio (original owner) to reopen it if he feels it should be brought back. He's not on the CC list and as it is orphaned he may not see these emails, so you may need to contact him directly.