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

Reply via email to