! Please note that this is a snapshot of our old Bugzilla server, which is read only since May 29, 2020. Please go to gitlab.xfce.org for our new server !
gkrellm crashes because it cannot read pixmap in _XSETROOT_ID generated by xfwm4
Status:
RESOLVED: MOVED
Product:
Xfdesktop
Component:
General

Comments

Description adam 2020-04-26 01:19:57 CEST
This is from https://bugzilla.redhat.com/show_bug.cgi?id=1672117

gkrellm has the old-school pseudo-transparency mode where it can read the root background and display it as part of its background. It does this by reading the pixmap in _XSETROOT_ID. For some reason, recent xfwm4 sets a bad pixmap for _XSETROOT_ID, which crashes gkrellm. I believe this happened as part of the work on https://bugzilla.xfce.org/show_bug.cgi?id=15709.

Here is what you get from gkrellm when it tries to read the background:

(gkrellm:3773): Gdk-ERROR **: 19:08:34.988: The program 'gkrellm' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadPixmap (invalid Pixmap parameter)'.
  (Details: serial 2494 error_code 4 request_code 56 minor_code 0)
  (Note to programmers: normally, X errors are reported asynchronously;
   that is, you will receive the error a while after causing it.
   To debug your program, run it with the --sync command line
   option to change this behavior. You can then get a meaningful
   backtrace from your debugger if you break on the gdk_x_error() function.)
Trace/breakpoint trap (core dumped)

I think maybe it is as simple as setting _XSETROOT_ID to 0x0, which is what happens after I run fvwm-root. I don't really know all the semantics. https://metacpan.org/pod/X11::Protocol::XSetRoot seemed to be a useful document.
Comment 1 Olivier Fourdan editbugs 2020-04-27 14:02:13 CEST
xfwm4 does not set neither _XSETROOT_ID nor _XROOTPMAP_ID properties, it only *reads* those (to match the wallpaper at compositor startup), so xfwm4 simply cannot be the problem here.

The one who does is xfdesktop... reassigning.

(PS: alsom, please note that's clearly a bug in gkrellm primarily as it should be more cautious when using random properties set by external programs, just saying...)
Comment 2 Olivier Fourdan editbugs 2020-04-27 14:10:00 CEST
FWIW, xfdesktop sets the _XROOTPMAP_ID to the XID of the root window:

https://git.xfce.org/xfce/xfdesktop/tree/src/xfce-desktop.c#n323

That doesn't look correct to me, it should set a pixmap XID, not the XID of the root window... That would explain why applications get an XError when trying to use that XID as pixmap.
Comment 3 Git Bot editbugs 2020-05-26 00:35:07 CEST
-- GitLab Migration Automatic Message --

This bug has been migrated to xfce.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.xfce.org/xfce/xfdesktop/-/issues/62.

Please create an account or use an existing account on one of our supported OAuth providers. 

If you want to fork to submit patches and merge requests please continue reading here: https://docs.xfce.org/contribute/dev/git/start#gitlab_forks_and_merge_requests

Also feel free to reach out to us on the mailing list https://mail.xfce.org/mailman/listinfo/xfce4-dev

Bug #16764

Reported by:
adam
Reported on: 2020-04-26
Last modified on: 2020-05-26

People

Assignee:
Xfce Bug Triage
CC List:
1 user

Version

Version:
4.14.0

Attachments

Additional information