Bug 413 - Crash when exercises were manually invoked during the warning screen of a mini break
Status:
RESOLVED FIXED
Component:
Core :: Win32
Version:
1.6.1
Hardware:
PC Windows 2000
Importance:
P4 normal
Target Milestone:
---
Assignee:
Raymond Penners
URL:
Depends on:
Blocks:
Reported:
Jul 12 2004 05:49:17 UTC
by:
Dennis
Modified:
Mar 10 2008 20:58:00 UTC
| Who | When | What | Removed | Added |
|---|---|---|---|---|
| Rob Caelers | Aug 19 2004 13:02:11 UTC | status | NEW | ASSIGNED |
| Rob Caelers | Aug 27 2007 14:03:44 UTC | priority | P2 | P4 |
| Rob Caelers | Mar 10 2008 20:58:00 UTC | status | ASSIGNED | RESOLVED |
| resolution | FIXED |
Description
Dennis Jul 12 2004 05:49:17 UTC
Crash when exercises were manually invoked during the warning screen of a mini break. The crashlog: Crash log created on 12/07/2004 at 14:42:40. version = 1.6.1 compile date = May 13 2004 compile time = 21:17:19 features = DISTRIBUTION EXERCISES GNET GNET2 GTK_MULTIHEAD code = c0000005 flags = 0 address = 546326 params = 2 \\Ws029644\c$\Program Files\Workrave\lib\Workrave.exe caused an Access Violation at location 00546326 reading from location 0008010d Registers: eax=00080101 ebx=011957a8 ecx=00000050 edx=00000005 esi=01199490 edi=003a11a8 eip=00546326 esp=0022f8e0 ebp=0022f8fc iopl=0 nv up ei pl zr na po nc cs=001b ss=0023 ds=0023 es=0023 fs=0038 gs=0000 efl=00010246 Stack trace: PC Frame Ret 00546326 0022F8FC 00402B21 00402B21 0022F90C 00542C93 00542C93 0022F91C 00544B4F 00544B4F 0022F93C 00512843 00512843 0022F97C 0034C73B 0034C73B 0022F9AC 0034D07C 0034D07C 0022F9FC 0034D6E3 0034D6E3 0022FA3C 0034A21F 0034A21F 0022FA7C 009CD109 009CD109 0022FA9C 00462961 00462961 0022FAAC 004627AF 004627AF 0022FACC 00402A41 00402A41 0022FAF0 0041AE78 0041AE78 0022FB04 0041AEF0 0041AEF0 0022FF08 0053467B 0053467B 0022FF80 00401182 00401182 0022FFB0 00401038 00401038 0022FFC0 7C581AF6 7C581AF6 0022FFF0 00000000 Registry dump: key = Software\Workrave key = Software\Workrave\distribution value = port string data = 27273 value = reconnect_attempts string data = 5 value = reconnect_interval string data = 15 key = Software\Workrave\gui key = Software\Workrave\gui\applet value = cycle_time string data = 10 value = enabled string data = 1 key = Software\Workrave\gui\applet\daily_limit value = position string data = 0 value = flags string data = 0 key = Software\Workrave\gui\applet\micro_pause value = position string data = 0 value = flags string data = 0 key = Software\Workrave\gui\applet\rest_break value = position string data = 0 value = flags string data = 0 key = Software\Workrave\gui\breaks value = block_mode string data = 0 key = Software\Workrave\gui\breaks\daily_limit value = max_preludes string data = 3 value = max_postpone string data = -1 value = ignorable_break string data = 1 value = enabled string data = 1 value = exercises string data = 0 key = Software\Workrave\gui\breaks\micro_pause value = max_preludes string data = 3 value = max_postpone string data = -1 value = ignorable_break string data = 1 value = enabled string data = 1 value = exercises string data = 0 key = Software\Workrave\gui\breaks\rest_break value = max_preludes string data = 3 value = max_postpone string data = -1 value = ignorable_break string data = 1 value = enabled string data = 1 value = exercises string data = 3 key = Software\Workrave\gui\main_window value = x string data = -82 value = y string data = -71 value = head string data = 0 value = cycle_time string data = 10 value = enabled string data = 0 value = always_on_top string data = 0 key = Software\Workrave\gui\main_window\daily_limit value = position string data = 2 value = flags string data = 0 key = Software\Workrave\gui\main_window\micro_pause value = position string data = 0 value = flags string data = 0 key = Software\Workrave\gui\main_window\rest_break value = position string data = 1 value = flags string data = 0 key = Software\Workrave\sound value = enabled string data = 1 value = device string data = soundcard key = Software\Workrave\timers key = Software\Workrave\timers\daily_limit value = limit string data = 14400 value = auto_reset string data = 0 value = reset_pred string data = day/4:00 value = snooze string data = 1200 value = activity_sensitive string data = 1 key = Software\Workrave\timers\micro_pause value = limit string data = 300 value = auto_reset string data = 30 value = reset_pred string data = value = snooze string data = 150 value = activity_sensitive string data = 1 key = Software\Workrave\timers\rest_break value = limit string data = 2700 value = auto_reset string data = 300 value = reset_pred string data = value = snooze string data = 180 value = activity_sensitive string data = 1
Comment 1
Rob Caelers Aug 19 2004 13:02:11 UTC
I haven't been able to reproduce this bug. Can you reproduce this bug? Did you use the menu of the system tray icon or the menu of the status window? It seems that workrave crashes when emitting the heartbeat signal. The exercises panel connects to this signal at creation. If win32 messages (from the sys tray menu) are handled on a separate thread, this might be a race condition... 00546326 SigC::Signal0<void, SigC::Marshal<void> >::emit_(void*) 00402B21 GUI::on_timer() 00542C93 SigC::ObjectSlot0_<bool, GUI>::proxy(void*) 00544B4F SigC::Slot0<bool>::operator()()
Comment 2
Rob Caelers Mar 10 2008 20:58:00 UTC
This separate thread I mentioned is no longer used. So I assume that the race condition and crash are gone. (previously one thread was emitting a signal while the other was connecting to the signal). Closing bug. feel free to reopen if you still manage to crash workrave by starting the exercises.