← Back to team overview

mythbuntu-bugs team mailing list archive

[Bug 1308105] Re: Xfce resets TV mode to NULL when power cycled

 

tl;dr - There is a bug in xfsettingsd that not only affects external
monitors, but primary monitors as well.

I believe that I am encountering the same bug, but by a different
scenario. This may also be the same bug as  #1313539.

I am running Xubuntu 14.04 on two of my four computers. I have all four
computers connected to a single keyboard, monitor and mouse via a 4port
KVM switch. Prior 14.04 upgrade, this setup worked like a dream. Post
14.04 upgrade, I have found that switching to either of the Xubuntu
machines results in a blank monitor. On one machine, I am usually able
to get to a virtual console and reset of the video by restarting
lightdm. On the other machine, I am not able to even get a virtual
console, and I have to ssh into the machine in order to restart lightdm.

The dying video happens so frequently that I starting the process of
migrating away to XFCE. I installed Gnome Shell on one machine and
Fluxbox on the other. Neither of these WM's exhibited the dying video
phenomena.

Based upon this bug report, I decided to investigate the possibility
that xfsettingsd might be the problem. Here's what I did.

1) Log in to a Xubuntu session.

2) Open a terminal window. Because I needed to do part of this from the
Xubuntu session and part of this via ssh, I opened a new Byobu session
(screen or tmux would work too). Then,

    $ killall xfsettingsd
    $ XFSETTINGSD_DEBUG=1 xfsettingsd --replace --no-daemon 2>&1 | tee output.txt

3) After the initial output from xfsettingsd had finished,

    $ cp output.txt before.txt

4) Here's where the fun begins: I unplugged the monitor from the KVM
switch. I waited a few seconds, and then I plugged the monitor back into
the switch. No video. I switched the KVM to one of the other computers
and verified that the monitor was corrected plugged in and working.

5) On one of the other computers with working video, I ssh'ed into the
machine running the Xubuntu session and reconnected to the Byobu
session. I found that xfsettingsd had crashed.

6) Executing "sleep 5; xfsettingsd" on the ssh session and switching to
the Xubuntu machine restored the video.

7) I diff'ed the "before.txt" with the "output.txt". Here is the output
that was generated when the monitor was unplugged and replugged.

xfce4-settings(displays): RRScreenChangeNotify event received.
xfce4-settings(displays): Refreshing RandR cache.
xfce4-settings(displays): Detected CRTC 63.
xfce4-settings(displays): Detected CRTC 64.
xfce4-settings(displays): Detected CRTC 65.
xfce4-settings(displays): Noutput: before = 1, after = 0.
xfce4-settings(displays): Output disconnected: VGA1
xfce4-settings(displays): Disabling CRTC 63.
xfce4-settings(displays): No active output anymore! Attempting to re-enable the internal output.
xfce4-settings(displays): RRScreenChangeNotify event received.
xfce4-settings(displays): Refreshing RandR cache.
xfce4-settings(displays): Detected CRTC 63.
xfce4-settings(displays): Detected CRTC 64.
xfce4-settings(displays): Detected CRTC 65.
xfce4-settings(displays): Noutput: before = 0, after = 0.
xfce4-settings(displays): RRScreenChangeNotify event received.
xfce4-settings(displays): Refreshing RandR cache.
xfce4-settings(displays): Detected CRTC 63.
xfce4-settings(displays): Detected CRTC 64.
xfce4-settings(displays): Detected CRTC 65.
xfce4-settings(displays): Detected output 66 VGA1.
xfce4-settings(displays): Noutput: before = 0, after = 1.
xfce4-settings(displays): New output connected: VGA1
xfce4-settings(displays): RRScreenChangeNotify event received.
xfce4-settings(displays): Refreshing RandR cache.
xfce4-settings(displays): Detected CRTC 63.
xfce4-settings(displays): Detected CRTC 64.
xfce4-settings(displays): Detected CRTC 65.
xfce4-settings(displays): Noutput: before = 1, after = 0.
xfce4-settings(displays): Output disconnected: VGA1
xfce4-settings(displays): Disabling CRTC 89.
The program 'xfsettingsd' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadRRCrtc (invalid Crtc parameter)'.
  (Details: serial 505 error_code 148 request_code 140 minor_code 21)
  (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.)

-- 
You received this bug notification because you are a member of Mythbuntu
Bug Team, which is subscribed to Mythbuntu.
https://bugs.launchpad.net/bugs/1308105

Title:
  Xfce resets TV mode to NULL when power cycled

Status in Mythbuntu, Ubuntu derivative focused upon MythTV:
  Confirmed
Status in “nvidia-graphics-drivers” package in Ubuntu:
  Invalid
Status in “nvidia-graphics-drivers-331” package in Ubuntu:
  Invalid
Status in “xfce4-settings” package in Ubuntu:
  Confirmed

Bug description:
  I had an HTPC with Mythbuntu 12.04 installed.  Upon upgrading a new
  behavior that if the TV is power cycled it no longer detects a link
  with the HTPC.

  When this happens I can find in the xorg log that there is an
  accompanying log item:

  [ 39829.509] (II) NVIDIA(0): Setting mode "NULL"

  After debugging with NVIDIA at
  https://devtalk.nvidia.com/default/topic/729955/linux/tv-stops-being-
  detected/ we've deteremined it's a X client that reacts to the RANDR
  events causing the mode to be set to NULL.

  Working through the list in an Xfce environment, the culprit is
  xfsettingsd.  If xfsettingsd is running, it causes the TV to come up
  in a NULL mode.  If it's killed, it remains in the mode it was
  previously running in.

  
  Until this is fixed, this behavior can be worked around with a simple shell script:
  ==============================
  #!/bin/sh
  #Fix TV state when HDMI link is lost.
  #By Mario Limonciello <superm1@xxxxxxxxxx>

  OUTPUT="HDMI-0"
  BAD_MODE="1280x720"
  GOOD_MODE="1920x1080"

  for MODE in $BAD_MODE $GOOD_MODE; do
   DISPLAY=:0 xrandr --output $OUTPUT --mode $MODE
   sleep 2
  done
  ==============================

To manage notifications about this bug go to:
https://bugs.launchpad.net/mythbuntu/+bug/1308105/+subscriptions