Bug 609 - workrave crashed with SIGSEGV in RemoteControl::set_applet()
Status:
RESOLVED FIXED
Component:
GUI :: gtkmm
Version:
1.8.3
Hardware:
PC Linux
Importance:
P2 major
Target Milestone:
---
Assignee:
Rob Caelers
URL:
https://beta.launchpad.net/ubuntu/+source/workrave/+bug/96987
Depends on:
Blocks:
Reported:
Mar 27 2007 17:42:49 UTC
by:
Daniel Holbach
Modified:
Apr 18 2007 21:11:57 UTC
CC List:
Tomas Mraz
WhoWhenWhatRemovedAdded
Rob CaelersMar 27 2007 20:12:22 UTCstatusNEWRESOLVED
resolutionFIXED
Rob CaelersApr 18 2007 21:11:57 UTCccTomas Mraz
Description
Daniel Holbach  Mar 27 2007 17:42:49 UTC
rashed right after logging into X via gdm.

ProblemType: Crash
Architecture: i386
Date: Tue Mar 27 10:55:38 2007
DistroRelease: Ubuntu 7.04
ExecutablePath: /usr/bin/workrave
Package: workrave 1.8.4-1ubuntu1
PackageArchitecture: i386
ProcCmdline: /usr/bin/workrave --oaf-activate-iid=OAFIID:GNOME_Workrave_Factory --oaf-ior-fd=35
ProcCwd: /
ProcEnviron:
 LANG=en_US.UTF-8
 LANGUAGE=en_US:en
 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/games
 SHELL=/bin/bash
Signal: 11
SourcePackage: workrave

#0  0x080caae4 in RemoteControl::set_applet (this=0x819a540, bonobo_applet_control=0x81ec618) at AppletControl.hh:87
No locals.
#1  0xb70fc767 in ORBit_POAObject_invoke (pobj=0x81998d8, ret=0x0, args=0xbfb5e4d0, ctx=0xbfb5e548, data=0xbfb5e5c8, ev=0xbfb5e65c) at poa.c:1142
No locals.
#2  0xb71028d5 in ORBit_OAObject_invoke (adaptor_obj=0x81998d8, ret=0x0, args=0xbfb5e4d0, ctx=0xbfb5e548, data=0xbfb5e5c8, ev=0xbfb5e65c) at orbit-adaptor.c:338
No locals.
#3  0xb70efa1c in ORBit_small_invoke_adaptor (adaptor_obj=0x81998d8, recv_buffer=0x81ec298, m_data=0x8126ce0, data=0xbfb5e5c8, ev=0xbfb5e65c) at orbit-small.c:844
	a = <value optimized out>
	ctx = {parent = {interface = 0x8170198, refs = -1223559804}, mappings = 0xb6edf7fc, children = 0xb6edfbf0, 
  the_name = 0xbfb5e578 "�嵿v\005\020��\230\031\b\230�\036\b�l\022\b�嵿\\浿\005", parent_ctx = 0x1}
	args = (gpointer *) 0xbfb5e4d0
	scratch = (gpointer *) 0xbfb5e4b0
	pretval = (gpointer) 0x0
	retval = (gpointer) 0x0
	send_buffer = <value optimized out>
	orb = (CORBA_ORB) 0x8170110
	tc = (CORBA_TypeCode) 0xbfb5e4d0
	i = <value optimized out>
#4  0xb7100576 in ORBit_POAObject_handle_request (pobj=0x81998d8, opname=0x81ec344 "set_applet", ret=0x0, args=0x0, ctx=0x0, recv_buffer=0x81ec298, ev=0xbfb5e65c) at poa.c:1351
	invoke_data = {small_skel = 0x80d75ef <_ORBIT_skel_small_GNOME_Workrave_WorkraveControl_set_applet>, imp = 0x80cab14}
	poa = (PortableServer_POA) 0x8170198
	cookie = (PortableServer_ServantLocator_Cookie) 0x0
	oid = (PortableServer_ObjectId *) 0x81965a4
	m_data = (ORBit_IMethod *) 0x8126ce0
	small_skel = (ORBitSmallSkeleton) 0x80d75ef <_ORBIT_skel_small_GNOME_Workrave_WorkraveControl_set_applet>
	imp = (gpointer) 0x80cab14
	__PRETTY_FUNCTION__ = "ORBit_POAObject_handle_request"
#5  0xb7100c22 in ORBit_POAObject_invoke_incoming_request (pobj=0x81998d8, recv_buffer=0x81ec298, opt_ev=0xbfb5e65c) at poa.c:1421
	opname = <value optimized out>
	real_ev = {_id = 0xbfb5e638 "\230浿\223\026\020��\230\031\b\230�\036\b\\浿\001", _major = 1, _any = {_type = 0x81998d8, _value = 0xb711dcd0, _release = 112 'p'}}
	ev = (CORBA_Environment *) 0xbfb5e65c
#6  0xb7101693 in ORBit_POA_handle_request (poa=0x8170198, recv_buffer=0x81ec298, objkey=0x81ec2b0) at poa.c:1643
	pobj = (ORBit_POAObject) 0x81998d8
	env = {_id = 0x0, _major = 0, _any = {_type = 0x0, _value = 0x0, _release = 0 '\0'}}
	object_id = {_maximum = 8, _length = 8, _buffer = 0x81ec338 "\005", _release = 0 '\0'}
	__PRETTY_FUNCTION__ = "ORBit_POA_handle_request"
#7  0xb7102a72 in ORBit_handle_request (orb=0x8170110, recv_buffer=0x81ec298) at orbit-adaptor.c:298
	forw_obj = <value optimized out>
	objkey = (ORBit_ObjectKey *) 0x81ec2b0
	adaptor = (ORBit_ObjectAdaptor) 0x8170198
#8  0xb70ebcc7 in giop_connection_handle_input (lcnx=0x8174498) at giop-recv-buffer.c:1308
	buf = (GIOPRecvBuffer *) 0x81ec298
	cnx = <value optimized out>
	__PRETTY_FUNCTION__ = "giop_connection_handle_input"
#9  0xb71096ed in link_connection_io_handler (gioc=0x0, condition=<value optimized out>, data=0x8174498) at linc-connection.c:1387
	rv = <value optimized out>
	n = <value optimized out>
	n_size = <value optimized out>
	cnx = <value optimized out>
#10 0xb710c5de in link_source_dispatch (source=0x81e7f08, callback=0xb7109610 <link_connection_io_handler>, user_data=0x8174498) at linc-source.c:159
No locals.
#11 0xb701ddf2 in IA__g_main_context_dispatch (context=0x816f3f8) at gmain.c:2045
No locals.
#12 0xb7020dcf in g_main_context_iterate (context=0x816f3f8, block=1, dispatch=1, self=0x8166f20) at gmain.c:2677
	got_ownership = <value optimized out>
	max_priority = 2147483647
	timeout = -1
	some_ready = 1
	nfds = <value optimized out>
	allocated_nfds = <value optimized out>
	fds = (GPollFD *) 0x81ec188
	__PRETTY_FUNCTION__ = "g_main_context_iterate"
#13 0xb7021335 in IA__g_main_context_iteration (context=0x816f3f8, may_block=1) at gmain.c:2736
	retval = <value optimized out>
#14 0xb7107e57 in link_main_iteration (block_for_reply=1) at linc.c:288
No locals.
#15 0xb70eb437 in giop_recv_buffer_get (ent=0xbfb5e91c, timeout=0xbfb5e934) at giop-recv-buffer.c:738
	tdata = (GIOPThread *) 0x816f478
	tval = {tv_sec = -1078597135, tv_usec = -1223773205}
#16 0xb70effab in ORBit_small_invoke_stub (obj=0x8175ca0, m_data=0xb71512a0, ret=0xbfb5ea10, args=0xbfb5e9f8, ctx=0x0, ev=0xbfb5ea64) at orbit-small.c:658
	completion_status = <value optimized out>
	cnx = (GIOPConnection *) 0x814c6a0
	mqe = {buffer = 0x81ec1c8, cnx = 0x814c6a0, msg_type = 1, request_id = 3216370000, src_thread = 0x816f478, async_cb = 0}
	adaptor_obj = <value optimized out>
	recv_buffer = (GIOPRecvBuffer *) 0x0
	xt_proxy = (CORBA_Object) 0x0
	invoke_policy = (ORBitPolicy *) 0x0
	timeout = 0
#17 0xb70f01ce in ORBit_small_invoke_stub_n (object=0x8175ca0, methods=0xb7151324, index=136234520, ret=0xbfb5ea10, args=0xbfb5e9f8, ctx=0x0, ev=0xe0002) at orbit-small.c:575
No locals.
#18 0xb70fc992 in ORBit_c_stub_invoke (obj=0x8175ca0, methods=0xb7151324, method_index=0, ret=0xbfb5ea10, args=0xbfb5e9f8, ctx=0x0, ev=0xbfb5ea64, class_id=0, method_offset=4, 
    skel_impl=0xb7144f70 <_ORBIT_skel_small_ConfigDatabase2_lookup_with_schema_name>) at poa.c:2643
	method_impl = (gpointer) 0x0
#19 0xb7147be7 in ConfigDatabase2_lookup_with_schema_name (_obj=0x8175ca0, key=0x81ec00c "/apps/workrave/gui/main_window/cycle_time", locale=0x812ff00 "en_US.UTF-8", 
    use_schema_default=1 '\001', schema_name=0xbfb5ea84, value_is_default=0xbfb5ea8b "", value_is_writable=0xbfb5ea8a "\001", ev=0xbfb5ea64) at GConfX-stubs.c:210
	_ORBIT_retval = (ConfigValue *) 0x0
	_args = {0xbfb5ea24, 0xbfb5ea28, 0xbfb5e9f0, 0xbfb5ea30, 0xbfb5ea34, 0xbfb5ea38}
#20 0xb713f15f in gconf_engine_get_fuller (conf=0x81736e0, key=0x81ec00c "/apps/workrave/gui/main_window/cycle_time", locale=<value optimized out>, use_schema_default=1, 
    is_default_p=0xbfb5ead4, is_writable_p=0xbfb5ead8, schema_name_p=0xbfb5eacc, err=0xbfb5ead0) at gconf.c:1007
	locale_list = <value optimized out>
	tmp_is_default = <value optimized out>
	tmp_is_writable = <value optimized out>
	tmp_schema_name = <value optimized out>
	val = <value optimized out>
	cv = (ConfigValue *) 0xb6db4ff4
	ev = {_id = 0x0, _major = 0, _any = {_type = 0x0, _value = 0x0, _release = 0 '\0'}}
	db = (ConfigDatabase) 0x8175ca0
	tries = 0
	is_default = 0 '\0'
	is_writable = 1 '\001'
	corba_schema_name = (CORBA_char *) 0x0
	__PRETTY_FUNCTION__ = "gconf_engine_get_fuller"
#21 0xb713f3ce in gconf_engine_get_entry (conf=0x81736e0, key=0x81ec00c "/apps/workrave/gui/main_window/cycle_time", locale=0x812ff00 "en_US.UTF-8", use_schema_default=1, 
    err=0xbfb5eb58) at gconf.c:1110
	is_writable = 1
	is_default = 0
	val = <value optimized out>
	error = (GError *) 0x0
	entry = <value optimized out>
	schema_name = (gchar *) 0x0
#22 0xb7142957 in get (client=0x816a258, key=0x81ec00c "/apps/workrave/gui/main_window/cycle_time", use_default=0, error=0xbfb5eb58) at gconf-client.c:1239
	entry = (GConfEntry *) 0x0
	__PRETTY_FUNCTION__ = "get"
#23 0xb7142bde in gconf_client_get_full (client=0x816a258, key=0x81ec00c "/apps/workrave/gui/main_window/cycle_time", locale=<value optimized out>, use_schema_default=0, 
    err=0xbfb5eb8c) at gconf-client.c:1286
	error = (GError *) 0x0
	entry = <value optimized out>
	retval = <value optimized out>
	__PRETTY_FUNCTION__ = "gconf_client_get_full"
#24 0x080edc06 in GConfConfigurator::get_value (this=0x818d908, key=@0xbfb5ebc8, value=0xbfb5ebc4) at GConfConfigurator.cc:86
	ret = <value optimized out>
	error = (GError *) 0x0
	full_key = {static npos = 4294967295, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, 
    _M_p = 0x81ec00c "/apps/workrave/gui/main_window/cycle_time"}}
#25 0x080ed4f8 in GConfConfigurator::get_value (this=0x818d908, key=@0xbfb5ec04, out=0xbfb5ec00) at GConfConfigurator.cc:167
	value = (GConfValue *) 0x8127844
	ret = <value optimized out>
#26 0x080efa46 in TimerBoxControl::get_cycle_time (name=@0xbfb5ec48) at TimerBoxControl.cc:531
	ret = 136233260
#27 0x080f0183 in TimerBoxControl::read_configuration (this=0x81eb640) at TimerBoxControl.cc:497
No locals.
#28 0x080f06d6 in TimerBoxControl::init (this=0x81eb640) at TimerBoxControl.cc:166
	core = (ICore *) 0x818d64c
	config = (IConfigurator *) 0x818d908
#29 0x080f0726 in TimerBoxControl (this=0x81eb640, n=@0xbfb5ed3c, v=@0x81e5064) at TimerBoxControl.cc:60
No locals.
#30 0x080b3418 in MainWindow::init (this=0x819af48) at MainWindow.cc:172
	icons = {<std::_List_base<Glib::RefPtr<Gdk::Pixbuf>,std::allocator<Glib::RefPtr<Gdk::Pixbuf> > >> = {
    _M_impl = {<std::allocator<std::_List_node<Glib::RefPtr<Gdk::Pixbuf> > >> = {<__gnu_cxx::new_allocator<std::_List_node<Glib::RefPtr<Gdk::Pixbuf> > >> = {<No data fields>}, <No data fields>}, _M_node = {_M_next = 0x81d7d40, _M_prev = 0x81d4a50}}}, <No data fields>}
	icon_files = {0x80f7ee1 "workrave-icon-small.png", 0x80f7ef9 "workrave-icon-medium.png", 0x80f7f12 "workrave-icon-large.png"}
	icon_list = {plist_ = 0x81d3290, ownership_ = Glib::OWNERSHIP_SHALLOW}
	menus = <value optimized out>
	window = {pCppObject_ = 0xb77893cc}
	leader_window = {pCppObject_ = 0x81265bc}
	config = <value optimized out>
#31 0x080b3f0c in MainWindow (this=0x819af48) at MainWindow.cc:114
No locals.
#32 0x080aba32 in GUI::init_gui (this=0x812c138) at GUI.cc:767
No locals.
#33 0x080ac540 in GUI::main (this=0x812c138) at GUI.cc:227
	kit = {<sigc::trackable> = {callback_list_ = 0x0}, _vptr.Main = 0xb7ab5f88, static signal_run_ = {<No data fields>}, static signal_quit_ = {<No data fields>}, 
  static signal_key_snooper_ = {<No data fields>}, static instance_ = 0xbfb5ee04}
	display = 0x818d4c8 ""
#34 0x080ca75c in run (argc=3, argv=0xbfb5eef4) at main.cc:44
	gui = (class GUI *) 0x812c138
#35 0x080ca793 in main (argc=) at main.cc:56
	ret = 0
Comment 1
Rob Caelers  Mar 27 2007 20:12:22 UTC
Fixed.

Changed the initialization order to make sure that the CORBA interface never crashes on NULL pointers...
Comment 2
Daniel Holbach  Mar 28 2007 10:08:00 UTC
So it's just http://workrave.svn.sourceforge.net/viewvc/workrave/workrave/trunk/frontend/gtkmm/src/GUI.cc?r1=1144&r2=1161&view=patch ?

If so, I'd patch that in Ubuntu until the next workrave release gets out.
Comment 3
Rob Caelers  Mar 28 2007 10:28:59 UTC
Correct. That small patch should fix the crash.
Comment 4
Daniel Holbach  Mar 28 2007 11:18:03 UTC
Thanks.
Comment 5
Rob Caelers  Apr 18 2007 21:11:57 UTC
*** Bug 621 has been marked as a duplicate of this bug. ***