[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

[MD:7046] MW32_update_begin でデッドロック



藤井です。

Mew で n や p で順番にメールを流し読みしていると、Meadow が固まります。

前からたまに同様に固まることがあって以下の ticket にも書いたのですが、
おそらく固まっている箇所は違うと思います。また、r3987 にしてから固まる
頻度が明らかに高まっています。

http://www.meadowy.org/meadow/ticket/187

再現方法の絞り込みはできていませんが、バックトレースを見ると elscreen
も関連していることは間違いなさそうです。

環境は以下のとおりです。
    - Mew 4.2
    - elscreen 1.4.0
    - Meadow 3.00-dev rev3987 (cygwin)
    - Win 2000 sp4

今回は C のバックトレースも取ることができました。以下に貼り付けておきま
す。

------------------------------------------------------------
(gdb) thr 1
[Switching to thread 1 (thread 1880.0x7c8)]#0  0x77f82870 in ntdll!ZwWaitForSing
leObject () from /cygdrive/c/WINNT/system32/NTDLL.DLL
(gdb) where
#0  0x77f82870 in ntdll!ZwWaitForSingleObject ()
   from /cygdrive/c/WINNT/system32/NTDLL.DLL
#1  0x77f8822a in ntdll!RtlpWaitForCriticalSection ()
   from /cygdrive/c/WINNT/system32/NTDLL.DLL
#2  0x77f8819b in ntdll!ZwCreateThread ()
   from /cygdrive/c/WINNT/system32/NTDLL.DLL
#3  0x02002a00 in ?? ()
#4  0x0119c19b in MW32_update_begin (f=0x2002000) at mw32term.c:542
#5  0x011865a2 in x_set_tool_bar_lines (f=0x2002000, value=24, oldval=0)
    at mw32fns.c:1169
#6  0x010c2512 in Fset_window_configuration (configuration=39840516)
    at window.c:5990
#7  0x0100eb41 in Ffuncall (nargs=2, args=0x82eb90) at eval.c:2894
#8  0x0114cd5b in Fbyte_code (bytestr=39751491, vector=39684676, maxdepth=24)
    at bytecode.c:690
#9  0x0100f38d in funcall_lambda (fun=39684612, nargs=1, arg_vector=0x82eda4)
    at eval.c:3081
#10 0x0100ed5e in Ffuncall (nargs=2, args=0x82eda0) at eval.c:2940
#11 0x0114cd5b in Fbyte_code (bytestr=33745875, vector=39687940, maxdepth=48)
    at bytecode.c:690
#12 0x0100f38d in funcall_lambda (fun=38381124, nargs=1, arg_vector=0x82efcc)
    at eval.c:3081
#13 0x0100ed5e in Ffuncall (nargs=2, args=0x82efc8) at eval.c:2940
---Type <return> to continue, or q <return> to quit---
#14 0x0100e5eb in call1 (fn=38381124, arg1=32) at eval.c:2679
#15 0x0108d5df in mapcar1 (leni=10, vals=0x82f0a0, fn=38381124, seq=49736917)
    at fns.c:3138
#16 0x0108d8a6 in Fmapcar (function=38381124, sequence=49736917) at fns.c:3206
#17 0x0100eb66 in Ffuncall (nargs=3, args=0x82f1c0) at eval.c:2897
#18 0x0114cd5b in Fbyte_code (bytestr=33771875, vector=39687812, maxdepth=72)
    at bytecode.c:690
#19 0x0100f38d in funcall_lambda (fun=38380996, nargs=1, arg_vector=0x82f3f8)
    at eval.c:3081
#20 0x0100ed5e in Ffuncall (nargs=2, args=0x82f3f4) at eval.c:2940
#21 0x0114cd5b in Fbyte_code (bytestr=33745251, vector=38376708, maxdepth=72)
    at bytecode.c:690
#22 0x0100f38d in funcall_lambda (fun=38380260, nargs=0, arg_vector=0x82f698)
    at eval.c:3081
#23 0x0100ed5e in Ffuncall (nargs=1, args=0x82f694) at eval.c:2940
#24 0x0100e35f in run_hook_with_args (nargs=1, args=0x82f694,
    cond=to_completion) at eval.c:2557
#25 0x0100e0fa in Frun_hooks (nargs=1, args=0x82f754) at eval.c:2420
#26 0x0100ea53 in Ffuncall (nargs=2, args=0x82f750) at eval.c:2875
#27 0x0114cd5b in Fbyte_code (bytestr=39750371, vector=39683076, maxdepth=16)
    at bytecode.c:690
#28 0x0100f38d in funcall_lambda (fun=39683012, nargs=0, arg_vector=0x82f9d8)
    at eval.c:3081
---Type <return> to continue, or q <return> to quit---
#29 0x0100ed5e in Ffuncall (nargs=1, args=0x82f9d4) at eval.c:2940
#30 0x0100e35f in run_hook_with_args (nargs=1, args=0x82f9d4,
    cond=to_completion) at eval.c:2557
#31 0x0100e0fa in Frun_hooks (nargs=1, args=0x82fa9c) at eval.c:2420
#32 0x0100ea53 in Ffuncall (nargs=2, args=0x82fa98) at eval.c:2875
#33 0x0100e5eb in call1 (fn=26035921, arg1=26077081) at eval.c:2679
#34 0x0105451d in safe_run_hooks_1 (hook=8583968) at keyboard.c:2035
#35 0x0100c518 in internal_condition_case (bfun=0x1054501 <safe_run_hooks_1>,
    handlers=26020417, hfun=0x105451f <safe_run_hooks_error>) at eval.c:1474
#36 0x010545b7 in safe_run_hooks (hook=26077081) at keyboard.c:2063
#37 0x01053890 in command_loop_1 () at keyboard.c:1809
#38 0x0100c518 in internal_condition_case (bfun=0x1052588 <command_loop_1>,
    handlers=26021593, hfun=0x105214a <cmd_error>) at eval.c:1474
#39 0x01052463 in command_loop_2 () at keyboard.c:1328
#40 0x0100c031 in internal_catch (tag=26118505,
    func=0x1052440 <command_loop_2>, arg=26019529) at eval.c:1220
#41 0x01052419 in command_loop () at keyboard.c:1307
#42 0x01051f73 in recursive_edit_1 () at keyboard.c:1000
#43 0x0105209f in Frecursive_edit () at keyboard.c:1061
#44 0x01002674 in main (argc=1, argv=0xa43ca0) at emacs.c:1912
(gdb) thr 2
[Switching to thread 2 (thread 1880.0x7d8)]#0  0x77f82870 in ntdll!ZwWaitForSing
leObject () from /cygdrive/c/WINNT/system32/NTDLL.DLL
(gdb) where
#0  0x77f82870 in ntdll!ZwWaitForSingleObject ()
   from /cygdrive/c/WINNT/system32/NTDLL.DLL
#1  0x77f8822a in ntdll!RtlpWaitForCriticalSection ()
   from /cygdrive/c/WINNT/system32/NTDLL.DLL
#2  0x77f8819b in ntdll!ZwCreateThread ()
   from /cygdrive/c/WINNT/system32/NTDLL.DLL
#3  0x0138fa00 in ImmConfigureIMEProc ()
#4  0x01188266 in mw32_WndProc (hwnd=0x2603f8, msg=15, wParam=0, lParam=0)
    at mw32fns.c:1984
#5  0x77de1ef0 in USER32!MsgWaitForMultipleObjects ()
   from /cygdrive/c/WINNT/system32/USER32.DLL
#6  0x77de3869 in USER32!SetWindowTextW ()
   from /cygdrive/c/WINNT/system32/USER32.DLL
#7  0x01187bc6 in get_working_area_size (hwnd=0xc04790, width=0xf, height=0x0)
    at mw32fns.c:1912
#8  0x77de38ab in USER32!SetWindowTextW ()
   from /cygdrive/c/WINNT/system32/USER32.DLL
#9  0x00c04790 in ?? ()
#10 0x0000000f in ?? ()
#11 0x00000000 in ?? () from
(gdb) xbacktrace
"set-window-configuration"
"elscreen-apply-window-configuration"
0x249a644 PVEC_COMPILED
"mapcar"
"elscreen-get-screen-to-name-alist"
"elscreen-e21-menu-bar-update"
"run-hooks"
"elscreen-run-screen-update-hook"
"run-hooks"
(gdb) thr 1
[Switching to thread 1 (thread 1880.0x7c8)]#0  0x77f82870 in ntdll!ZwWaitForSing
leObject () from /cygdrive/c/WINNT/system32/NTDLL.DLL
(gdb) f 4
#4  0x0119c19b in MW32_update_begin (f=0x2002000) at mw32term.c:542
542               EnterCriticalSection (&(f->output_data.mw32->hdc_critsec));
------------------------------------------------------------

--
藤井 正行 / Masayuki FUJII