View previous topic :: View next topic |
Author |
Message |
Cyan`
Joined: 22 Nov 2003
Posts: 6
|
Posted: Sat Nov 22, 2003 9:37 pm Post subject: Perfectly reproducible linux glx crash |
|
|
I am experiencing a strange bug with fuhquake 0.30/585 under linux. It works perfectly the first time I run it in any one session, but the second time it always crashes (100% reproducible).
Strace logs of the crash are available at http://frink.nuigalway.ie/~cyan/fuh-crash .
I mentioned this to fuh a fortnight or so ago, but haven't talked since. I was told to build the glx_debug target from sources (which I did, after some difficulty) and get a core dump.
However, although I have both write access to the directory from which I was running quake, and ulimit -c was set to unlimited, I could not get it to core dump.
Can anyone tell me how to get a core dump? Or suggest anything else I might do to help get this fixed?
Keep up the good work btw. The only thing keeping me from deleting the windows partition is that I can't play games on it. If I could manage quake... |
|
Back to top |
|
|
fuh
Almighty King
Joined: 07 Sep 2002
Posts: 2086
|
Posted: Sun Nov 23, 2003 3:00 pm Post subject: |
|
|
you didn't mention when the second crash occurs.
i suggest you modify the fuhquake source, add something like "memset(NULL, 0, 100000)" in CL_Init() to cause a crash. If this results in a core dump, then your core dumping is working fine. If this is the case, it means your earlier lock ups are caused by crashes in something other than the FuhQuake code. Probably the GLX driver or something similar (of course it might be FuhQuake's fault causing the crash in the GLX driver, or it just might be a buggy driver. Can't be certain till we fix it). |
|
Back to top |
|
|
Cyan`
Joined: 22 Nov 2003
Posts: 6
|
Posted: Sun Nov 23, 2003 10:09 pm Post subject: |
|
|
Fuhquake crashes immediately when I start it, ie, I don't even see the console startup messages. X just crashes and gdm starts up again.
I did as you asked (memset()) and it does indeed cause a core dump. What should I do now? |
|
Back to top |
|
|
fuh
Almighty King
Joined: 07 Sep 2002
Posts: 2086
|
Posted: Sun Nov 23, 2003 10:15 pm Post subject: |
|
|
ok, basically you're in for a lot of work, and at the end of it you might find it's a bug in the drivers and you can't do anything about it.
firstly what drivers are you using.
secondly, all you can do is, go through all the Init() code and do an exit(0) at a certain place. see if the client crashes before it reaches the exit(). Do a lot of that and eventually you'll narrow the crash down to a section of the code.
If you can learn to use gdb then you can probably speed this up by stepping through the execution line by line. If the crash was on my system this is what I would do. Unfortunately gdb isn't the most user friendly thing out there. |
|
Back to top |
|
|
Cyan`
Joined: 22 Nov 2003
Posts: 6
|
Posted: Mon Nov 24, 2003 7:08 am Post subject: |
|
|
Ok. Firstly:
Section "Device"
Identifier "Card0"
Driver "nvidia"
VendorName "All"
BoardName "All"
EndSection
I'm running the nvidia driver.
Secondly: Luckily enough I know the basics of gdb. I export'ed DISPLAY=:0.0, and ran quake under gdb from a vterminal. Here's the log:
Code: |
(pfarrell@titan:/usr/local/games/quakeworld)$ gdb -q ./fuhquake-gl.glx
(gdb) break XCreateWindow
Breakpoint 1 at 0x0804b5f8
(gdb) run -width 640 -height 480 -conwidth 320 -conheight 240 -fullscreen
Breakpoint 1 at 0x4011bf6a
[New Thread 16384 (LWP 3525)]
[Switching to Thread 16384 (LWP 3525)]
Breakpoint 1, 0x4011bf6a in XCreateWindow () from /usr/X11R6/lib/libX11.so.6
(gdb) bt
#0 0x4011bf6a in XCreateWindow () from /usr/X11R6/lib/libX11.so.6
#1 0x080d5711 in VID_Init (palette=0x403d0578 "") at vid_glx.c:617
#2 0x0809deba in CL_Init () at cl_main.c:865
#3 0x0804bea5 in Host_Init (argc=10, argv=0xbffffac4,
default_memsize=16777216) at host.c:184
#4 0x0804c516 in main (argc=10, argv=0xbfffac4) at sys_linux.c:190
(gdb) n
Single stepping until exit from function XCreateWindow,
which has no line number information.
VID_Init (palette=0x403d0578 "") at vid_glx.c:619
619 XDefineCursor(dpy, win, CreateNullCursor(dpy, win));
(gdb) n
X connection to :0.0 broken (explicit kill or server shutdown).
Program exited with code 01.
(gdb)
|
I tried it again and this time printed out the values of dpy and win before they crashed. They were:
Code: |
dpy = (Display *) 0xa90a060
win = 25165826
|
Any good to you? Anything else I can do to help?
|
|
Back to top |
|
|
fuh
Almighty King
Joined: 07 Sep 2002
Posts: 2086
|
Posted: Mon Nov 24, 2003 1:31 pm Post subject: |
|
|
I really dont know if theres anything else I can help with. |
|
Back to top |
|
|
Luke
Joined: 25 Jan 2003
Posts: 408
|
Posted: Tue Nov 25, 2003 12:57 pm Post subject: |
|
|
I installed Quake on a friend's computer up at school. It has a Geforce 2 MX or something like that. Fuhquake runs great on first launch, but if you exit Fuhquake... and then sometime during the same session you start up Fuhquake again, the screen is either all black or X crashes. When the screen is all black, Fuhquake is still running and you can hear menu sounds and interact with the game... you just can't see a damn thing.
Thats with Fedora Core 1 and the latest NVIDIA drivers.
I don't have any of these problems with my IBM T30 laptop, which has a measly ATI Radeon 7500 Mobility. Fuhquake works great on it, and oh, the ATI 7500 drivers are open source and have 3D acceleration.
So my friends, now you see the problem with closed source drivers. NVIDIA only cares about recent popular games running correctly on their cards. We might care enough to go through the effort to find the driver bug and fix it, but NVIDIA doesn't allow that. |
|
Back to top |
|
|
dkure
Joined: 26 Sep 2002
Posts: 861
Location: Sydney, Australia
|
Posted: Tue Nov 25, 2003 6:21 pm Post subject: |
|
|
Luke wrote: |
I installed Quake on a friend's computer up at school. It has a Geforce 2 MX or something like that. Fuhquake runs great on first launch, but if you exit Fuhquake... and then sometime during the same session you start up Fuhquake again, the screen is either all black or X crashes. When the screen is all black, Fuhquake is still running and you can hear menu sounds and interact with the game... you just can't see a damn thing.
Thats with Fedora Core 1 and the latest NVIDIA drivers.
I don't have any of these problems with my IBM T30 laptop, which has a measly ATI Radeon 7500 Mobility. Fuhquake works great on it, and oh, the ATI 7500 drivers are open source and have 3D acceleration.
So my friends, now you see the problem with closed source drivers. NVIDIA only cares about recent popular games running correctly on their cards. We might care enough to go through the effort to find the driver bug and fix it, but NVIDIA doesn't allow that. |
I had this exact same problem, When fuhquake.glx quits, it prints an error message (something about dri, cant remeber it now)
from http://fedora.artoo.net/faq/#nVidia
down the bottom
Quote: |
If none of this works, do rpm -e --nodeps XFree86-Mesa-libGL and then restart your computer. The need to do this should soon be eliminated -- watch this FAQ or the fedora-list. Note that if you update XFree86, this package will be reinstalled and you will need to remove it again. This solves the "DRI" problem. |
so pretty much do
$ rpm -e XFree86-Mesa-libGL
When you do updates yum etc, XFree86-Mesa_libGL is a dependency, for many things and will re install its self if u let it, But just remove it again.
|
|
Back to top |
|
|
Cyan`
Joined: 22 Nov 2003
Posts: 6
|
Posted: Thu Nov 27, 2003 8:36 am Post subject: |
|
|
Quote: |
So my friends, now you see the problem with closed source drivers. |
Too true, Luke. If you want your software to be the most benefit to the most number of people, it should be free. Unfortunately, nvidia doesn't see it that way.
I must say, the lack of free drivers for nvidia cards would probably be my overriding motivation in buying ati for my next machine.
My problem is different to the one you experience: it is not just that you cannot see anything; X actually crashes and gdm reloads every second time you run quake. Otherwise I'd try the xlibsmesa business.
Thanks for all your help.
|
|
Back to top |
|
|
Guest
|
Posted: Wed Dec 03, 2003 10:36 am Post subject: |
|
|
Luke: dkure is right, i had exactly the same problem and solved it by rpm -e --nodeps XFree86-Mesa-libGL and then restart. It is Fedora, not Fuh. Check the link he posted
Cyan: sorry i can't help, at least you may want to edit your /etc/inittab to runmode 3 instead of 5? so you don't experience gdm reloading everytime x crashes... gl |
|
Back to top |
|
|
fizz
Joined: 11 Sep 2003
Posts: 28
|
Posted: Thu Dec 11, 2003 12:22 am Post subject: |
|
|
make sure the DRI and AGPGART are NOT compiled in your kernel. This will cause problems in other games as well. Also, make sure you remove any references to DRI in your XF86Config file as those are direct rendering options for ATI based Cards. You might also try doing the following
xfree -configure > xf86config.new
then
xfree -config xf86config.new
and see if the auto detected config works any better.
I see a ton of threads on the gentoo forums about glx/x/nvidia, and when i started with linux i had my problems too |
|
Back to top |
|
|
fM!phil
Joined: 24 Jan 2003
Posts: 32
Location: nyc
|
Posted: Mon Dec 22, 2003 10:35 am Post subject: |
|
|
My nvidia shit works fine. I've a geforce ti4600 and fuhquake-gl.glx (and .x11) both pump out max fps just like in 98se. I've latest drivers from nvidia.com (not some third party site...). I'm on gentoo with 2.4.20 (gonna upgrade later) with proc optimizations and haven't had a problem yet :)
Maybe u just have an old card thats why?
Although it is a good point that NVidia should adopt the open source model for their drivers as ATI has done (didnt know ATI was open sourcing their drivers now...)
Good luck |
|
Back to top |
|
|
oldman
Joined: 10 Sep 2002
Posts: 636
|
Posted: Mon Dec 22, 2003 10:23 pm Post subject: |
|
|
its been mentioned before
nvidia cant open source their drivers because they are full of patented and copyrighted code that they dont own
ts like Valve would have to ask id before they could release the hl1 source code cos its full of id code |
|
Back to top |
|
|
oldman
Joined: 10 Sep 2002
Posts: 636
|
Posted: Mon Dec 22, 2003 10:33 pm Post subject: |
|
|
and also, im pretty sure ATI's drivers are not open source
they once released 'some' code for Rage Pro (old card) but other than that, i've not seen anything recently |
|
Back to top |
|
|
orb
Joined: 20 Dec 2003
Posts: 9
Location: russia
|
Posted: Tue Dec 23, 2003 5:34 am Post subject: |
|
|
Linux: CRUX 1.2, uname -a: Linux localhost 2.4.23 #8 Tue Dec 16 22:49:47 MSK 2003 i686 unknown unknown GNU/Linux
Video: TNT2/32Mb, drivers from NVIDIA-Linux-x86-1.0-4496-pkg2.run
Fuhquake compiled 3 days ago.(build 664 Linux:GL)
Fuhquake runs fine for me. I can start/quit/run other apps many times - no crash.
about core:
run "ulimit -c unlimited" in xterm before running fuhquake, or put it into your .bashrc / .bash_profile |
|
Back to top |
|
|
|