Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(1866)

Issue 4125053: Fix ibus-daemon deadlock in engineproxy.c. (Closed)

Can't Edit
Can't Publish+Mail
Start Review
Created:
13 years, 4 months ago by Yusuke Sato
Modified:
13 years, 4 months ago
Reviewers:
shawn.p.huang, Peng Huang
CC:
satorux
Base URL:
git@github.com:ibus/ibus.git@master
Visibility:
Public.

Description

Fix ibus-daemon deadlock in engineproxy.c. How to reproduce the deadlock on a desktop Linux like Ubuntu Maverick: 1. Add 20 seconds sleep in the beginning of the main() function of an engine (e.g. ibus-engine-mozc). See http://crosbug.com/11379#c16 . 2. Set preload_engines to "mozc" using ibus-setup. 3. Start ibus-daemon. 4. press the trigger hotkey twice within the 20 seconds. Expected: The second trigger hotkey press cancels the bus_engine_proxy_new operation started by the first one. Actual: ibus-daemon freezes. Stack trace: http://crosbug.com/11379#c20 BUG=http://crosbug.com/11379 TEST=see the steps above.

Patch Set 1 : review #

Total comments: 9

Patch Set 2 : review #

Patch Set 3 : Applied Peng's version #

Unified diffs Side-by-side diffs Delta from patch set Stats (+238 lines, -141 lines) Patch
M bus/engineproxy.c View 1 2 10 chunks +100 lines, -65 lines 0 comments Download
M bus/inputcontext.c View 1 2 6 chunks +138 lines, -76 lines 0 comments Download

Messages

Total messages: 6
Yusuke Sato
13 years, 4 months ago (2011-02-07 10:25:40 UTC) #1
Yusuke Sato
found a problem in the patch... please stop reviewing for now.
13 years, 4 months ago (2011-02-07 13:32:46 UTC) #2
Yusuke Sato
I'll fix/check the followings tomorrow. Peng, if you have comments, please let me know in ...
13 years, 4 months ago (2011-02-07 17:03:34 UTC) #3
Peng
http://codereview.appspot.com/4125053/diff/2001/bus/engineproxy.c File bus/engineproxy.c (right): http://codereview.appspot.com/4125053/diff/2001/bus/engineproxy.c#newcode624 bus/engineproxy.c:624: g_simple_async_result_set_from_error (data->simple, error); You are right. We need deal ...
13 years, 4 months ago (2011-02-07 18:52:25 UTC) #4
Yusuke Sato
Fixed all. Please review this. http://codereview.appspot.com/4125053/diff/2001/bus/inputcontext.c File bus/inputcontext.c (right): http://codereview.appspot.com/4125053/diff/2001/bus/inputcontext.c#newcode2046 bus/inputcontext.c:2046: g_object_ref (context->engine); On 2011/02/07 ...
13 years, 4 months ago (2011-02-08 08:02:57 UTC) #5
Yusuke Sato
13 years, 4 months ago (2011-02-09 12:00:57 UTC) #6
Received a revised patch from Peng (patch set #3), and it looks good to me. I'll
submit it soon.

On 2011/02/08 08:02:57, Yusuke Sato wrote:
> Fixed all. Please review this.
> 
> http://codereview.appspot.com/4125053/diff/2001/bus/inputcontext.c
> File bus/inputcontext.c (right):
> 
> http://codereview.appspot.com/4125053/diff/2001/bus/inputcontext.c#newcode2046
> bus/inputcontext.c:2046: g_object_ref (context->engine);
> On 2011/02/07 18:52:25, Shawn.P.Huang wrote:
> > I think this should be removed
> 
> Tried, but got many "(lt-ibus-daemon:22372): GLib-GObject-CRITICAL **:
> g_object_unref: assertion `G_IS_OBJECT (object)' failed" errors... any ideas?
Sign in to reply to this message.

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b