-
-
Notifications
You must be signed in to change notification settings - Fork 81
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
DesktopConfiguration per-monitor segmentation fault in certain repeatable conditions #19
Comments
Hi, Thanks again -- you're getting good at filing these reports! Just to confirm when this crash happens, had you changed Can you have another look at your corefile, but this time do:
I'm presuming that With respect to the changing of |
I have to. I'm using FVWM from 2006 or 2007 or so! :) DesktopConfiguration was not present at all. I have logged on the console and added it in the configuration, then get back at XDM login screen, logged in, plugged monitor in and only then, when I issue xrandr command in X terminal, the same second, I'm logged out and core dump is created. If I put "global" instead of "per-monitor" it doesn't dies in the same sequence of steps, or if I change initial "global" to "per-monitor" later. Here is the trace. May be DesktopConfiguration needs to be set after DesktopSize and desk names? Will try that later if you want. (gdb) bt full |
FYI, I have tried setting DesktopConfiguration after desktop names. It doesn't help. I was able to reproduce this on another system: Fedora 31 in KVM virtual environment. Multihead support in spice/kvm works nice with remote-viewer and now I can debug without logging in/out with test users on hardware. Much faster and flexible. Virtual-0 and Virtual-1 are behaving exactly the same as my physical eDP1 and DP1. Even core dump is equally nice. :) |
When a given output changes size, or is disabled, ensure FVWM is better informed so that it can adjust its view of which outputs are available and what their sizes are. FVWM uses rectangle calculations to determine if a window should receive focus. When monitors come and go, FVWM needs to reinstate its view of these outputs and their rectangles, based on the screen size at the time. It's more complicated with `DesktopConfiguration per-monitor` due to the width/height of the screen being different from one another, potentially. This change is big, and is littered with debug. Goes a long way to fixing Github Issue #16, #19.
When a given output changes size, or is disabled, ensure FVWM is better informed so that it can adjust its view of which outputs are available and what their sizes are. FVWM uses rectangle calculations to determine if a window should receive focus. When monitors come and go, FVWM needs to reinstate its view of these outputs and their rectangles, based on the screen size at the time. It's more complicated with `DesktopConfiguration per-monitor` due to the width/height of the screen being different from one another, potentially. This change is big, and is littered with debug. Goes a long way to fixing Github Issue #16, #19.
@NsCDE -- do you have any instructions on how to set up KVM/Spice? I'm using both (Debian host & Debian VM), but despite having Spice in use, my VM only sees one monitor. I can see under the 'Display' menu for the VM that I could select up to four monitors, but monitors 2 to 4 are all greyed out, and xrandr(1) from within the VM only shows on Virtual monitor. Any thoughts? According to the documentation, this should Just Work, but it doesn't seem to work for me. |
Hi Thomas Check this 3 things:
Try
3a. Make sure spice-vdagent is started manually by you, or from some login script after you log in. This connects RandR from guest with KVM infrastructure. EDIT: |
Hmm -- thanks. Still not working -- I can see four displays now (thanks to editing the XML), but only the first virtual monitor is active ( Looking at the XServer logs, the guest is using QXL. |
Inactive monitors on remote-viewer menu can indicate that either spice-vdagentd or spice-vdagent is not running.
Daemon spice-vdagentd as a root service, spice-vdagent as graphically logged in user service. Spice vdagent package version in Fedora 31 VM is 0.19.0, qemu-kvm on the CentOS 7 host is 1.5.3 ... just in case, but this should not make any difference. This are my spice and qxl relevant parts of the XML on the KVM host:
Xorg.0.log on guest:
Hope this helps. |
Perfect. Thanks, @NsCDE this is working now. |
Hello again,
Version: ta/desktops
If secondary monitor is plugged off and I log in via XDM, plug new monitor and then issue the command:
xrandr --output eDP1 --mode 1920x1080 --primary --output DP1 --mode 2560x1440 --right-of eDP1 --noprimary
fvwm3 crashes (trace on the bottom).
When it doesn't crashes:
Probably not related to this issue, but may be of interest to you:
I was reading your "Multiple Pages (3x3) and RandR is confusing and broken" and trying to introduce myself to new per-monitor mode to better understand problematic and maybe propose something when I discovered this. I have also found that "FvwmPager * 3" is very confused and changes DesktopSize (pages) from configured 2x2 to 3x3 on the fly, but that is probably already known to you ... or maybe currently/temporary hardcoded for testing? Interestingly, "local" pager, that is, FvwmPager which shows only one desk retains 2x2 DesktopSize.
Trace:
gdb /opt/fvwm3/bin/fvwm3 /var/coredumps/core-prokopije-fvwm3-7011-11-22687
Reading symbols from /opt/fvwm3/bin/fvwm3...done.
[New LWP 22687]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Core was generated by `/opt/fvwm3/bin/fvwm3 -f /opt/NsCDE/config/NsCDE-Main.conf'.
Program terminated with signal 11, Segmentation fault.
#0 0x000000000047c502 in EWMH_SetDesktopNames (m=0x2108990) at ewmh_names.c:285
285 ewmh_names.c: No such file or directory.
[...]
(gdb) bt
#0 0x000000000047c502 in EWMH_SetDesktopNames (m=0x2108990) at ewmh_names.c:285
#1 0x0000000000428e68 in HandleRRScreenChangeNotify (e=e@entry=0x7fff819dacf0) at events.c:1806
#2 0x000000000042b7c0 in dispatch_event (e=e@entry=0x7fff819dacf0) at events.c:4185
#3 0x000000000042c49d in HandleEvents () at events.c:4294
#4 0x000000000040aeaa in main (argc=, argv=0x7fff819db568) at fvwm3.c:2594
Desktop names are set during login. I'm using 4 desks x 4 pages (2x2) == 16.
The text was updated successfully, but these errors were encountered: