Bug 288730

Summary: Hardware settings: aspect ratio of screen crashes X
Product: [openSUSE] openSUSE 10.3 Reporter: Forgotten User Drfk9mafMw <forgotten_Drfk9mafMw>
Component: YaST2Assignee: J. Daniel Schmidt <jdsn>
Status: RESOLVED FIXED QA Contact: Jiri Srain <jsrain>
Severity: Normal    
Priority: P5 - None CC: ms
Version: Alpha 5   
Target Milestone: ---   
Hardware: i686   
OS: Linux   
Whiteboard:
Found By: Beta-Customer Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: /var/log/messages
/var/log/Xorg.0.log
/var/log/Xorg.0.log.old
Yast logs created with 'save_y2logs /tmp/y2logs.tgz'

Description Forgotten User Drfk9mafMw 2007-06-30 10:07:44 UTC
When performing the installation (DVD medium), the final step is Hardware settings. Being curious what the aspect ratio settings offers I clicked this. Since I was unsure what diagonal size my 15" laptop screen has I pressed Cancel. The  Xsession crashed, restarted and offered the login screen right away. I rebooted and received a complaint about an unfinished previous installation :)

Looks like the sax2 component is not very tolerant towards errors or screens not reporting their size?
Comment 1 Matej Horvath 2007-07-04 13:23:23 UTC
Please attach your yast logs (http://en.opensuse.org/Bugs/YaST), /var/log/Xorg.0.log, /var/log/messages and output of 'hwinfo --monitor --gfxcard'.
Comment 2 Forgotten User Drfk9mafMw 2007-07-04 16:21:13 UTC
Created attachment 149700 [details]
/var/log/messages

linux-01q6:~ # hwinfo --monitor
29: None 00.0: 10000 Monitor
  [Created at fb.71]
  Unique ID: rdCR.EY_qmtb9YY0
  Hardware Class: monitor
  Model: "Generic Monitor"
  Vendor: "Generic"
  Device: "Monitor"
  Resolution: 800x600@75Hz
  Driver Info #0:
    Max. Resolution: 800x600
    Vert. Sync Range: 50-90 Hz
    Hor. Sync Range: 31-48 kHz
  Config Status: cfg=new, avail=yes, need=no, active=unknown
Comment 3 Forgotten User Drfk9mafMw 2007-07-04 16:22:30 UTC
linux-01q6:~ # hwinfo --gfxcard
13: PCI 02.0: 0300 VGA compatible controller (VGA)
  [Created at pci.296]
  UDI: /org/freedesktop/Hal/devices/pci_8086_3582
  Unique ID: _Znp.WoJcbu5eHk4
  SysFS ID: /devices/pci0000:00/0000:00:02.0
  SysFS BusID: 0000:00:02.0
  Hardware Class: graphics card
  Model: "Acer Incorporated [ALI] 855 GM"
  Vendor: pci 0x8086 "Intel Corporation"
  Device: pci 0x3582 "855 GM"
  SubVendor: pci 0x1025 "Acer Incorporated [ALI]"
  SubDevice: pci 0x003d
  Revision: 0x02
  Memory Range: 0xb0000000-0xb7ffffff (rw,prefetchable)
  Memory Range: 0xf0000000-0xf007ffff (rw,non-prefetchable)
  I/O Ports: 0xe000-0xe007 (rw)
  IRQ: 10 (13396 events)
  I/O Ports: 0x3c0-0x3df (rw)
  Module Alias: "pci:v00008086d00003582sv00001025sd0000003Dbc03sc00i00"
  Driver Info #0:
    XFree86 v4 Server Module: i810
  Driver Info #1:
    XFree86 v4 Server Module: i810
    3D Support: yes
    Extensions: dri
  Config Status: cfg=no, avail=yes, need=no, active=unknown

14: PCI 02.1: 0380 Display controller
  [Created at pci.296]
  UDI: /org/freedesktop/Hal/devices/pci_8086_3582_0
  Unique ID: ruGf.WqkU0AHb1z9
  SysFS ID: /devices/pci0000:00/0000:00:02.1
  SysFS BusID: 0000:00:02.1
  Hardware Class: graphics card
  Model: "Acer Incorporated [ALI] 855 GM"
  Vendor: pci 0x8086 "Intel Corporation"
  Device: pci 0x3582 "855 GM"
  SubVendor: pci 0x1025 "Acer Incorporated [ALI]"
  SubDevice: pci 0x003d
  Revision: 0x02
  Memory Range: 0x30000000-0x37ffffff (rw,prefetchable)
  Memory Range: 0x38000000-0x3807ffff (rw,non-prefetchable)
  Module Alias: "pci:v00008086d00003582sv00001025sd0000003Dbc03sc80i00"
  Driver Info #0:
    XFree86 v4 Server Module: i810
  Driver Info #1:
    XFree86 v4 Server Module: i810
    3D Support: yes
    Extensions: dri
  Config Status: cfg=no, avail=yes, need=no, active=unknown
Comment 4 Forgotten User Drfk9mafMw 2007-07-04 16:24:46 UTC
Created attachment 149703 [details]
/var/log/Xorg.0.log
Comment 5 Forgotten User Drfk9mafMw 2007-07-04 16:26:43 UTC
Created attachment 149704 [details]
/var/log/Xorg.0.log.old
Comment 6 Forgotten User Drfk9mafMw 2007-07-04 16:27:50 UTC
Created attachment 149705 [details]
Yast logs created with 'save_y2logs /tmp/y2logs.tgz'
Comment 7 Marcus Schaefer 2007-07-09 10:51:39 UTC
I don't think the X-Server crashed because there is no X-Server access
while setting up aspect and ratio. The result of this setup is just a line
in xorg.conf which takes into effect at next restart of the X-Server.
I think it is more likely that yast was exited for whatever reason and so
the running X-Server is closed and the installation is "finished"

Unfortunately the logs doesn't point me to something useful. The X-Server
log is clean which means there is no X-server problem. The yast log told
me:

    clients/x11_proposal.ycp:65 x11 package status is: <true>
    clients/x11_proposal.ycp:99 Loading library cache...
    clients/x11_proposal.ycp:105 Reading libsax cache data...
    clients/x11_proposal.ycp:214 X11: DualHead Mode not supported with this NoteBook
    [Interpreter] x11/x11Dialog.ycp:360 Called YaST client returned: $["links":["sax-monitor", "sax-resolution", "sax-displaysize", "sax-colors", "sax-3d", "sax-ext-vga", "sax-test"], "preformatted_proposal":"<ul><li>Graphics card: Intel 855 GM</li><li>Monitor: <a href=\"sax-monitor\">--> LCD 800X600@60HZ</a> (<a href=\"sax-displaysize\">Aspect Unconfigured</a>) - (<a href=\"sax-resolution\">800x600</a>)</li><li>Colordepth: <a href=\"sax-colors\">24</a> bit (16.7 Mio. Colors)</li><li>3D Acceleration: <a href=\"sax-3d\">Deactivated</a></li></ul>"]
2007-06-30 11:38:21 <1> linux-01q6(4228) [wfm] Y2CCWFM.cc(createInLevel):153 Parsing finished

which looks good to me in the first place. Maybe yast wasn't able to write
an error to the log file... just a wild guess

assigning to new maintainer of yast2-x11
Comment 8 J. Daniel Schmidt 2007-08-28 16:04:45 UTC
@Marcus: I think I found the cause - but need your advice here.

Have a quick look at y2log (from comment #6) line 2529.
It says 'No item "undef" exiting'. (The following couple of lines come from yast as it exits and reboots, see the timestamp.)

This "undef" comes from XLib.pm::getDisplaySize line 236, @result = ("undef").
The following code checks if $traversal is defined and calculates the display size. There is no else part for that if clause. So if $traversal is undefined @result remains "undef" and returns it.
This is anyhow a valid return value, as the ycp expects a string, but XLib in return expects a integer when setDisplaySize is called with this string.


Do you have an advice what to do in such an else part. What should be the default here? 
I could check the string before calling setDisplaySize and set it to your fallback (in x11_proposal.ycp, line 285) in case it is an invalid string ("undef" is a valid string, but invalid in terms of containing only numbers).
The latter is ugly because XLib.pm::getDisplaySize remains buggy - so I prefer to patch for XLib.pm.

Comment please.
Comment 9 Marcus Schaefer 2007-08-29 09:38:52 UTC
I would say a patch for XLib.pm::setDisplaySize() checking for valid
input would be the best solution. If there are no values to set a valid
display size I would avoid the $mDesktop->setDisplayRatioAndTraversal...
call
Comment 10 J. Daniel Schmidt 2007-09-01 06:58:49 UTC
I tried to add checks to all functions that pass along these strings, that want to be integers, but that broke the proposal completly.

So it remains only the check in XLib.pm. If one avoids the call of
  $mDesktop->setDisplayRatioAndTraversal... then the module fails to finish a correct setup, so I return to default values in this case.

fixed in yast2-x11-2.15.11