--- Begin Message ---
- To: bugs@debian.org
- Subject: scim-bridge-agent: scim-bridge crashes with webkit based applications
- From: Darren Hoo <darren.hoo@gmail.com>
- Date: Sat, 18 Jul 2009 18:56:58 +0800
- Message-id: <91b249310907180356x5a318acfn981ce02929f1d8d7@mail.gmail.com>
Package: scim-bridge-agent
Version: 0.4.16-2
Severity: normal
Tags: patch
scim-bridge crashes a lot when using webkit based applications like
devhelp(webkit version),
midori and google chrome.while these apps work fine with scim-gtk2-immodule.
with google chrome,it only occurs with most recently built chrome.It
maybe caused
by some bugs in webkit?
here's related config:
XIM=SCIM
GTK_IM_MODULE=scim-bridge
QT_IM_MODULE=scim-bridge
XMODIFIERS="@im=SCIM"
export XIM GTK_IM_MODULE QT_IM_MODULE XMODIFIERS
here is the backtrace when I'm running midori,attach the scim-bridge process
and then start midori and click on the "click to add shortcut" in the midori
speed-dial page,then scim-bridge recieves SIGSEGV while calling
get_frontend_data () .
darren@debian:~$ ps aux |grep scim-bridge
darren 30644 0.0 0.0 7824 884 pts/1 S+ 05:29 0:00 scim-bridge
(gdb) attach 30644
Attaching to process 30644
Reading symbols from /usr/bin/scim-bridge...done.
warning: .dynamic section for "/usr/lib/libscim-1.0.so.8" is not at
the expected address
warning: difference appears to be caused by prelink, adjusting expectations
Reading symbols from /usr/lib/libscim-1.0.so.8...done.
Loaded symbols for /usr/lib/libscim-1.0.so.8
Reading symbols from /lib/i686/cmov/libdl.so.2...done.
Loaded symbols for /lib/i686/cmov/libdl.so.2
Reading symbols from /usr/lib/libstdc++.so.6...done.
Loaded symbols for /usr/lib/libstdc++.so.6
Reading symbols from /lib/i686/cmov/libm.so.6...done.
Loaded symbols for /lib/i686/cmov/libm.so.6
Reading symbols from /lib/libgcc_s.so.1...done.
Loaded symbols for /lib/libgcc_s.so.1
Reading symbols from /lib/i686/cmov/libc.so.6...done.
Loaded symbols for /lib/i686/cmov/libc.so.6
Reading symbols from /lib/ld-linux.so.2...done.
Loaded symbols for /lib/ld-linux.so.2
Reading symbols from /lib/i686/cmov/libnss_compat.so.2...done.
Loaded symbols for /lib/i686/cmov/libnss_compat.so.2
Reading symbols from /lib/i686/cmov/libnsl.so.1...done.
Loaded symbols for /lib/i686/cmov/libnsl.so.1
Reading symbols from /lib/i686/cmov/libnss_nis.so.2...done.
Loaded symbols for /lib/i686/cmov/libnss_nis.so.2
Reading symbols from /lib/i686/cmov/libnss_files.so.2...done.
Loaded symbols for /lib/i686/cmov/libnss_files.so.2
Reading symbols from /usr/lib/scim-1.0/1.4.0/Config/socket.so...done.
Loaded symbols for /usr/lib/scim-1.0/1.4.0/Config/socket.so
Reading symbols from /usr/lib/scim-1.0/1.4.0/IMEngine/socket.so...done.
Loaded symbols for /usr/lib/scim-1.0/1.4.0/IMEngine/socket.so
0xb8067424 in __kernel_vsyscall ()
(gdb) c
Continuing.
Program received signal SIGSEGV, Segmentation fault.
0xb7fd612c in std::_Rb_tree<std::string, std::pair<std::string const,
std::vector<std::pair<unsigned int, std::string>,
std::allocator<std::pair<unsigned int, std::string> > > >,
std::_Select1st<std::pair<std::string const,
std::vector<std::pair<unsigned int, std::string>,
std::allocator<std::pair<unsigned int, std::string> > > > >,
std::less<std::string>, std::allocator<std::pair<std::string const,
std::vector<std::pair<unsigned int, std::string>,
std::allocator<std::pair<unsigned int, std::string> > > > >
>::_M_insert_unique_(std::_Rb_tree_const_iterator<std::pair<std::string
const, std::vector<std::pair<unsigned int, std::string>,
std::allocator<std::pair<unsigned int, std::string> > > > >,
std::pair<std::string const, std::vector<std::pair<unsigned int,
std::string>, std::allocator<std::pair<unsigned int, std::string> > >
> const&)
() from /usr/lib/libscim-1.0.so.8
(gdb) bt
#0 0xb7fd612c in std::_Rb_tree<std::string, std::pair<std::string
const, std::vector<std::pair<unsigned int, std::string>,
std::allocator<std::pair<unsigned int, std::string> > > >,
std::_Select1st<std::pair<std::string const,
std::vector<std::pair<unsigned int, std::string>,
std::allocator<std::pair<unsigned int, std::string> > > > >,
std::less<std::string>, std::allocator<std::pair<std::string const,
std::vector<std::pair<unsigned int, std::string>,
std::allocator<std::pair<unsigned int, std::string> > > > >
>::_M_insert_unique_(std::_Rb_tree_const_iterator<std::pair<std::string
const, std::vector<std::pair<unsigned int, std::string>,
std::allocator<std::pair<unsigned int, std::string> > > > >,
std::pair<std::string const, std::vector<std::pair<unsigned int,
std::string>, std::allocator<std::pair<unsigned int, std::string> > >
> const&) () from /usr/lib/libscim-1.0.so.8
#1 0x0805aacf in ScimBridgeAgentIMContextImpl::focus_out
(this=0x8d3dc10) at scim-bridge-agent-imcontext.cpp:657
#2 0x080503d2 in ScimBridgeAgentImpl::change_focus (this=0x8d35b18,
imcontext_id=8, focus_in=false) at scim-bridge-agent.cpp:630
#3 0x08054f2c in ScimBridgeAgentClientListenerImpl::change_focus
(this=0x8d3aec0, imcontext_id=8, focus_in=false) at
scim-bridge-agent-client-listener.cpp:449
#4 0x08055762 in ScimBridgeAgentClientListenerImpl::process_message
(this=0x8d3aec0, message=0x8d3c280) at
scim-bridge-agent-client-listener.cpp:263
#5 0x0805688a in ScimBridgeAgentClientListenerImpl::handle_event
(this=0x8d3aec0, event_type=8) at
scim-bridge-agent-client-listener.cpp:171
#6 0x08050b10 in ScimBridgeAgentImpl::run_event_loop (this=0x8d35b18)
at scim-bridge-agent.cpp:319
#7 0x08050d48 in ScimBridgeAgentImpl::launch (this=0x8d35b18) at
scim-bridge-agent.cpp:360
#8 0x0804f77d in main (argc=1, argv=0xbfc9a2c4) at
scim-bridge-agent-application.cpp:119
(gdb) c
Continuing.
Program terminated with signal SIGSEGV, Segmentation fault.
The program no longer exists.
-- System Information:
Debian Release: squeeze/sid
APT prefers unstable
APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: i386 (i686)
Kernel: Linux 2.6.30-1-686 (SMP w/2 CPU cores)
Locale: LANG=zh_CN.UTF-8, LC_CTYPE=zh_CN.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages scim-bridge-agent depends on:
ii libc6 2.9-20 GNU C Library: Shared libraries
ii libgcc1 1:4.4.0-11 GCC support library
ii libscim8c2a 1.4.9-1 library for SCIM platform
ii libstdc++6 4.4.0-11 The GNU Standard C++ Library v3
ii scim 1.4.9-1 smart common input method platform
ii scim-modules-socket 1.4.9-1 socket modules for SCIM platform
Versions of packages scim-bridge-agent recommends:
ii scim-bridge-client-gtk 0.4.16-2 IME server of scim-bridge communic
scim-bridge-agent suggests no packages.
--- scim-bridge-0.4.16/agent/scim-bridge-agent-imcontext.cpp 2009-02-03 22:36:14.000000000 +0800
+++ scim-bridge-0.4.16.new/agent/scim-bridge-agent-imcontext.cpp 2009-07-18 18:14:33.000000000 +0800
@@ -654,11 +654,11 @@
void ScimBridgeAgentIMContextImpl::focus_out ()
{
- ScimBridgeAgentIMContext *focused_imcontext = static_cast<ScimBridgeAgentIMContext*> (get_imengine ()->get_frontend_data ());
-
if ( !focused )
return;
+ ScimBridgeAgentIMContext *focused_imcontext = static_cast<ScimBridgeAgentIMContext*> (get_imengine ()->get_frontend_data ());
+
get_imengine ()->set_frontend_data (static_cast<ScimBridgeAgentIMContext*> (this));
hide_preedit ();
--- End Message ---