URL: <http://gna.org/bugs/?22048>
Summary: Crashes and other trouble with repeated "Connect to network game" / "Cancel" Project: Freeciv Submitted by: jtn Submitted on: Sun 18 May 2014 13:18:00 BST Category: client-gtk-2.0 Severity: 3 - Normal Priority: 5 - Normal Status: None Assigned to: None Originator Email: Open/Closed: Open Release: trunk r24892 Discussion Lock: Any Operating System: GNU/Linux Planned Release: 2.6.0 _______________________________________________________ Details: (Found while trying to verify fix for bug #21896.) Xubuntu 12.04 amd64; start freeciv-gtk2; repeatedly "Connect to network game" then "Cancel" (using keyboard shortcuts for speed: hold down Alt then c[O]nnect, [C]ancel, [O], [C], ...). Observe a variety of symptoms: ---- 1. This verbose warning message from Gtk: (freeciv-gtk2:10919): Gtk-WARNING **: Invalid text buffer iterator: either the iterator is uninitialized, or the characters/pixbufs/widgets in the buffer have been modified since the iterator was created. You must use marks, character numbers, or line numbers to preserve a position across buffer modifications. You can apply tags and insert marks without invalidating your iterators, but any mutation that affects 'indexable' buffer contents (contents that can be referred to by character offset) will invalidate all outstanding iterators ---- 2. A crash like this in the metaserver thread (seen twice): Program terminated with signal 11, Segmentation fault. #0 0x00007fab9b6f95f8 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 No symbol table info available. #1 0x00007fab9b6dd55c in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 No symbol table info available. #2 0x00007fab9b6e035f in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 No symbol table info available. #3 0x00007fab9abbaca2 in g_closure_invoke () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 No symbol table info available. #4 0x00007fab9abcc339 in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 No symbol table info available. #5 0x00007fab9abd4069 in g_signal_emit_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 No symbol table info available. #6 0x00007fab9abd4212 in g_signal_emit () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 No symbol table info available. #7 0x00007fab9b6e1de8 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 No symbol table info available. #8 0x00000000004d51c7 in apply_text_tag (ptag=<optimised out>, buf=0x1a0b100, text_start_offset=405, text=<optimised out>) at chatline.c:841 tag = 0x3f12840 foreground = {pixel = 2139528224, red = 61423, green = 32639, blue = 0} background = {pixel = 27308288, red = 0, green = 0, blue = 10316} initalized = true start = {dummy1 = 0x1aaf200, dummy2 = 0x7fab78012bc0, dummy3 = -1, dummy4 = 0, dummy5 = 405, dummy6 = -1, dummy7 = 595129065, dummy8 = -1729242823, dummy9 = 0x7fab780144b0, dummy10 = 0x7fab78012710, dummy11 = -1, dummy12 = 0, dummy13 = 0, dummy14 = 0x7fab7f869c20} stop = {dummy1 = 0x1aaf200, dummy2 = 0x7fab78012bc0, dummy3 = -1, dummy4 = 54, dummy5 = 459, dummy6 = -1, dummy7 = 595129065, dummy8 = -1729242823, dummy9 = 0x1aaf1a0, dummy10 = 0x1aaf4e0, dummy11 = -1, dummy12 = 0, dummy13 = 68009248, dummy14 = 0x1a0b100} #9 0x00000000004d5597 in real_output_window_append ( astring=0x7fab7f869d40 "There is no newer stable release of Freeciv available.", tags=<optimised out>, conn_id=<optimised out>) at chatline.c:916 ptag_iter = 0x0 ptag = 0x7fab78014240 buf = 0x1a0b100 iter = {dummy1 = 0x1aaf200, dummy2 = 0x7fab78012bc0, dummy3 = 54, dummy4 = 54, dummy5 = -1, dummy6 = -1, dummy7 = 595129065, dummy8 = -1729242823, dummy9 = 0x1aaf1a0, dummy10 = 0x1aaf4e0, dummy11 = 0, dummy12 = 0, dummy13 = 68009248, dummy14 = 0x7fab9b6f7679} mark = 0x40dbd20 text_start_offset = 405 __FUNCTION__ = "real_output_window_append" #10 0x0000000000478480 in output_window_append (color=..., featured_text=<optimised out>) at chatline_common.c:130 plain_text = "There is no newer stable release of Freeciv available.", '\000' <repeats 11 times>, "\001", '\000' <repeats 14 times>"\377, \377\377\377\060\000\000\000 \241\206\177\253\177\000\000`\240\206\177\253\177\000\000\240/\272\232\253\177\000\000\000\000\000\000\000\000\000\000\n\000\000\000\253\177\000\000\003", '\000' <repeats 23 times>, "P", '\000' <repeats 31 times>, "t\212A\235\253\177", '\000' <repeats 11 times>, "\004\000\000\000\000\000\000\220\236\206\177\253\177\000\000\000\347`o\377\177\000\000\300Ɇ\177\253\177\000\000\000\263\247B\237++\260\003", '\000' <repeats 15 times>"\300, S\001x\253\177\000\000\000\347`o\377\177\000\000\300Ɇ\177\253\177\000\000\204\027c\000\000\000\000\000"... tags = 0x7fab780191b0 __FUNCTION__ = "output_window_append" #11 0x00000000004b8c46 in parse_metaserver_data (f=<optimised out>) at servers.c:151 my_comparable = 0x649ff7 "2.5.99-dev" vertext = "There is no newer stable release of Freeciv available.\000\000 \217\001x\253\177\000\000D\266\206\177\253\177\000\000\aꃚ\253\177\000\000H\265\206\177\253\177\000\000\060\000\000\000\060\000\000\000ആ\177\253\177\000\000 \264\206\177\253\177\000\000\365r\226\232\253\177\000\000\024ȅ\232\253\177\000\000R\000\000\000\000\000\000\000G\000\000\000\000\000\000\000\064\000\000\000\000\000\000\000f\000\000\000\000\000\000\000\200\266\206\177\253\177\000\000\213\266\206\177\253\177\000\000\377\377\377\377\377\377\377\377\200\266\206\177\253\177\000\000\377\377\377\377\377\377\377\377", '\000' <repeats 40 times>"\200, C\001x\000\000\000\000\000\216\001x\253\177\000\000ആ\177\253\177\000\000Y9fo\377\177\000\000 \265\206\177\253\177\000\000\360\226\001x\253\177\000\000\000\000\000\000\000\000\000\000\254"... file = 0x7fab780153c0 nservers = <optimised out> i = <optimised out> j = <optimised out> latest_ver = 0x7fab7800b800 "2.4.2" #12 meta_read_response (scan=0x40c6eb0) at servers.c:240 f = <optimised out> str = "\000\000\000\000\000\000\000\000\255|\360\234\253\177\000\000\001", '\000' <repeats 23 times>"\255, |\360\234\253\177\000\000\001", '\000' <repeats 23 times>"\255, |\360\234\253\177\000\000\001", '\000' <repeats 24 times>, "\021\001x\253\177\000\000\001", '\000' <repeats 23 times>"\257, \027\360\234\253\177\000\000\001", '\000' <repeats 23 times>"\255, |\360\234\253\177\000\000\001", '\000' <repeats 23 times>"\255, |\360\234\253\177\000\000\001", '\000' <repeats 23 times>"\255, |\360\234\253\177\000\000\001", '\000' <repeats 23 times>"\255, |\360\234\253\177\000\000\001", '\000' <repeats 23 times>"\255, |\360\234\253\177", '\000' <repeats 26 times>, "P", '\000' <repeats 15 times>, "\003\000\000\000\060\000\000\000[\000\000\000n\000\000\000w\000\000\000|\000\000\000\001\000\000\000\000\000\000\000"... srvrs = 0x0 #13 0x00000000004b917a in metaserver_scan (arg=0x40c6eb0) at servers.c:294 scan = 0x40c6eb0 #14 0x0000000000625a0a in fc_thread_wrapper (arg=<optimised out>) at fcthread.c:40 data = 0x40ebb10 #15 0x00007fab9bb56e9a in start_thread (arg=0x7fab7f86c700) at pthread_create.c:308 __res = <optimised out> pd = 0x7fab7f86c700 now = <optimised out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {0, 8393117069836323930, 140735062009600, 140374555675072, 67865616, 3, -8418168280560399270, -8417965563952984998}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = 0 pagesize_m1 = <optimised out> sp = <optimised out> freesize = <optimised out> __PRETTY_FUNCTION__ = "start_thread" #16 0x00007fab9a8df3fd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112 No locals. #17 0x0000000000000000 in ?? () No symbol table info available. Main thread looks like this: #0 0x00007fab9ae12620 in ?? () from /usr/lib/x86_64-linux-gnu/libpango-1.0.so.0 No symbol table info available. #1 0x00007fab9ae133b8 in pango_itemize_with_base_dir () from /usr/lib/x86_64-linux-gnu/libpango-1.0.so.0 No symbol table info available. #2 0x00007fab9ae1a348 in ?? () from /usr/lib/x86_64-linux-gnu/libpango-1.0.so.0 No symbol table info available. #3 0x00007fab9ae1b4e6 in ?? () from /usr/lib/x86_64-linux-gnu/libpango-1.0.so.0 No symbol table info available. #4 0x00007fab9b6f8961 in gtk_text_layout_get_line_display () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 No symbol table info available. #5 0x00007fab9b6f9c3a in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 No symbol table info available. #6 0x00007fab9b6de436 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 No symbol table info available. #7 0x00007fab9b6f8129 in gtk_text_layout_validate_yrange () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 No symbol table info available. #8 0x00007fab9b70660c in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 No symbol table info available. #9 0x00007fab9b70883e in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 No symbol table info available. #10 0x00007fab9b708879 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 No symbol table info available. #11 0x00007fab9b280d56 in ?? () from /usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0 No symbol table info available. #12 0x00007fab9c1dad13 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 No symbol table info available. #13 0x00007fab9c1db060 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 No symbol table info available. #14 0x00007fab9c1db45a in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 No symbol table info available. #15 0x00007fab9b649397 in gtk_main () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 No symbol table info available. #16 0x000000000044d1e9 in ui_main (argc=1, argv=0x7fff6f60eef8) at gui_main.c:1677 home = <optimised out> sig = <optimised out> __FUNCTION__ = "ui_main" #17 0x0000000000476f58 in client_main (argc=1, argv=0x7fff6f60eef8) at client_main.c:620 i = 1 loglevel = LOG_NORMAL ui_options = <optimised out> ui_separator = <optimised out> option = <optimised out> user_tileset = <optimised out> fatal_assertions = -1 aii = <optimised out> __FUNCTION__ = "client_main" #18 0x00007fab9a80c76d in __libc_start_main (main=0x449f40 <main>, argc=1, ubp_av=0x7fff6f60eef8, init=<optimised out>, fini=<optimised out>, rtld_fini=<optimised out>, stack_end=0x7fff6f60eee8) at libc-start.c:226 result = <optimised out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {0, 8393117069836323930, 4497224, 140735062011632, 0, 0, -8393432895433438118, -8417963825792512934}, mask_was_saved = 0}}, priv = {pad = { 0x0, 0x0, 0x646fc0, 0x7fff6f60eef8}, data = {prev = 0x0, cleanup = 0x0, canceltype = 6582208}}} not_first_call = <optimised out> #19 0x0000000000449f71 in _start () No symbol table info available. ---- 3. A crash like this in the main thread: Program terminated with signal 11, Segmentation fault. #0 0x00007f6dfc4c611d in gtk_text_layout_get_line_display () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 No symbol table info available. #1 0x00007f6dfc4c6c3a in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 No symbol table info available. #2 0x00007f6dfc4ab436 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 No symbol table info available. #3 0x00007f6dfc4c5129 in gtk_text_layout_validate_yrange () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 No symbol table info available. #4 0x00007f6dfc4d579c in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 No symbol table info available. #5 0x00007f6dfc4d5829 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 No symbol table info available. #6 0x00007f6dfc4d5879 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 No symbol table info available. #7 0x00007f6dfc04dd56 in ?? () from /usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0 No symbol table info available. #8 0x00007f6dfcfa7d13 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 No symbol table info available. #9 0x00007f6dfcfa8060 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 No symbol table info available. #10 0x00007f6dfcfa845a in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 No symbol table info available. #11 0x00007f6dfc416397 in gtk_main () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 No symbol table info available. #12 0x000000000044d1e9 in ui_main (argc=1, argv=0x7fffaa8ca3e8) at gui_main.c:1677 home = <optimised out> sig = <optimised out> __FUNCTION__ = "ui_main" #13 0x0000000000476f58 in client_main (argc=1, argv=0x7fffaa8ca3e8) at client_main.c:620 i = 1 loglevel = LOG_NORMAL ui_options = <optimised out> ui_separator = <optimised out> option = <optimised out> user_tileset = <optimised out> fatal_assertions = -1 aii = <optimised out> __FUNCTION__ = "client_main" #14 0x00007f6dfb5d976d in __libc_start_main (main=0x449f40 <main>, argc=1, ubp_av=0x7fffaa8ca3e8, init=<optimised out>, fini=<optimised out>, rtld_fini=<optimised out>, stack_end=0x7fffaa8ca3d8) at libc-start.c:226 result = <optimised out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {0, 8989310837518138226, 4497224, 140736054731744, 0, 0, -8989422844463645838, -9071511685339645070}, mask_was_saved = 0}}, priv = {pad = { 0x0, 0x0, 0x646fc0, 0x7fffaa8ca3e8}, data = {prev = 0x0, cleanup = 0x0, canceltype = 6582208}}} not_first_call = <optimised out> #15 0x0000000000449f71 in _start () No symbol table info available. Another thread exists looking like this (not sure what this is): #0 0x00007f6dfc92705d in __pthread_mutex_unlock_usercnt ( mutex=<optimised out>, decr=<optimised out>) at pthread_mutex_unlock.c:52 type = 3 #1 __pthread_mutex_unlock (mutex=0x269efa0) at pthread_mutex_unlock.c:290 No locals. #2 0x00007f6dfcfe35e1 in g_mutex_unlock () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 No symbol table info available. #3 0x00007f6dfcfc0700 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 No symbol table info available. #4 0x00007f6dfc923c83 in __nptl_deallocate_tsd () at pthread_create.c:156 data = <optimised out> level2 = 0x7f6de04b6a10 idx = <optimised out> cnt = <optimised out> #5 0x00007f6dfc923ea8 in start_thread (arg=0x7f6de04b6700) at pthread_create.c:315 pd = 0x7f6de04b6700 now = <optimised out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {0, 8989310837518138226, 140736054729712, 140109891201472, 83103856, 3, -9071461298625676430, -9071503435553670286}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = 0 pagesize_m1 = <optimised out> sp = <optimised out> freesize = <optimised out> __PRETTY_FUNCTION__ = "start_thread" #6 0x00007f6dfb6ac3fd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112 No locals. #7 0x0000000000000000 in ?? () No symbol table info available. (This one may be unrelated, but like (2) it has gtk_text_layout_get_line_display() in the backtrace.) _______________________________________________________ Reply to this item at: <http://gna.org/bugs/?22048> _______________________________________________ Message sent via/by Gna! http://gna.org/ _______________________________________________ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev