Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Notification bubble appears in wrong corner on one workspace #1229

Closed
hanaral opened this issue Aug 26, 2021 · 6 comments · Fixed by #1577
Closed

Notification bubble appears in wrong corner on one workspace #1229

hanaral opened this issue Aug 26, 2021 · 6 comments · Fixed by #1577
Labels
Priority: High To be addressed after any critical issues Status: Confirmed Verified by someone other than the reporter

Comments

@hanaral
Copy link

hanaral commented Aug 26, 2021

What Happened

Upon waking and unlocking my laptop I found the power warning notification bubble for my bluetooth keyboard on the right side (rather than the correct left side) of the screen.
as pictured below, this oddly only appeared on the second workspace - after shifting workspaces around I got it to appear only on the first.
The reason I reported these two bugs in a single issue is because it's probably caused by the same gala workspace geometry bug

Expected Behavior

Notifications should appear on all workspaces, in the correct spot

Steps to Reproduce

(i'm guessing here)

  1. Receive notification
  2. Suspend and wake
  3. ?Bug appears

Logs

Platform Information

6

@cassidyjames
Copy link
Contributor

cassidyjames commented Aug 31, 2021

Consolodating info from #1239:

Describe the bug

From time to time, notifications can spawn on the left side of the screen rather than by the notifications center on the right as expected. I have noticed it typically happens more when there haven't been any notifications in a while. I've even sent test batches of hundreds of random notifications at once with the help of notify-send and some scripts (massive props to the notifications center being so resilient and handling this perfectly BTW), and none spawned on the left.

To Reproduce

Steps to reproduce the behavior:

  1. Wait for a notification after a long period of time to spawn in an unexpected location

Expected behavior

Notification placement is always consistent

Screenshots or screen recordings

image

@cassidyjames cassidyjames pinned this issue Aug 31, 2021
@cassidyjames cassidyjames added Priority: High To be addressed after any critical issues Status: Confirmed Verified by someone other than the reporter labels Aug 31, 2021
@JoseExposito
Copy link
Member

JoseExposito commented Oct 25, 2021

Additional information: #1274

@asonix
Copy link
Sponsor

asonix commented Nov 1, 2021

Additional info: This occurs frequently for me, since I have multiple workspaces open and switch between them frequently while a chat application is generating notifications frequently. It seems to happen regardless of hardware, as it occurs on my desktop with a 6th gen i5 and nvidia graphics, as well as on my laptop with an 11th gen i7 with Xe graphics. It occurs more frequently on my laptop, but that's because I use multiple workspaces more frequently on my laptop.

Since this bug kills Gala, after occurring many times in a short timespan it kicks me back out to the login screen. For this reason, I frequently close my chat applications when trying to do meaningful work (probably for the best anyway).

Steps to reproduce:

  1. Have an application generate notifications frequently
  2. Switch workspaces

@JoseExposito
Copy link
Member

It finally crashed on my desktop. Here is the dmesg output:

[ 2745.657634] gala[1686]: segfault at 21c ip 00007f8def78da04 sp 00007ffea6f5d4d8 error 4 in libmutter-6.so.0.0.0[7f8def706000+fe000]
[ 2745.657644] Code: 0f af c0 01 f8 41 89 44 24 0c 48 83 c4 08 4c 89 e2 4c 89 e6 48 89 ef 5d 41 5c e9 97 fd ff ff 0f 1f 80 00 00 00 00 f3 0f 1e fa <f3> 0f 6f 87 1c 02 00 00 0f 11 06 c3 f3 0f 1e fa 41 55 41 54 49 89

And the more useful GDB info:

(gdb) backtrace
#0  0x00007f8def78da04 in meta_window_get_frame_rect () at /lib/x86_64-linux-gnu/libmutter-6.so.0
#1  0x0000565061c517b8 in  ()
#2  0x0000565061c51c55 in gala_notification_stack_show_notification ()
#3  0x0000565061c68c52 in  ()
#4  0x00007f8def75b418 in  () at /lib/x86_64-linux-gnu/libmutter-6.so.0
#5  0x00007f8def76395b in  () at /lib/x86_64-linux-gnu/libmutter-6.so.0
#6  0x00007f8def763a62 in  () at /lib/x86_64-linux-gnu/libmutter-6.so.0
#7  0x00007f8def795287 in  () at /lib/x86_64-linux-gnu/libmutter-6.so.0
#8  0x00007f8def795b45 in  () at /lib/x86_64-linux-gnu/libmutter-6.so.0
#9  0x00007f8def78ac0a in  () at /lib/x86_64-linux-gnu/libmutter-6.so.0
#10 0x00007f8def614dba in  () at /usr/lib/x86_64-linux-gnu/mutter-6/libmutter-clutter-6.so.0
#11 0x00007f8def6168a5 in  () at /usr/lib/x86_64-linux-gnu/mutter-6/libmutter-clutter-6.so.0
#12 0x00007f8df06b417d in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#13 0x00007f8df06b4400 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#14 0x00007f8df06b46f3 in g_main_loop_run () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#15 0x00007f8def77c3d0 in meta_run () at /lib/x86_64-linux-gnu/libmutter-6.so.0
#16 0x0000565061c47f28 in main ()

Basically, it crashed in NotificationStack.vala, line 54:

    public void show_notification (Meta.WindowActor notification, bool animate) {
        notification.set_pivot_point (0.5f, 0.5f);

        unowned Meta.Window window = notification.get_meta_window ();
        var window_rect = window.get_frame_rect (); <------------------------------ HERE

I wasn't running a debug version of Gala, so I couldn't inspect the variables but window should not be NULL because it is accessed in WindowManager.map.

The implementation of meta_window_get_frame_rect in Mutter is pretty straightforward (I checked the latest master). So this could be an issue already solved upstream or some sort of race condition? Ideas?

@MichelFrade
Copy link

erro_notificacao.mp4

@jpgleeson
Copy link
Contributor

Trivially reproducible by running sleep 10 in a terminal then swiping halfway to the next workspace. If you hold it there in between the two then when you switch to the next workspace it'll popup in the top left corner.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Priority: High To be addressed after any critical issues Status: Confirmed Verified by someone other than the reporter
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants