Bug 4688 - Crash on select a lot games
: Crash on select a lot games
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/pysol)
: unstable
: all Linux
: P3 normal
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2004-07-05 16:14 by
Modified: 2007-01-18 21:44 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2004-07-05 16:14:23
[eugene@eugene-home eugene]$ rpm -qa|grep pysol
pysol-sound-server-3.00-alt4
pysol-4.82-alt3
[eugene@eugene-home eugene]$ rpm -qa|grep ^python|sort
python-2.3.3-alt10
python-base-2.3.3-alt10
python-dev-2.3.3-alt10
python-doc-2.3.3-alt1
python-info-2.3.3-alt10
python-modules-2.3.3-alt10
python-modules-bsddb-2.3.3-alt10
python-modules-compiler-2.3.3-alt10
python-modules-curses-2.3.3-alt10
python-modules-email-2.3.3-alt10
python-modules-encodings-2.3.3-alt10
python-modules-hotshot-2.3.3-alt10
python-modules-logging-2.3.3-alt10
python-modules-tkinter-2.3.3-alt10
python-modules-xml-2.3.3-alt10
python-strict-2.3.3-alt10
python-tools-i18n-2.3.3-alt10
python-tools-idle-2.3.3-alt10
python-tools-modulator-2.3.3-alt10

При выборе многих игр выдает ошибки вроде следующей:
  Internal error. Please report this bug:
  exception.TypeError:
unbound method createGame() must be called with Klondike instance as first
argument (got EightTimesEight instance instead)
и вылетает. После этого запустить его можно только после удаления ~/.pysol/ с
потерей всех настроек и статистики.
Вот список игр, на которых это воспроизводится:
  8 x 8, Achtmal Acht, American Toad, Baby Spiderette, Backer's Dozen, Batsford,
Big Harp, Black Widow, Blind Alleys, Brunswick, Busy Aces, Casino Klondike,
Chameleon, Chessboard, Corona, Courtyard, Cruel, Deuces, Die Russische, Die
Schlange, Double Canfield, Double Klondike by Threes, Double Rail, Eastcliff,
Forty and Eight, Free Napoleon, Gargantua, Good Measure, Grandmother's Game,
Ground for a Divorce, Indian, Irmgard, Klondike by Threes, Lady Betty, Little
Forty, Lucas, Maria, Martha, Midshipman, Milligan Cell, Napoleon, Pas Seul,
Peek, Poker Shuffle, Quadrangle, Rainbow, Rainfall, Red and Black, Scorpion,
Simple Simon, Single Rail, Spanish Patience, Spider, Spiderette, Stalactites,
Steps, Storehouse, Three Shuffles and a Draw, Thumb and Pouch, Trefoil,
Variegated Canfield, Vegas Klondike, Waning Moon, Wasp, Westcliff, Whitehead,
Will o'the Wisp, Zebra
------- Comment #1 From 2004-07-05 16:39:23 -------
По всему похоже, что это те игры, которые имеются в меню выбора, но реально
отсутствующие. Надо патчить исходники :(
------- Comment #2 From 2004-07-05 17:17:27 -------
Нет, эти игры в исходниках есть (я немного поковырялся). Проблема в том, что
там
довольно сложная система наследования. Ошибка возникает при вызове методов
класса - родителя, которые перекрыты (конструкция вида BaseClass.Method(self,
...)). Почему такая конструкция не работает в данном случае - не знаю.
------- Comment #3 From 2004-07-07 04:57:32 -------
Не, на таком уровне в python я не спец. Я пакет-то вытащил из orphaned только
потому, что некоторые игры из него понравились. А уж настолько серьезно
перетряхивать потроха исходников моих знаний явно недостаточно. Летом как бы
обещается бета пятой версии pysol, может там что сделают?
------- Comment #4 From 2004-07-12 20:38:27 -------
Кажется я нашел решение. Вот кусок дебиановского патча, который исправляет
положение:

---- pysol-4.82.orig/src/main.py
+++ pysol-4.82/src/main.py
@@ -92,7 +92,7 @@

     # try to load plugins
     if not "--noplugins" in args[1:]:
-        for dir in (os.path.join(app.dataloader.dir, "games"),
+        for dir in (#os.path.join(app.dataloader.dir, "games"),
                     os.path.join(app.dataloader.dir, "plugins"),
                     app.dn.plugins):
             try:

Проблема в том, что файлы из каталога games импортируются дважды - из pysol.py
и
из main.py.
------- Comment #5 From 2004-07-13 18:39:32 -------
Нда, как все просто, когда знаешь куда смотреть :)

Патч приложен к сборке pysol-4.82-alt4. Ушло в incoming
------- Comment #6 From 2007-01-18 21:44:26 -------
*** Bug 1412 has been marked as a duplicate of this bug. ***