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

experimental xrender - unredir crash, the 2nd #239

Closed
aufkrawall opened this issue Sep 23, 2019 · 14 comments
Closed

experimental xrender - unredir crash, the 2nd #239

aufkrawall opened this issue Sep 23, 2019 · 14 comments

Comments

@aufkrawall
Copy link

Hello yhsui,
as mentioned there, this issue is back since commit eecee13
#189

Attached is a debug log, crash dump and compton binary.
compton.zip

@yshui
Copy link
Owner

yshui commented Sep 23, 2019

thanks.

this is related to getting a ShapeNotify in the same cycle the window is unmap, i haven't found the cause yet. if you can reproduce this with a debug build of compton, it would be helpful.

@aufkrawall
Copy link
Author

Yeah, I can reliably reproduce it simply by doing alt + tabbing out of vkquake.

@yshui
Copy link
Owner

yshui commented Sep 23, 2019

@aufkrawall can you attach the dump and binary from a debug build?

but i think i know where the problem is now, will fix once i get back to my computer.

@aufkrawall
Copy link
Author

Ah, yeah. I didn't enable debug build in meson.

@yshui
Copy link
Owner

yshui commented Sep 23, 2019

Ah, yeah. I didn't enable debug build in meson.

Can you create a debug build?

@aufkrawall
Copy link
Author

Ah, yeah. I didn't enable debug build in meson.

Can you create a debug build?

Of course, stay tuned.

@aufkrawall
Copy link
Author

Same content as above, but with debug build:
compton2.zip

yshui added a commit that referenced this issue Sep 23, 2019
Signed-off-by: Yuxuan Shui <[email protected]>
yshui added a commit that referenced this issue Sep 23, 2019
Previously all image stale flags are ignored when processing an unmapped
window. If a window gains a shadow during its fading out transition, the
shadow flag will be set, but shadow won't actually be generated, causing
a NULL pointer dereference during render.

Fixes #239

Signed-off-by: Yuxuan Shui <[email protected]>
@yshui yshui closed this as completed in c85c9ef Sep 23, 2019
@yshui
Copy link
Owner

yshui commented Sep 23, 2019

@aufkrawall should've been fixed, can you try the latest next?

@aufkrawall
Copy link
Author

@yshui Haven't tested with the same AMD GPU system, but on my Intel notebook it still crashes.

@yshui
Copy link
Owner

yshui commented Sep 23, 2019 via email

@aufkrawall
Copy link
Author

Here we go again:
compton3.zip

@yshui yshui reopened this Sep 24, 2019
@yshui
Copy link
Owner

yshui commented Sep 24, 2019

i found the cause. it's because the window is unmapped the same cycle the screen is redirected, so it didn't get a chance to acquire the pixmap

solving this one will be a bit trickier

yshui added a commit that referenced this issue Sep 28, 2019
If a window is unmapped during the draw_callback re-run when the screen
is just redirected, that window won't get a chance to acquire a pixmap.
If fading is enabled, the compositor will try to render that window and
crash.

Signed-off-by: Yuxuan Shui <[email protected]>
@yshui yshui closed this as completed in a69ed89 Sep 28, 2019
@yshui
Copy link
Owner

yshui commented Sep 28, 2019

@aufkrawall hopefully it's fixed now.

@aufkrawall
Copy link
Author

@yshui Yep, issue's gone here.
Thanks once again. Having proper auto unredirect is really a great feature of Compton.

yshui added a commit that referenced this issue Nov 18, 2019
The compositor crashes when a window does:
has shadow -> no shadow -> has shadow

This is because when the shadow is turned off, the shadow image is not
freed, and this is catched by a later assertion.

Signed-off-by: Yuxuan Shui <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants