Bug 181467
Summary: | kudzu Segmentation fault [x86_64/x86emu] | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Ronald Warsow <rwarsow> | ||||||||||
Component: | kudzu | Assignee: | Bill Nottingham <notting> | ||||||||||
Status: | CLOSED RAWHIDE | QA Contact: | David Lawrence <dkl> | ||||||||||
Severity: | medium | Docs Contact: | |||||||||||
Priority: | medium | ||||||||||||
Version: | rawhide | CC: | ivg231, olen.e.boydstun, oliva, orion, prigault, rvokal, scop | ||||||||||
Target Milestone: | --- | ||||||||||||
Target Release: | --- | ||||||||||||
Hardware: | x86_64 | ||||||||||||
OS: | Linux | ||||||||||||
Whiteboard: | |||||||||||||
Fixed In Version: | 1.2.31-1 | Doc Type: | Bug Fix | ||||||||||
Doc Text: | Story Points: | --- | |||||||||||
Clone Of: | Environment: | ||||||||||||
Last Closed: | 2006-02-21 19:36:45 UTC | Type: | --- | ||||||||||
Regression: | --- | Mount Type: | --- | ||||||||||
Documentation: | --- | CRM: | |||||||||||
Verified Versions: | Category: | --- | |||||||||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||||||
Cloudforms Team: | --- | Target Upstream Version: | |||||||||||
Embargoed: | |||||||||||||
Attachments: |
|
Description
Ronald Warsow
2006-02-14 14:14:26 UTC
Created attachment 124615 [details]
output from gdb kudzu
maybe it's usefull
I can confirm this on my x86_64 as well. Going back to yesterday fixes the problem. Can you get a backtrace with kudzu-debuginfo installed? That one looks odd. yes, I can get a backtrace, but how do I do this ? I have some additional info. kudzu-1.2.29 is also segfaulting. I rebuilt the rpms using today's gcc-4.1.0-0.27 and it still segfaults. The gdb output sais: =================================================== Program received signal SIGSEGV, Segmentation fault. rdb (addr=13610) at sys.c: 232 232 HALT_SYS(); ==================================================== I rebuilt kudzu 1.2.25 using the same compiler and it works fine, so it does not seem to be gcc. I also did two straces of "strace -o file ./kudzu start" in /etc/rc.d/init.d. There are some differences, may be it will make sense to you. Created attachment 124686 [details]
strace for 1.2.29
Created attachment 124687 [details]
strace for 1.2.25
I'm assuming downloading and running http://people.redhat.com/notting/ddc-fu also segfaults? For getting a stack trace, please see http://fedoraproject.org/wiki/StackTraces Yes ddc-fu segfaults AND both ddc-fu and running ./kudzu start in init.d result in the whole screen filled with some garbled image. Doing ctrl+alt+f1 and back ctrl+alt+f7 clears the screen. For those seeing this, what sort of video hardware do you have? Happens on x86_64 only. Hardware: Graphics card: NVIDIA Quadro FX 1400 ===================================================================== Monitor: Dell 2405FP (24 inch LCD, connected to dvi, mouse and keyboard connected to monitor usb ports) HorizSync 30.0 - 81.0 VertRefresh 56.0 - 76.0 ModeLine "1920x1200" 154.0 1920 1968 2000 2080 1200 1203 1209 1235 +hsync -vsync ModeLine "1600x1200" 161.0 1600 1704 1880 2160 1200 1201 1204 1242 -hsync +vsync ModeLine "1280x1024" 138.5 1280 1368 1504 1728 1024 1025 1028 1069 -hsync +vsync ============================================================================ lspci -vvv output for video 01:00.0 VGA compatible controller: nVidia Corporation NV41GL [Quadro FX 1400] (rev a2) (prog-if 00 [VGA]) Subsystem: nVidia Corporation Unknown device 0243 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 0 Interrupt: pin A routed to IRQ 169 Region 0: Memory at fc000000 (32-bit, non-prefetchable) [size=16M] Region 1: Memory at f0000000 (64-bit, prefetchable) [size=128M] Region 3: Memory at fd000000 (64-bit, non-prefetchable) [size=16M] [virtual] Expansion ROM at fea00000 [disabled] [size=128K] Capabilities: [60] Power Management version 2 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 PME-Enable- DSel=0 DScale=0 PME- Capabilities: [68] Message Signalled Interrupts: 64bit+ Queue=0/0 Enable- Address: 0000000000000000 Data: 0000 Capabilities: [78] Express Endpoint IRQ 0 Device: Supported: MaxPayload 128 bytes, PhantFunc 0, ExtTag- Device: Latency L0s <512ns, L1 <4us Device: AtnBtn- AtnInd- PwrInd- Device: Errors: Correctable- Non-Fatal+ Fatal+ Unsupported- Device: RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+ Device: MaxPayload 128 bytes, MaxReadReq 512 bytes Link: Supported Speed 2.5Gb/s, Width x16, ASPM L0s, Port 0 Link: Latency L0s <256ns, L1 <16us Link: ASPM Disabled RCB 128 bytes CommClk+ ExtSynch- Link: Speed 2.5Gb/s, Width x16 Capabilities: [100] Virtual Channel Capabilities: [128] Power Budgeting NV17 [nVidia Geforce4 420 Go 32M (rev a3)], 1280x800 notebook display. here is my trace: (gdb) run Starting program: /sbin/kudzu Program received signal SIGSEGV, Segmentation fault. rdb (addr=12288) at sys.c:232 232 HALT_SYS(); my video hardware is (lspci -vvv): 01:00.0 VGA compatible controller: nVidia Corporation NV34 [GeForce FX 5200] (rev a1) (prog-if 00 [VGA]) Subsystem: ASUSTeK Computer Inc. Unknown device 8180 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop+ ParErr- Stepping- SERR- FastB2B- Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 64 (1250ns min, 250ns max) Interrupt: pin A routed to IRQ 11 Region 0: Memory at fb000000 (32-bit, non-prefetchable) [size=16M] Region 1: Memory at f0000000 (32-bit, prefetchable) [size=128M] Expansion ROM at faf00000 [disabled] [size=128K] Capabilities: [60] Power Management version 2 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 PME-Enable- DSel=0 DScale=0 PME- Capabilities: [44] AGP version 3.0 Status: RQ=32 Iso- ArqSz=0 Cal=3 SBA+ ITACoh- GART64- HTrans- 64bit- FW+ AGP3+ Rate=x4,x8 Command: RQ=1 ArqSz=0 Cal=0 SBA- AGP- GART64- 64bit- FW- Rate=<none> I am not sure whether 1.2.30 was expected to resolve this but it is still segfaulting. Reproduced here too. Hardware is MSI K8NGM2-FID motherboard (nForce 6150/430) with integrated video, HP f2105 connected via DVI: 00:05.0 VGA compatible controller: nVidia Corporation C51 PCI Express Bridge (rev a2) (prog-if 00 [VGA]) Subsystem: Micro-Star International Co., Ltd. Unknown device 7207 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 0 Interrupt: pin A routed to IRQ 18 Region 0: Memory at fd000000 (32-bit, non-prefetchable) [size=16M] Region 1: Memory at d0000000 (64-bit, prefetchable) [size=256M] Region 3: Memory at fc000000 (64-bit, non-prefetchable) [size=16M] [virtual] Expansion ROM at feae0000 [disabled] [size=128K] Capabilities: [48] Power Management version 2 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 PME-Enable- DSel=0 DScale=0 PME- Capabilities: [50] Message Signalled Interrupts: 64bit+ Queue=0/0 Enable- Address: 0000000000000000 Data: 0000 By the way, ddcprobe (unsurprisingly?) crashes the same way in _kudzumodule.so. backtrace from ddcprobe: #0 rdw (addr=12288) at sys.c:257 #1 0x00002aacaa09f9ca in fetch_data_word (offset=Variable "offset" is not available. ) at decode.c:327 #2 0x00002aacaa0a71ac in x86emuOp_sbb_word_RM_R (op1=Variable "op1" is not available. ) at ops.c:1498 #3 0x00002aacaa0a0421 in X86EMU_exec () at decode.c:123 #4 0x00002aacaa09f40e in real_call (registers=0x7fffffe01e70) at thunk.c:200 #5 0x00002aacaa09e920 in get_edid_supported () at vbe.c:262 #6 0x00002aacaa09c517 in ddcProbe (probeClass=CLASS_MONITOR, probeFlags=Variable "probeFlags" is not available. ) at ddc.c:423 #7 0x00002aacaa093d8e in probeDevices (probeClass=CLASS_MONITOR, probeBus=BUS_DDC, probeFlags=1) at kudzu.c:806 #8 0x00002aacaa091441 in doProbe (self=Variable "self" is not available. ) at kudzumodule.c:461 #9 0x0000003748d950c8 in PyEval_EvalFrame () from /usr/lib64/libpython2.4.so.1.0 get_data_offset(), called from fetch_data_word(), returns 0. registers->ds is indeed zero in X86EMU_exec(). Created attachment 124905 [details]
test program
Here's a new test program build - does this a) segfault b) print useful
information about your monitor?
Doesn't segfault, and prints some useful info, but not about the monitor. # ./ddc-fu - class: VIDEO bus: DDC detached: 0 desc: "NVIDIA Corporation Crush50 Board - c51pv0" mem: 65536 [root@cobra downloads]# ./ddc-fu - class: VIDEO bus: DDC detached: 0 desc: "NVIDIA Corporation nv41 Board - p317h20" mem: 262144 [root@livre ~]# /l/tmp/build/ddc-fu - class: VIDEO bus: DDC detached: 0 desc: "NVIDIA Corporation NV17 Board - m17refnz" mem: 65536 [root@livre ~]# Shouldn't crash any more in 1.2.31-1. Why isn't monitor information displayed? My monitor wasn't properly detected during -test*. Is this relevant? It's not displayed because the EDID block returned isn't valid. FWIW, a few weeks ago I was able to grab an EDID block using the NVIDIA proprietary nvidia-settings tool, feed it to a perl script found in Mandriva and get useful data out of it (in order to verify the HP f2105 entry I was about to submit for inclusion in MonitorsDB). Interesting. What does the tool do? ioctl? vm86 code? Something else? (You should be able to get an idea with strace). strace output and the grabbed edid are at http://koti.welho.com/vskytta/edid/ , I clicked the "Acquire EDID" button in the app around line 3330 in the strace file. Quite a few ioctl's there it seems. Hm, yeah, but that looks like mainly X noise. strace -f any more enlightening? strace-f.txt uploaded to the same place, and the aqcuire edid click again around line 3300 through it. *** Bug 182353 has been marked as a duplicate of this bug. *** - class: VIDEO bus: DDC detached: 0 desc: "NVIDIA Corporation Crush50 Board - c51pv0" mem: 65536 - class: MONITOR bus: DDC detached: 0 desc: "Radius" id: RDS1546 horizSyncMin: 30 horizSyncMax: 63 vertRefreshMin: 50 vertRefreshMax: 75 Sorry, the above is the output of ddc-fu.2 Confirmed not crashing any more. ddcprobe still fails to detect the LCD monitor, but I guess that's still expected :-( Well, it would be interesting to know if a 32-bit install can probe it, as that would show a difference between the LRMI-using real-mode code, as opposed to the code run through x86emu. However, not-crashing is the main goal. :) That I can easily tell, but from a different notebook (PIII) with a different nvidia card: [root@vapaa ~]# ddcprobe Videocard autoprobe results Description: NVidia Corporation NV10 Reference Board Memory (MB): 32 Monitor autoprobe results Monitor autoprobe failed. *** Bug 183128 has been marked as a duplicate of this bug. *** *** Bug 184397 has been marked as a duplicate of this bug. *** |