Code Monkey home page Code Monkey logo

Comments (8)

stapelberg avatar stapelberg commented on August 15, 2024

Can you also provide the output of i3lock --debug with/without the XKB change from your system please? Be sure to redact the password from the output before sharing.

from i3lock.

rdiaz02 avatar rdiaz02 commented on August 15, 2024

Attached. In all cases, "[some random character typed]" refers to characters that I was typing randomly as per step 4. in the bug report.

When i3lock breaks:
debug-XKB-change-i3lock-breaks.txt

When no XKB change and i3lock does not break
debug-NO-XKB-change-NO-i3lock-breaks.txt

Edit
Adding two additional debug logs:

  • I change de XKB but i3lock does not break (because I wait around 16 seconds after resuming before touching the keyboard; I resume, wait for the screen to show i3lock's all-gray screen, count a few more seconds, and then start slowly typing, and at that moment the green circle shows up, etc, so I have to introduce the password).
    debug-XKB-change-no-break.txt

  • I change XKB and I do not need to type furiously: it breaks as soon as I introduce the first character.
    debug-XKB-change-breaks-at-first-type.txt

from i3lock.

stapelberg avatar stapelberg commented on August 15, 2024

Can you check if pull request #353 fixes the issue for you? Thanks.

from i3lock.

rdiaz02 avatar rdiaz02 commented on August 15, 2024

Yes, it does fix the issue for me. (I still see the "[i3lock] xkb_x11_keymap_new_from_device failed", but it does not unlock).

from i3lock.

stapelberg avatar stapelberg commented on August 15, 2024

Great, thanks for confirming. I merged the immediate fix for now.

Can you clarify if the xkb_x11_keymap_new_from_device error message only happens when you change XKB layout while i3lock is running, or can you get into a state where i3lock does not even start? (the keymap is loaded at startup and when it changes)

Can you file a separate bug for what needs to be fixed please?

from i3lock.

rdiaz02 avatar rdiaz02 commented on August 15, 2024

Can you clarify if the xkb_x11_keymap_new_from_device error message only happens when you change XKB layout while i3lock is running,

I've only noticed xkb_x11_keymap_new_from_device when I change XKB layout while i3lock is running. (At the risk of being redundant, though, note that even if xkb_x11_keymap_new_from_device happens that does not necessarily mean i3lock breaks: with the fix I get the xkb_x11_keymap_new_from_device , and I also got it before the fix even when i3lock did not break: see file https://github.com/i3/i3lock/files/14893717/debug-XKB-change-no-break.txt , above: #351 (comment)).

can you get into a state where i3lock does not even start?

When I issue systemct suspend i3lock does get started. As I mentioned in step 3. of my original report, "The screen locks and then the computer suspends." But this is all happening before XKB layout changes.

I am not sure what you are asking, though. If it is about what happens immediately after resume, I cannot tell. My monitor always has a lag after resuming/starting, so for the first few seconds after I press the start key (resume) and when I start typing, I cannot tell what is going on on the monitor as nothing is being visibly displayed.

Can you file a separate bug for what needs to be fixed please?

I don't know of an additional bug that needs to be fixed. Is this the xkb_x11_keymap_new_from_device ?

I think I am not following you.

from i3lock.

stapelberg avatar stapelberg commented on August 15, 2024

Ok, I looked into this some more and I think I understand now.

To reproduce the problem, I found it sufficient to run keym.sh repeatedly, no suspend needed.

Looking at the X11-level trace, I think the problem is that i3lock gets a notification about the changed keymap, but while fetching the keymap details, the keymap changes again (due to the second command in keym.sh), which results in an X11 error.

So, to answer my own question: these are spurious errors, not persistent errors somehow related to the keymap. No further fixes needed.

BTW: I also triggered a crash in gnome-shell while reproducing the problem:

gdb $ bt
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=5, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1  0x00007f17b56ae8a3 in __pthread_kill_internal (signo=5, threadid=<optimized out>) at pthread_kill.c:78
#2  0x00007f17b565c8ee in __GI_raise (sig=sig@entry=5) at ../sysdeps/posix/raise.c:26
#3  0x000055cdb4674b86 in dump_gjs_stack_on_signal_handler (signo=5) at ../src/main.c:467
#4  0x00007f17b565c9a0 in <signal handler called> () at /lib64/libc.so.6
#5  g_log_structured_array (log_level=log_level@entry=G_LOG_LEVEL_ERROR, fields=fields@entry=0x7fff4e6afee0, n_fields=4) at ../glib/gmessages.c:556
#6  0x00007f17b5f40edc in g_log_default_handler
    (log_domain=log_domain@entry=0x7f17b5b0d023 "Mtk", log_level=log_level@entry=6, message=message@entry=0x55cdb6973480 "Received an X Window System error.\nThis probably reflects a bug in the program.\nThe error was 'BadValue (integer parameter out of range for operation)'.\n  (Details: serial 37367 error_code 2 request_c"..., unused_data=unused_data@entry=0x0) at ../glib/gmessages.c:3284
#7  0x00007f17b5f41180 in g_logv (log_domain=0x7f17b5b0d023 "Mtk", log_level=G_LOG_LEVEL_ERROR, format=<optimized out>, args=args@entry=0x7fff4e6b0040) at ../glib/gmessages.c:1392
#8  0x00007f17b5f41463 in g_log
    (log_domain=log_domain@entry=0x7f17b5b0d023 "Mtk", log_level=log_level@entry=G_LOG_LEVEL_ERROR, format=format@entry=0x7f17b5b0d0f0 "Received an X Window System error.\nThis probably reflects a bug in the program.\nThe error was '%s'.\n  (Details: serial %ld error_code %d request_code %d (%s) minor_code %d)\n  (Note to programmers: nor"...) at ../glib/gmessages.c:1461
#9  0x00007f17b5b0b5be in display_error_event (error=0x7fff4e6b01d0, xdisplay=0x55cdb4f40570) at ../mtk/mtk/mtk-x11-errors.c:116
#10 mtk_x_error (xdisplay=0x55cdb4f40570, error=0x7fff4e6b01d0) at ../mtk/mtk/mtk-x11-errors.c:139
#11 0x00007f17b5522acb in _XError (dpy=dpy@entry=0x55cdb4f40570, rep=rep@entry=0x55cdb566d790) at /usr/src/debug/libX11-1.8.7-1.fc39.x86_64/src/XlibInt.c:1503
#12 0x00007f17b5522bdf in handle_error (dpy=dpy@entry=0x55cdb4f40570, err=0x55cdb566d790, in_XReply=in_XReply@entry=1) at /usr/src/debug/libX11-1.8.7-1.fc39.x86_64/src/xcb_io.c:211
#13 0x00007f17b5524bca in _XReply (dpy=0x55cdb4f40570, rep=0x7fff4e6b0380, extra=2, discard=0) at /usr/src/debug/libX11-1.8.7-1.fc39.x86_64/src/xcb_io.c:798
#14 0x00007f17b557254e in _XkbHandleGetMapReply (xkb=0x55cdb4fc3800, dpy=0x55cdb4f40570) at xkb/XKBGetMap.c:557
#15 XkbGetMapChanges (dpy=dpy@entry=0x55cdb4f40570, xkb=0x55cdb4fc3800, changes=changes@entry=0x7fff4e6b03e0) at xkb/XKBGetMap.c:870
#16 0x00007f17b5573660 in XkbRefreshKeyboardMapping (event=event@entry=0x7fff4e6b0590) at xkb/XKBBind.c:377
#17 0x00007f17b590a0cb in meta_keymap_x11_handle_event (xevent=0x7fff4e6b0590, keymap_x11=0x55cdb51bb5a0) at ../src/backends/x11/meta-keymap-x11.c:602
#18 meta_keymap_x11_handle_event (xevent=0x7fff4e6b0590, keymap_x11=0x55cdb51bb5a0) at ../src/backends/x11/meta-keymap-x11.c:575
#19 meta_seat_x11_translate_event (xevent=0x7fff4e6b0590, seat=<optimized out>) at ../src/backends/x11/meta-seat-x11.c:2044
#20 meta_backend_x11_handle_event (xevent=0x7fff4e6b0590, backend=0x55cdb4f38ea0) at ../src/backends/x11/meta-event-x11.c:71
#21 handle_host_xevent (event=0x7fff4e6b0590, backend=0x55cdb4f38ea0) at ../src/backends/x11/meta-backend-x11.c:434
#22 x_event_source_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>) at ../src/backends/x11/meta-backend-x11.c:488
#23 0x00007f17b5f3be5c in g_main_dispatch (context=0x55cdb4dd6cd0) at ../glib/gmain.c:3476
#24 g_main_context_dispatch_unlocked (context=0x55cdb4dd6cd0) at ../glib/gmain.c:4284
#25 0x00007f17b5f96f18 in g_main_context_iterate_unlocked.isra.0 (context=0x55cdb4dd6cd0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4349
#26 0x00007f17b5f3d447 in g_main_loop_run (loop=0x55cdb532e640) at ../glib/gmain.c:4551
#27 0x00007f17b58e5b2a in meta_context_run_main_loop (context=<optimized out>, error=0x7fff4e6b0be0) at ../src/core/meta-context.c:514

Feel free to reproduce/report it if you feel adventurous :)

from i3lock.

rdiaz02 avatar rdiaz02 commented on August 15, 2024

No further fixes needed.

Ah, great. Issue solved then. Thanks.

I also triggered a crash in gnome-shell. (...) Feel free to reproduce/report it if you feel adventurous :)

I think I am not feeling that adeventurous ;-) And I think I've never used gnome-shell so this would be way too adventurous for me.

from i3lock.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.