GNOME Bugzilla – Bug 416255
aisleriot crashes by double-clicking
Last modified: 2012-01-31 23:29:32 UTC
The bug has been opened on https://launchpad.net/bugs/88201 "Binary package hint: gnome-games In AisleRiot Solitaire, the Plait game can be crashed by rapidly double-clicking the waste pile. This requires free space on the desk in which to place those cards, but is easily reproducible provided you can get close to the end of the game. I first noticed this bug in Dapper on an old laptop, but have upgraded to a new laptop and installed Edgy. The problem still exists. I'm attaching the generated bug report. http://librarian.launchpad.net/6544294/aisleriot-bugreport.txt bug report Memory status: size: 61255680 vsize: 0 resident: 61255680 share: 0 rss: 20406272 rss_rlim: 0 CPU usage: start_time: 1172532984 rtime: 0 utime: 423 stime: 0 cutime:386 cstime: 0 timeout: 37 it_real_value: 0 frequency: 0 Variation: Plait Seed: 2491673963 Scheme error: (cdr Wrong type argument in position ~A: ~S (1 ()) #f) Scheme tag: wrong-type-arg Backtrace: In unknown file: ?: 0* [button-double-clicked 9] In /usr/share/sol-games/plait.scm: 300: 1* (let ((dc-slots #)) (if (not #) (let # #) #f)) 303: 2 (if (not (home? source)) (let (#) (if valid-slot # #f)) #f) ... 311: 3 (begin (add-cards! valid-slot (list (remove-card source))) #t) 312: 4* [add-cards! 13 ... 312: 5* [list ... 312: 6* [remove-card 9] In /usr/share/sol-games/sol.scm: 226: 7 (let ((cards (get-cards slot-id))) (set-cards! slot-id (cdr cards)) ...) 227: 8* [set-cards! 9 ... 227: 9* [cdr ()] Deck State: Slot 0 (2 10 #f) Slot 1 (Empty) Slot 2 (1 8 #f) Slot 3 (3 11 #f), (3 12 #f), (3 13 #f), (3 1 #f), (3 2 #f) (3 3 #f), (3 4 #f), (3 5 #f), (3 6 #f), (3 7 #f) (3 8 #f), (3 9 #f), (3 10 #f) Slot 4 (3 11 #f), (3 12 #f), (3 13 #f) Slot 5 (0 10 #f) Slot 6 (3 7 #f) Slot 7 (3 2 #f) Slot 8 (0 6 #f) Slot 9 (Empty) Slot 10 (0 7 #t), (3 8 #t), (2 8 #t), (3 4 #t), (3 5 #t) (3 6 #t), (2 7 #t), (3 10 #t), (0 9 #t), (1 9 #t) (2 5 #t), (1 6 #t), (1 10 #t), (2 9 #t), (3 3 #t) (0 3 #t), (1 7 #t), (2 6 #t) Slot 11 (0 11 #f), (0 12 #f), (0 13 #f), (0 1 #f), (0 2 #f) (0 3 #f), (0 4 #f), (0 5 #f), (0 6 #f), (0 7 #f) (0 8 #f), (0 9 #f), (0 10 #f) Slot 12 (0 11 #f), (0 12 #f), (0 13 #f), (0 1 #f), (0 2 #f) Slot 13 (Empty) Slot 14 (0 8 #f) Slot 15 (0 4 #f) Slot 16 (0 5 #f) Slot 17 (2 11 #f), (2 12 #f), (2 13 #f), (2 1 #f), (2 2 #f) (2 3 #f), (2 4 #f), (2 5 #f), (2 6 #f), (2 7 #f) (2 8 #f), (2 9 #f), (2 10 #f) Slot 18 (2 11 #f), (2 12 #f), (2 13 #f), (2 1 #f), (2 2 #f) (2 3 #f), (2 4 #f) Slot 19 (3 1 #f) Slot 20 (3 9 #f) Slot 21 (1 11 #f), (1 12 #f), (1 13 #f), (1 1 #f), (1 2 #f) (1 3 #f), (1 4 #f), (1 5 #f), (1 6 #f), (1 7 #f) (1 8 #f), (1 9 #f), (1 10 #f) Slot 22 (1 11 #f), (1 12 #f), (1 13 #f), (1 1 #f), (1 2 #f) (1 3 #f), (1 4 #f), (1 5 #f) Backtrace was generated from '/usr/libexec/aisleriot' (no debugging symbols found) Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1". (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) [Thread debugging using libthread_db enabled] [New Thread -1225775440 (LWP 13711)] (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) 0xffffe410 in __kernel_vsyscall ()
+ Trace 117030
Thread 1 (Thread -1225775440 (LWP 13711))
Here is the bug report... it said it couldn't sync directly to bugzilla."
Created attachment 84284 [details] [review] immediate fix I was able to reproduce this by freeing a slot in the Plait early in the game and double-clicking the waste while it was still empty. Apparently button-double-clicked doesn't check if the source slot is empty before trying to remove a card from it. Here's a patch for the immediate problem, but this way of fixing it seems awkward to me (all of plait.scm seems awkward to me), and I'm.. well... vaguely anxious.. about this.
Thanks for the bug report and solution to solve the problem. I would like to delay committing this until gnome-games version 2.18.1, because of the current code freeze. While any crash is unacceptable in theory, this crash should not happen often, and therefore it is IMHO safe to delay it until after the code freeze. This is of course unless someone on the release team sees this, and gives the necessary "blessing".
I think delaying it is the right thing, since I'm not totally confident in this solution.
I'm fine with waiting for the code freeze to end, but this actually hits me pretty often when I play Plait. I'm probably the only one in the world who plays it, but I just think it's a brilliant solitaire game.
Thanks for the patch, Vincent. The patch has been applied to SVN trunk. I will backport this to the 2.18.x stable branch, once it has been tested enough in the trunk branch. ..since you are vaguely anxious.. about this :)
*** Bug 549245 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!