Ticket #508 (new defect)

Opened 9 years ago

Last modified 6 years ago

Pychan dropdown menus crash FIFE-based client on win32

Reported by: mvbarracuda Owned by: FIFE
Priority: normal Milestone: 0.3.5
Component: engine/core/gui Version: trunk
Severity: normal Keywords: PARPG, guichan, pychan, dropdown
Cc: Blocked By:
Blocking: Time planned:
Time remaining: Time spent:

Description (last modified by chewie) (diff)

FIFE version number

Trunk. Not sure when the problem was introduced but it used to work fine with former FIFE versions. Built FIFE from source with either mingw or MSVC 2008 (can be reproduced with both compilers)

Platform and OS

Win7 x64, ActivePython? 2.7.0.2 (32bit).

Other PARPG devs couldn't reproduce the bug on their Linux systems, so it's either a win32 only problem or it simply shows up just on a few systems. A developer who could reproduce the bug on a Linux system might get a better backtrace than I get on win32. This bug can be reproduced on my desktop system and my notebook, both running win7 x64.

How to reproduce

  • Update FIFE and PARPG (http://parpg-svn.cvsdude.com/parpg/trunk/game/) to latest trunk revision (rev 674)
  • Build FIFE on win32 with either mingw or MSVC 2008
  • Start PARPG by running run.py
  • Choose "New game"
  • Press ESC and select "Options" in the menu that pops up
  • Try to click on any of the dropdown lists in the menu, all of them will crash PARPG

Unfortunately I couldn't reproduce the behaviour with Rio de hola or any other FIFE demo, but as we didn't change any of our menu code lately, I think this bug is caused by a change to FIFE itself.

Expected result

Dropdown list should be shown when you click on it.

Actual result

Python crashes with an unexpected error. FIFE spits out "terminate called after throwing an instance of 'gcn::Exception'. This points towards guichan / pychan.

Notes

The bug doesn't depend on the used renderer; I could reproduce it for SDL & OpenGL.

I remembered that the UH devs faced similar issues with guichan in the past and decided to remove all dropdown lists in favour of other widget elements. It looks like they didnd't file a ticket for it at the FIFE trac, at least I couldn't find one. That's why I created a new one.

I couldn't get a backtrace with gdb when building FIFE with mingw, it simply says: "Program exited with code 03." And using bt/where after that simply spits out: "No stack".

However I could get a backtrace with the MSVC 2008 debugger. I'm not sure what's the top of the stack and what's the bottom, but it should help to get an idea what's the problem:

 	_fife.pyd!FIFE::GLImage::setClipArea(const FIFE::RectType<int> & cliparea={...}, bool clear=true)  Line 244	C++ (glimage.cpp)
	_fife.pyd!FIFE::Image::clearClipArea()  Line 173	C++ (image.cpp)
 	_fife.pyd!FIFE::Image::popClipArea()  Line 157	C++ (image.cpp)
 	_fife.pyd!FIFE::RenderBackend::popClipArea()  Line 65	C++ (renderbackend.cpp)

Change History

comment:1 Changed 9 years ago by chewie

  • Description modified (diff)

comment:2 Changed 9 years ago by anonymous

http://code.google.com/p/guichan/issues/detail?id=59 This link describes the drop down problem. And no surprise both unknown horizon and FIFE (phoku) devs have commented on the bug. Phoku's comment at the end is interesting and it sounds like something that is fife specific.

comment:3 Changed 9 years ago by prock

I went through the guichan ticket... Unfortunately Phoku has already implemented the fix by introducing timers into the mix so the events always get executed the next frame. From the output of the backtrace it doesn't look like the same problem as described in the guichan ticket you provided. This will have to be investigated further.

comment:4 Changed 8 years ago by mvbarracuda

Some news concerning the bug: we found out that the dropdown crash only happens if you use the dropdown menu while the map is actually rendered. If you rather start PARPG and bring up the options menu (>> OPTIONS) before actually starting the game (via >> NEW GAME >> NEW GAME), you can actually use the dropdown menu just fine.

As this bug might be caused by PARPG code, I've added a bug ticket to our Trac bug milestone as well and we'll try to investigate what's wrong. Any help from the FIFE team would be of course still appreciated trying to track down the bug.

Bug ticket in PARPG's bug milestone: http://parpg-trac.cvsdude.com/parpg/ticket/291

comment:5 Changed 8 years ago by helios2000

This seems similar to the guichan issue 138. http://code.google.com/p/guichan/issues/detail?id=138

comment:6 Changed 8 years ago by prock

  • Milestone changed from Proposal to 0.3.4

Moving to 0.3.4

comment:7 Changed 7 years ago by chewie

(In [3869]) - more features for CellView? editor plugin:

  • added manipulation of cell blocking type (restricted to expert mode)
  • added manipulation of default cost multiplier of the current selected cell
  • added manipulation of speed multiplier of the current selected cell
  • on cell select, blocking type, cost & speed multiplier of the cell are read out & updated in the plugin gui
  • Happy birthday Helios :)
  • this is an update for refs #508

comment:8 Changed 6 years ago by prock

  • Milestone changed from 0.3.4 to 0.3.5

Moving to 0.3.5 as we are preparing to release 0.3.4

Note: See TracTickets for help on using tickets.