Bug 475 - Crash on micro break
Status:
RESOLVED FIXED
Component:
Core :: Win32
Version:
1.8.1
Hardware:
PC All
Importance:
P2 normal
Target Milestone:
---
Assignee:
Raymond Penners
URL:
Depends on:
Blocks:
Reported:
Aug 15 2005 13:59:04 UTC
by:
Ruud Schellekens
Modified:
Jan 22 2006 13:33:48 UTC
CC List:
Andrea Aime
Davor Cubranic
Jean Privett
Pavlo Korzhyk
IdWhoWhenSizeType
39Crashlog
Andrea AimeSep 20 2005 14:31:24 UTC4607text/plain
40Crashlog
Jean PrivettSep 25 2005 19:06:18 UTC4820text/plain
WhoWhenWhatRemovedAdded
Andrea AimeSep 20 2005 14:30:25 UTCccAndrea Aime
Rob CaelersSep 23 2005 20:44:57 UTCccJean Privett
Rob CaelersSep 23 2005 20:52:33 UTCstatusNEWASSIGNED
op_sysWindows 2000All
versionunspecified1.8.1
Rob CaelersSep 28 2005 08:22:09 UTCstatusASSIGNEDRESOLVED
resolutionFIXED
Rob CaelersJan 15 2006 13:02:45 UTCccPavlo Korzhyk
Rob CaelersJan 22 2006 13:33:48 UTCccDavor Cubranic
Description
Ruud Schellekens  Aug 15 2005 13:59:04 UTC
The bug fix in 1.8.1 makes workrave crash every time I get a micro break. 1.8.0
work fine though. Perhaps the fix breaks other stuff? I run Win 2000 and
workrave 1.8.1. I copied the 2 log files workrace created below. I can reproduce
the crash every time I run workrave.

Crash log created on 11/08/2005 at 17:54:21.

version = 1.8.1
compile date = Jul 31 2005
compile time = 11:20:54
features = DISTRIBUTION EXERCISES GNET GNET2 GTK_MULTIHEAD 


code = c0000005
flags = 0
address = 56141a
params = 2
C:\Program Files\Workrave\lib\Workrave.exe caused an Access Violation at
location 0056141a reading from location 00000000

Registers:

eax=00000000 ebx=01e765a8 ecx=01211790 edx=01e9c818 esi=01e8e868 edi=00000000
eip=0056141a esp=0022f6f8 ebp=0022f6f8 iopl=0         nv up ei pl nz na po nc
cs=001b  ss=0023  ds=0023  es=0023  fs=0038  gs=0000             efl=00210206

Stack trace:

PC        Frame     Ret
0056141A  0022F6F8  004540DC
004540DC  0022F718  00404308
00404308  0022F798  00409AF7
00409AF7  0022F7FC  00409891
00409891  0022F874  004016BF
004016BF  0022F890  004022AD
004022AD  0022F8A0  00403754
00403754  0022F8DC  00433BBB
00433BBB  0022F8F4  00433839
00433839  0022F90C  00433695
00433695  0022F924  00429CA7
00429CA7  0022F940  00402D30
00402D30  0022F950  00572DEF
00572DEF  0022F960  0056CA03
0056CA03  0022F96C  0057332A
0057332A  0022F97C  0053F487
0053F487  0022F99C  00349D02
00349D02  0022F9CC  00348197
00348197  0022FA0C  00348C90
00348C90  0022FA1C  00348F37
00348F37  0022FA4C  003493DA
003493DA  0022FA7C  00A1A91A
00A1A91A  0022FA9C  00466F77
00466F77  0022FAAC  00466DB6
00466DB6  0022FABC  00402C65
00402C65  0022FAE0  0041E32A
0041E32A  0022FAF4  0041E380
0041E380  0022FEF8  00558FFA
00558FFA  0022FF78  004011E7
004011E7  0022FFB0  00401258
00401258  0022FFC0  7C598989
7C598989  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 = 2
  value = flags
  string data = 32

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 = 1
  value = flags
  string data = 0

key = Software\Workrave\gui\breaks
  value = block_mode
  string data = 2

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 = 5

key = Software\Workrave\gui\main_window
  value = x
  string data = 256
  value = y
  string data = 256
  value = head
  string data = 0
  value = cycle_time
  string data = 10
  value = enabled
  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\timers

key = Software\Workrave\timers\daily_limit
  value = limit
  string data = 18000
  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 = 360
  value = auto_reset
  string data = 30
  value = reset_pred
  string data = 
  value = snooze
  string data = 210
  value = activity_sensitive
  string data = 1

key = Software\Workrave\timers\rest_break
  value = limit
  string data = 2820
  value = auto_reset
  string data = 480
  value = reset_pred
  string data = 
  value = snooze
  string data = 240
  value = activity_sensitive
  string data = 0

---------------------------------------------------------------------------
---------------------------------------------------------------------------

Crash log created on 11/08/2005 at 18:04:53.

version = 1.8.1
compile date = Jul 31 2005
compile time = 11:20:54
features = DISTRIBUTION EXERCISES GNET GNET2 GTK_MULTIHEAD 


code = c0000005
flags = 0
address = 56141a
params = 2
C:\Program Files\Workrave\lib\Workrave.exe caused an Access Violation at
location 0056141a reading from location 00000000

Registers:

eax=00000000 ebx=012774f0 ecx=01211720 edx=01283c38 esi=012772d0 edi=00000000
eip=0056141a esp=0022f6f8 ebp=0022f6f8 iopl=0         nv up ei pl nz na po nc
cs=001b  ss=0023  ds=0023  es=0023  fs=0038  gs=0000             efl=00010206

Stack trace:

PC        Frame     Ret
0056141A  0022F6F8  004540DC
004540DC  0022F718  00404308
00404308  0022F798  00409AF7
00409AF7  0022F7FC  00409891
00409891  0022F874  004016BF
004016BF  0022F890  004022AD
004022AD  0022F8A0  00403754
00403754  0022F8DC  00433BBB
00433BBB  0022F8F4  00433839
00433839  0022F90C  00433695
00433695  0022F924  00429CA7
00429CA7  0022F940  00402D30
00402D30  0022F950  00572DEF
00572DEF  0022F960  0056CA03
0056CA03  0022F96C  0057332A
0057332A  0022F97C  0053F487
0053F487  0022F99C  00349D02
00349D02  0022F9CC  00348197
00348197  0022FA0C  00348C90
00348C90  0022FA1C  00348F37
00348F37  0022FA4C  003493DA
003493DA  0022FA7C  00A1A91A
00A1A91A  0022FA9C  00466F77
00466F77  0022FAAC  00466DB6
00466DB6  0022FABC  00402C65
00402C65  0022FAE0  0041E32A
0041E32A  0022FAF4  0041E380
0041E380  0022FEF8  00558FFA
00558FFA  0022FF78  004011E7
004011E7  0022FFB0  00401258
00401258  0022FFC0  7C598989
7C598989  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 = 2
  value = flags
  string data = 32

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 = 1
  value = flags
  string data = 0

key = Software\Workrave\gui\breaks
  value = block_mode
  string data = 2

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 = 5

key = Software\Workrave\gui\main_window
  value = x
  string data = 256
  value = y
  string data = 256
  value = head
  string data = 0
  value = cycle_time
  string data = 10
  value = enabled
  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\timers

key = Software\Workrave\timers\daily_limit
  value = limit
  string data = 18000
  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 = 360
  value = auto_reset
  string data = 30
  value = reset_pred
  string data = 
  value = snooze
  string data = 210
  value = activity_sensitive
  string data = 1

key = Software\Workrave\timers\rest_break
  value = limit
  string data = 2820
  value = auto_reset
  string data = 480
  value = reset_pred
  string data = 
  value = snooze
  string data = 240
  value = activity_sensitive
  string data = 0
Comment 1
Rob Caelers  Aug 24 2005 21:03:41 UTC
Weird. I will try to copy your setting and try to reproduce.

stack trace:

PC        Frame     Ret
0056141A  0022F6F8  004540DC Gtk::Widget::gobj()
004540DC  0022F718  00404308 Gtk::Container::add(Gtk::Widget&)
00404308  0022F798  00409AF7 GtkUtil::create_image_button(char const*, char const*)
00409AF7  0022F7FC  00409891 MicroBreakWindow::create_restbreaknow_button(bool)
00409891  0022F874  004016BF MicroBreakWindow::create_gui()
004016BF  0022F890  004022AD BreakWindow::init_gui()
004022AD  0022F8A0  00403754 BreakWindow::start()
00403754  0022F8DC  00433BBB GUI::start_break_window(BreakId, bool)
00433BBB  0022F8F4  00433839 BreakControl::goto_stage(BreakControl::BreakStage)
00433839  0022F90C  00433695 BreakControl::goto_stage(BreakControl::BreakStage)
00433695  0022F924  00429CA7 BreakControl::heartbeat()
Comment 2
Andrea Aime  Sep 20 2005 14:30:04 UTC
I have exactly the same problem. Crashes with win2000, but works fine on another
pc with XP. I'm attaching my crashlog
Comment 3
Andrea Aime  Sep 20 2005 14:31:24 UTC
Created attachment 39
Crashlog
Comment 4
Andrea Aime  Sep 20 2005 14:34:45 UTC
By the way, don't know if it's relevant, but I have also Gimp 2.2 and Inkscape
installed (both gtk2+ based apps). 
The first time I've installed workrave without gtk, but it crashed, so I
reistalled it with gtk included guessing that maybe it was a gtk problem, but
have the same result.

Another strange thing is that I've set to microbreak time to 10 seconds, but the
micro break dialog starts from 30, so I guess it's using the default values, and
crashes while counting down.
Comment 5
Andrea Aime  Sep 21 2005 16:52:08 UTC
I can confirm 1.8.0 works fine. The crash source must be tracked in the changes
between 1.8.0 and 1.8.1.
Comment 6
Rob Caelers  Sep 21 2005 21:15:13 UTC
I installed gimp 2.2 and gtk 2.6.9. Still no crashes... I will have a closer
look at the changes between 1.8.0 and 1.8.1. As far as I know, only an addtional
check has been added (to avoid a NULL pointer dereference)

What version of gtk did you install? Did you install the gtk that comes with
Workrave?
Comment 7
Andrea Aime  Sep 21 2005 22:37:17 UTC
That's more or less what happened:
- had gtk+ already installed (don't know which version thought... the oldest one
  was provided with Gimp 2.0, but then I've installed 2.2 and a version of 
  Inkscape and I believe one of them had its own version of gtk+ along)
- installed workrave 1.8.1 without gtk+ -> crash on micro-break
- installed workrave 1.8.1 with its gtk+ -> crash on micro-break
- installed workrave 1.8.0 (I believe with its gtk+, but I'm not sure) -> no crash

If you want me to try out something, just ask.
Comment 8
Rob Caelers  Sep 23 2005 20:44:57 UTC
*** Bug 481 has been marked as a duplicate of this bug. ***
Comment 9
Rob Caelers  Sep 23 2005 20:52:33 UTC
YES. I finally managed to reproduce the bug! Temporary workaround:

- Locate gtkrc (probably in "Programs Files/Common Files/GTK/2.0/etc/gtk-2.0")
- Change "gtk-button-images=0"  into "gtk-button-images=1"
Comment 10
Jean Privett  Sep 24 2005 00:47:03 UTC
FYI - my gtkrc file only had one line in it:

gtk-font-name="sans 8" 

I've added the line you specify; hope it works.
Comment 11
Rob Caelers  Sep 24 2005 10:34:25 UTC
Please try
http://workrave.org/download/snapshots/20050923/workrave-win32-20050923-installer.exe
Comment 12
Jean Privett  Sep 25 2005 19:06:18 UTC
Created attachment 40
Crashlog

Crashlog after adding specified line to gtkrc file
Comment 13
Jean Privett  Sep 25 2005 19:08:15 UTC
Will download and try the 9/23 installer file.
Comment 14
Jean Privett  Sep 28 2005 04:01:34 UTC
Actually, because of download problems, I ended up installing the 9/26 build
(win32 installer).  It works like a charm.  All my micro breaks and rest breaks
are fine, whether taken, forced, delayed, or postponed.
Comment 15
Rob Caelers  Sep 28 2005 08:22:09 UTC
Another bug resolved :-) Thanks
Comment 16
Rob Caelers  Jan 15 2006 13:02:45 UTC
*** Bug 502 has been marked as a duplicate of this bug. ***
Comment 17
Rob Caelers  Jan 22 2006 13:33:48 UTC
*** Bug 505 has been marked as a duplicate of this bug. ***