GNOME Bugzilla – Bug 89822
crash while multiple quick clicks
Last modified: 2012-01-31 23:26:32 UTC
Package: gnome-games Severity: normal Version: 2.0.1 Synopsis: crash while multiple quick clicks Bugzilla-Product: gnome-games Bugzilla-Component: aisleriot BugBuddy-GnomeVersion: 2.0 (2.0.1) Description: lets see if anyone else can reproduce this. Looks kind of random, but it happened while I was double clicking on the cards really fast to send them up home in seahaven Debugging Information: Backtrace was generated from '/opt/gnome2/bin/sol' [New Thread 1024 (LWP 780)] 0x40b1a1e9 in __wait4 () from /lib/libc.so.6
+ Trace 25836
Thread 1 (Thread 1024 (LWP 780))
------- Bug moved to this database by unknown@bugzilla.gnome.org 2002-08-03 22:24 ------- Reassigning to the default owner of the component, zana@webwynk.net.
This looks like the first report of this stack trace FWIW.
maybe this is libguile related? I don't know. It happened again a couple times tonight, only when double clicking though.
*** Bug 90905 has been marked as a duplicate of this bug. ***
Started sol from window twice. Crashed both times as in description with the following message: ERROR: In procedure car: ERROR: Wrong type argument in position 1: ()
When I start from the command line, I get that error message when aisleriot crashes. Almost any layout, and yes, clicking quickly seems to be involved here, too. This is on a RH "null" system and with gnome-games-2.0.3-2 rpm from RH.
This bug is caused when you start a move, then double click. Doing something like: gconftool-2 -s /desktop/gnome/peripherals/mouse/double_click -t int 1000 should help trigger it.
It still happens with gnome-games 2.0.4, I got the above mentioned error message just after clicking the "new game" button after a succesful game of klondike (I had been doing a lot of double clicks just before-hand to clear the deck and I have sometimes seen the program crash while double clicking a lot).
Created attachment 11080 [details] [review] A fix for the double-click bug #89822 in aisleriot
Just a few notes on the proposed fix. a) I don't have CVS access so no one should assume I'm going to make sure it is applied. b) This bug (see the patch for exactly what it was) meant that the press_data->status field wasn't set properly for the second click. Hence the motion_notify_event routine in events.c was trying to call the button-pressed routine with an empty card list. Most of the card games don't check to see if it's empty so you have cases like in klondike.scm where the code attempts to take it's car, hence the error message.
Aisleriot was crashing quite often on my laptop due to this, whereas it ran quite well on my desktop -- perhaps the problem is aggravated by certain timings. In any case, I applied to attached fix to gnome-games-2.02 sources, and can confirm that the problem is fixed. Please apply to CVS.
Just a quick note about how to reproduce the bug (to further encourage application of the patch). First, get the program into a situation where a double-click is expected to do something, for example go into Klondike and keep clicking new until an ace appears. Perform a normal double-click on the ace but before releasing the mouse button the second time stop and hold it down. The moment you move the mouse the program will crash (assuming the patch hasn't been applied).
I'm planning on commiting this at lunch, don't worry! :)
Applied to HEAD, thanks.
*** Bug 94495 has been marked as a duplicate of this bug. ***
*** Bug 94494 has been marked as a duplicate of this bug. ***
*** Bug 96254 has been marked as a duplicate of this bug. ***
*** Bug 97452 has been marked as a duplicate of this bug. ***
*** Bug 102336 has been marked as a duplicate of this bug. ***
*** Bug 102999 has been marked as a duplicate of this bug. ***
*** Bug 105435 has been marked as a duplicate of this bug. ***
*** Bug 108734 has been marked as a duplicate of this bug. ***
*** Bug 104936 has been marked as a duplicate of this bug. ***
*** Bug 103548 has been marked as a duplicate of this bug. ***
*** Bug 117032 has been marked as a duplicate of this bug. ***
This bug is being reassigned to the "general" component so we can close the aisleriot bugzilla component. Apologies for the mass email!