[sylpheed-jp:10967] Re: [Q] Actionの引数 %f(ファイル名) %F(ファイルリスト)の挙動の違いについて

OOSATO, Kazzrou kazz @ kk.iij4u.or.jp
2010年 6月 8日 (火) 23:09:03 JST


大里です。

On Tue, 8 Jun 2010 20:43:57 +0900
"OOSATO, Kazzrou" <kazz @ kk.iij4u.or.jp> wrote:

さっきのは、sylpheed --debug で見たので、gdb を使った方を載せます。
kernel も昨夜コンパイルしたばかりで実績のないものだったので、念のため
CentOS 標準ので起動しなおしました。

不思議なことに gdb 上では、ちょっと挙動が変わってしまいました。
先ほどは、fetch が完了する前に落ちたのですが、今度は fetch してから落ち
ました。ファイルは出来ています。
%F の場合は 1 プロセスだけど、%f だとファイルの数だけ fork (ですよね、
thread じゃなくて)されてるわけで、それがどこかで影響してるか?
う〜む、なんだか分かりません。


message 13260 has been already cached.
Forking child and grandchild.
Executing: /bin/sh -c echo /home/kazz/.sylpheed-2.0/imapcache/mercury.lo.oosato.org/kazz/INBOX/13260
Detaching after fork from child process 3565.
Child: Waiting for grandchild
Child: grandchild ended
getting message 13261...
[22:20:21] IMAP4> 16 UID FETCH 13261 BODY.PEEK[]
[New Thread 0xb6afab90 (LWP 3567)]
Catching grand child's output.
Freeing children data 0x9dbd508
Catching grand child's output.
Freeing children data 0x9dbd508
*** glibc detected *** /usr/bin/sylpheed: double free or corruption (fasttop): 0x09e821c8 ***
imap_thread_run_proxy (0x9db99c8): calling thread_func
[22:20:21] IMAP4< * 13077 FETCH (UID 13261 BODY[] {4888}
[22:20:21] IMAP4< )
[22:20:21] IMAP4< 16 OK FETCH completed.
imap_thread_run_proxy (0x9db99c8): thread_func done
======= Backtrace: =========
/lib/libc.so.6[0x43426595]
/lib/libc.so.6(cfree+0x59)[0x434269d9]
/lib/libglib-2.0.so.0(g_free+0x31)[0x4b16b481]
/usr/bin/sylpheed[0x808b255]
/usr/bin/sylpheed[0x808b669]
/usr/bin/sylpheed[0x808b9ea]
/usr/lib/libgdk-x11-2.0.so.0[0x4b72ee4e]
/lib/libglib-2.0.so.0[0x4b18d8dd]
/lib/libglib-2.0.so.0(g_main_context_dispatch+0x182)[0x4b1641a2]
/lib/libglib-2.0.so.0[0x4b167196]
/lib/libglib-2.0.so.0(g_main_context_iteration+0x6e)[0x4b1676ee]
/usr/lib/libgtk-x11-2.0.so.0(gtk_main_iteration+0x34)[0x4b4a89f4]
/usr/lib/libsylph-0.so.1(event_loop_iterate+0x1e)[0x4bb18b5e]
/usr/lib/libsylph-0.so.1[0x4baea6bc]
/usr/lib/libsylph-0.so.1[0x4baf41a0]
/usr/lib/libsylph-0.so.1(folder_item_fetch_msg+0x34)[0x4bae4fe4]
/usr/lib/libsylph-0.so.1(procmsg_get_message_file+0x52)[0x4bb0b2c2]
/usr/bin/sylpheed[0x808aa43]
/usr/bin/sylpheed[0x808bdea]
/usr/bin/sylpheed[0x808c21d]
/usr/bin/sylpheed[0x808ce67]
/usr/bin/sylpheed[0x808cf54]
/usr/lib/libgtk-x11-2.0.so.0[0x4b4910f8]
/lib/libgobject-2.0.so.0(g_cclosure_marshal_VOID__VOID+0x49)[0x4b1ef169]
/lib/libgobject-2.0.so.0(g_closure_invoke+0x128)[0x4b1e1e98]
/lib/libgobject-2.0.so.0[0x4b1f2dab]
/lib/libgobject-2.0.so.0(g_signal_emit_valist+0x8c7)[0x4b1f42e7]
/lib/libgobject-2.0.so.0(g_signal_emit+0x29)[0x4b1f44a9]
/usr/lib/libgtk-x11-2.0.so.0(gtk_widget_activate+0x94)[0x4b5c6984]
/usr/lib/libgtk-x11-2.0.so.0(gtk_menu_shell_activate_item+0x118)[0x4b4bad08]
/usr/lib/libgtk-x11-2.0.so.0[0x4b4bc2d2]
/usr/lib/libgtk-x11-2.0.so.0[0x4b4b3ea5]
/usr/lib/libgtk-x11-2.0.so.0[0x4b4ae060]
/lib/libgobject-2.0.so.0[0x4b1e0639]
/lib/libgobject-2.0.so.0(g_closure_invoke+0x128)[0x4b1e1e98]
/lib/libgobject-2.0.so.0[0x4b1f33f5]
/lib/libgobject-2.0.so.0(g_signal_emit_valist+0x68f)[0x4b1f40af]
/lib/libgobject-2.0.so.0(g_signal_emit+0x29)[0x4b1f44a9]
/usr/lib/libgtk-x11-2.0.so.0[0x4b5c25d8]
/usr/lib/libgtk-x11-2.0.so.0(gtk_propagate_event+0x183)[0x4b4a7503]
/usr/lib/libgtk-x11-2.0.so.0(gtk_main_do_event+0x317)[0x4b4a8707]
/usr/lib/libgdk-x11-2.0.so.0[0x4b75927a]
/lib/libglib-2.0.so.0(g_main_context_dispatch+0x182)[0x4b1641a2]
/lib/libglib-2.0.so.0[0x4b167196]
/lib/libglib-2.0.so.0(g_main_loop_run+0x1b7)[0x4b167557]
/usr/lib/libgtk-x11-2.0.so.0(gtk_main+0xb4)[0x4b4a8b84]
/usr/bin/sylpheed[0x805eb1f]
/lib/libc.so.6(__libc_start_main+0xdc)[0x433d2e9c]
/usr/bin/sylpheed[0x805ca91]
======= Memory map: ========
00456000-00457000 r-xp 00000000 03:05 552849     /usr/lib/gconv/ISO8859-1.so
00457000-00459000 rwxp 00000000 03:05 552849     /usr/lib/gconv/ISO8859-1.so
004e9000-004ed000 r-xp 00000000 03:05 552899     /usr/lib/gconv/UTF-7.so
004ed000-004ef000 rwxp 00003000 03:05 552899     /usr/lib/gconv/UTF-7.so
00622000-00639000 r-xp 00000000 03:05 552686     /usr/lib/gconv/CP932.so
00639000-0063b000 rwxp 00016000 03:05 552686     /usr/lib/gconv/CP932.so
0064a000-0064c000 r-xp 00000000 03:05 620445     /usr/lib/pango/1.5.0/modules/pango-basic-fc.so
0064c000-0064d000 rwxp 00001000 03:05 620445     /usr/lib/pango/1.5.0/modules/pango-basic-fc.so
00650000-0066a000 r-xp 00000000 03:05 164531     /lib/ld-2.5.so
0066a000-0066b000 r-xp 00019000 03:05 164531     /lib/ld-2.5.so
0066b000-0066c000 rwxp 0001a000 03:05 164531     /lib/ld-2.5.so
007a3000-007ac000 r-xp 00000000 03:05 162120     /lib/libnss_files-2.5.so
007ac000-007ad000 r-xp 00008000 03:05 162120     /lib/libnss_files-2.5.so
007ad000-007ae000 rwxp 00009000 03:05 162120     /lib/libnss_files-2.5.so
007b7000-007c8000 r-xp 00000000 03:05 722380     /usr/lib/gtk-2.0/2.10.0/engines/libclearlooks.so
007c8000-007c900
Program received signal SIGABRT, Aborted.
0x00e86402 in __kernel_vsyscall ()
(gdb) bt
#0  0x00e86402 in __kernel_vsyscall ()
#1  0x433e5df0 in raise () from /lib/libc.so.6
#2  0x433e7701 in abort () from /lib/libc.so.6
#3  0x4341e28b in __libc_message () from /lib/libc.so.6
#4  0x43426595 in _int_free () from /lib/libc.so.6
#5  0x434269d9 in free () from /lib/libc.so.6
#6  0x4b16b481 in g_free () from /lib/libglib-2.0.so.0
#7  0x0808b255 in free_children (children=0x9dbd508) at action.c:981
#8  0x0808b669 in wait_for_children (children=0x434ff140) at action.c:903
#9  0x0808b9ea in catch_output (data=0x9d636a0, source=20, cond=GDK_INPUT_READ) at action.c:1304
#10 0x4b72ee4e in ?? () from /usr/lib/libgdk-x11-2.0.so.0
#11 0x4b18d8dd in ?? () from /lib/libglib-2.0.so.0
#12 0x4b1641a2 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#13 0x4b167196 in ?? () from /lib/libglib-2.0.so.0
#14 0x4b1676ee in g_main_context_iteration () from /lib/libglib-2.0.so.0
#15 0x4b4a89f4 in gtk_main_iteration () from /usr/lib/libgtk-x11-2.0.so.0
#16 0x4bb18b5e in event_loop_iterate () at utils.c:4349
#17 0x4baea6bc in imap_thread_run (session=<value optimized out>, func=<value optimized out>, 
    data=<value optimized out>) at imap.c:4998
#18 0x4baf41a0 in imap_fetch_msg (folder=<value optimized out>, item=<value optimized out>, uid=<value optimized out>)
    at imap.c:4158
#19 0x4bae4fe4 in folder_item_fetch_msg (item=<value optimized out>, num=Could not find the frame base for "folder_item_fetch_msg".
) at folder.c:1068
#20 0x4bb0b2c2 in procmsg_get_message_file (msginfo=<value optimized out>) at procmsg.c:1331
#21 0x0808aa43 in parse_append_filename (cmd=0x9cb30a0, msginfo=0x6) at action.c:328
#22 0x0808bdea in parse_action_cmd (action=<value optimized out>, msginfo=0x92b71c0, msg_list=0x94a5058, 
    partinfo=0x11, user_str=0x0, user_hidden_str=0x0, sel_str=0x0) at action.c:257
#23 0x0808c21d in execute_actions (action=0x8a4fde8 "echo %f", msg_list=0x94a5058, text=0x8d5b818, body_pos=421, 
    partinfo=0x0) at action.c:638
#24 0x0808ce67 in message_actions_execute (msgview=0x8d559a8, action_nb=<value optimized out>, msg_list=0x94a5058)
    at action.c:528
#25 0x0808cf54 in mainwin_actions_execute_cb (mainwin=0x8a71e18, action_nb=7, widget=0x8d78198) at action.c:486
#26 0x4b4910f8 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#27 0x4b1ef169 in g_cclosure_marshal_VOID__VOID () from /lib/libgobject-2.0.so.0
#28 0x4b1e1e98 in g_closure_invoke () from /lib/libgobject-2.0.so.0
#29 0x4b1f2dab in ?? () from /lib/libgobject-2.0.so.0
#30 0x4b1f42e7 in g_signal_emit_valist () from /lib/libgobject-2.0.so.0
#31 0x4b1f44a9 in g_signal_emit () from /lib/libgobject-2.0.so.0
#32 0x4b5c6984 in gtk_widget_activate () from /usr/lib/libgtk-x11-2.0.so.0
#33 0x4b4bad08 in gtk_menu_shell_activate_item () from /usr/lib/libgtk-x11-2.0.so.0
#34 0x4b4bc2d2 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#35 0x4b4b3ea5 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#36 0x4b4ae060 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#37 0x4b1e0639 in ?? () from /lib/libgobject-2.0.so.0
#38 0x4b1e1e98 in g_closure_invoke () from /lib/libgobject-2.0.so.0
#39 0x4b1f33f5 in ?? () from /lib/libgobject-2.0.so.0
#40 0x4b1f40af in g_signal_emit_valist () from /lib/libgobject-2.0.so.0
#41 0x4b1f44a9 in g_signal_emit () from /lib/libgobject-2.0.so.0
---Type <return> to continue, or q <return> to quit---
#42 0x4b5c25d8 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#43 0x4b4a7503 in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0
#44 0x4b4a8707 in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
#45 0x4b75927a in ?? () from /usr/lib/libgdk-x11-2.0.so.0
#46 0x4b1641a2 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#47 0x4b167196 in ?? () from /lib/libglib-2.0.so.0
#48 0x4b167557 in g_main_loop_run () from /lib/libglib-2.0.so.0
#49 0x4b4a8b84 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#50 0x0805eb1f in main (argc=Cannot access memory at address 0x6
) at main.c:367
(gdb) quit


-- 
; kazz
---( end of my signature )---


Sylpheed-jp メーリングリストの案内