Bug#594822: gmail makes epiphany crash when gnash plugin is installed

Tommi Vainikainen tvainika at debian.org
Sat Oct 2 19:47:33 UTC 2010


Hi,

I can also reproduce this easily with version 2.30.6-1, and confirm also
the fact that removing gnash makes gmail to work, and installing gnash
again makes epiphany to "crash". Actually on my computer epiphany just
gets stuck. It does not render window anymore, but actually I can click
on folders (Inbox or Spam) and epiphany changes the title of the window,
but does not render the content anymore.

I'm not sure if this should be reassigned to gtk-gnash or not. However
below there is also backtrace of gtk-gnash after epiphanys backtrace.

After loading gmail there is gtk-gnash process with following arguments:

/usr/bin/gtk-gnash -u https://mail.google.com/mail/im/media-api.swf?ver=1.0.2 -U https://mail.google.com/mail/?ui=2&view=js&name=main,tlist&ver=o-cM_Z_Kcc0.fi.&am=!Y-v-bx6-hLCxhZziWvP2Rhba2hGvrlsuHL4D1PP1u0x0Da3D30Ar&fri -x 44043824 -j 1 -k 1 -F 38:39 -P allowfullscreen=true -P allowscriptaccess=sameDomain -P bgcolor=#000000 -P flashvars=dbg=true&ap=previewer&nm=yj_api0&cb=Recv_yj_api0&os=linux&& -P id=flash_yj_api0 -P name=yj_api0 -P pluginspage=http://www.macromedia.com/go/getflashplayer -P quality=high -P seamlesstabbing=false -P src=im/media-api.swf?ver=1.0.2 -P style=width: 100%; height: 100%;  -P type=application/x-shockwave-flash -P wmode=window -

Here is backtraces of all threads after epiphany is "stuck" (it actually
keeps printing the syntax error already reported in this bug, so it is
not totally stuck, and I can also close gmail window and keep epiphany
running and other windows open):

(gdb) thread apply all bt full

Thread 3 (Thread 0x7fffe13de710 (LWP 3311)):
#0  pthread_cond_wait@@GLIBC_2.3.2 ()
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
No locals.
#1  0x00007ffff5044098 in WebCore::IconDatabase::syncThreadMainLoop (
    this=0x7fffe1406a00) at ../WebCore/loader/icon/IconDatabase.cpp:1412
        didAnyWork = <value optimized out>
#2  0x00007ffff5044161 in WebCore::IconDatabase::iconDatabaseSyncThread (
    this=0x7fffe1406a00) at ../WebCore/loader/icon/IconDatabase.cpp:1030
        journalFilename = {
          m_impl = {<WTF::FastAllocBase> = {<No data fields>}, 
            m_ptr = 0x7fffe140df20}}
#3  0x00007ffff1c3a8ba in start_thread (arg=<value optimized out>)
    at pthread_create.c:300
        __res = <value optimized out>
        pd = 0x7fffe13de710
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736972318480, 
                -7916324419425905188, 140737249562400, 0, 140737354125376, 3, 
                7916293065159890396, 7916329124189066716}, 
              mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, 
            data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <value optimized out>
        freesize = <value optimized out>
        __PRETTY_FUNCTION__ = "start_thread"
#4  0x00007ffff19a202d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
No locals.
#5  0x0000000000000000 in ?? ()
No symbol table info available.

Thread 2 (Thread 0x7fffe1cf7710 (LWP 3310)):
#0  pthread_cond_wait@@GLIBC_2.3.2 ()
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
No locals.
#1  0x00007ffff5355024 in WTF::TCMalloc_PageHeap::scavengerThread (
    this=0x7ffff5bb7040) at ../JavaScriptCore/wtf/FastMalloc.cpp:2378
No locals.
#2  0x00007ffff5355049 in WTF::TCMalloc_PageHeap::runScavengerThread (
    context=0x7ffff5bc5114) at ../JavaScriptCore/wtf/FastMalloc.cpp:1501
No locals.
#3  0x00007ffff1c3a8ba in start_thread (arg=<value optimized out>)
    at pthread_create.c:300
        __res = <value optimized out>
        pd = 0x7fffe1cf7710
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736981858064, 
                -7916324419425905188, 140737249562400, 0, 140737354125376, 3, 
                7916294040654337500, 7916329124189066716}, 
              mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, 
            data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <value optimized out>
        freesize = <value optimized out>
        __PRETTY_FUNCTION__ = "start_thread"
#4  0x00007ffff19a202d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
No locals.
#5  0x0000000000000000 in ?? ()
No symbol table info available.

Thread 1 (Thread 0x7ffff7fbe800 (LWP 3307)):
#0  0x00007ffff1997113 in __poll (fds=<value optimized out>, 
    nfds=<value optimized out>, timeout=0)
    at ../sysdeps/unix/sysv/linux/poll.c:87
        _a3 = 0
        _a1 = 31098352
        resultvar = <value optimized out>
        _a2 = 15
        oldtype = 0
        result = <value optimized out>
#1  0x00007ffff23992c9 in ?? () from /lib/libglib-2.0.so.0
No symbol table info available.
#2  0x00007ffff2399a75 in g_main_loop_run () from /lib/libglib-2.0.so.0
No symbol table info available.
#3  0x00007ffff40e5657 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#4  0x00000000004359a3 in main (argc=1, argv=0x7fffffffe378) at ephy-main.c:741
        option_context = <value optimized out>
        option_group = <value optimized out>
        proxy = <value optimized out>
        error = 0x0
        user_time = 1082412582






And here is a backtrace from gtk-gnash process (via gdb's set
follow-fork-mode child when starting up epiphany).






#0  0x00007ffff4a1e113 in __poll (fds=<value optimized out>, 
    nfds=<value optimized out>, timeout=9)
    at ../sysdeps/unix/sysv/linux/poll.c:87
        _a3 = 9
        _a1 = 8772720
        resultvar = <value optimized out>
        _a2 = 2
        oldtype = 0
        result = <value optimized out>
#1  0x00007ffff55ce2c9 in ?? () from /lib/libglib-2.0.so.0
No symbol table info available.
#2  0x00007ffff55cea75 in g_main_loop_run () from /lib/libglib-2.0.so.0
No symbol table info available.
#3  0x00007ffff6330657 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#4  0x0000000000444c5e in gnash::GtkGui::run (this=<value optimized out>)
    at ../../gui/gtk/gtk.cpp:341
No locals.
#5  0x000000000043b708 in gnash::Player::run (this=<value optimized out>, 
    argc=<value optimized out>, argv=0x7fffffffdf28, 
    infile=<value optimized out>, url=<value optimized out>)
    at ../../gui/Player.cpp:560
        root = {<boost::noncopyable_::noncopyable> = {<No data fields>}, 
          _runResources = @0x757320, _originalURL = {
            static npos = 18446744073709551615, 
            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, 
              _M_p = 0x853918 "https://mail.google.com/mail/im/media-api.swf?ver=1.0.2"}}, _vm = @0x851400, _interfaceHandler = 0x88cd00, 
          _fsCommandHandler = 0x88cd08, 
          _liveChars = {<std::_List_base<gnash::MovieClip*, std::allocator<gnash::MovieClip*> >> = {
              _M_impl = {<std::allocator<std::_List_node<gnash::MovieClip*> >> = {<__gnu_cxx::new_allocator<std::_List_node<gnash::MovieClip*> >> = {<No data fields>}, <No data fields>}, _M_node = {_M_next = 0x8b0660, 
                  _M_prev = 0x8b0660}}}, <No data fields>}, _actionQueue = {
            {<std::_Deque_base<gnash::ExecutableCode*, std::allocator<gnash::ExecutableCode*> >> = {
                _M_impl = {<std::allocator<gnash::ExecutableCode*>> = {<__gnu_cxx::new_allocator<gnash::ExecutableCode*>> = {<No data fields>}, <No data fields>}, _M_map = 0x7fe480, _M_map_size = 8, _M_start = {_M_cur = 0x86ee68, 
                    _M_first = 0x86ee00, _M_last = 0x86f000, 
                    _M_node = 0x7fe4a0}, _M_finish = {_M_cur = 0x86ee68, 
                    _M_first = 0x86ee00, _M_last = 0x86f000, 
                    _M_node = 0x7fe4a0}}}, <No data fields>}, 
            {<std::_Deque_base<gnash::ExecutableCode*, std::allocator<gnash::ExecutableCode*> >> = {
                _M_impl = {<std::allocator<gnash::ExecutableCode*>> = {<__gnu_cxx::new_allocator<gnash::ExecutableCode*>> = {<No data fields>}, <No data fields>}, _M_map = 0x7fe4c0, _M_map_size = 8, _M_start = {_M_cur = 0x86ea08, 
                    _M_first = 0x86ea00, _M_last = 0x86ec00, 
                    _M_node = 0x7fe4d8}, _M_finish = {_M_cur = 0x86ea08, 
                    _M_first = 0x86ea00, _M_last = 0x86ec00, 
                    _M_node = 0x7fe4d8}}}, <No data fields>}, 
            {<std::_Deque_base<gnash::ExecutableCode*, std::allocator<gnash::ExecutableCode*> >> = {
                _M_impl = {<std::allocator<gnash::ExecutableCode*>> = {<__gnu_cxx::new_allocator<gnash::ExecutableCode*>> = {<No data fields>}, <No data fields>}, _M_map = 0x7fe500, _M_map_size = 8, _M_start = {_M_cur = 0x86f728, 
                    _M_first = 0x86f600, _M_last = 0x86f800, 
                    _M_node = 0x7fe520}, _M_finish = {_M_cur = 0x86f728, 
                    _M_first = 0x86f600, _M_last = 0x86f800, 
                    _M_node = 0x7fe520}}}, <No data fields>}}, 
          _stageWidth = 1, _stageHeight = 1, m_background_color = {
            m_r = 255 '\377', m_g = 255 '\377', m_b = 255 '\377', 
            m_a = 255 '\377'}, m_background_color_set = true, _mouseX = 0, 
          _mouseY = 0, _mouseButtonState = {activeEntity = 0x0, 
            topmostEntity = 0x0, wasDown = false, isDown = false, 
            wasInsideActiveEntity = false}, _objectCallbacks = {_M_t = {
              _M_impl = {<std::allocator<std::_Rb_tree_node<gnash::ActiveRelay*> >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<gnash::ActiveRelay*> >> = {<No data fields>}, <No data fields>}, 
                _M_key_compare = {<std::binary_function<gnash::ActiveRelay*, gnash::ActiveRelay*, bool>> = {<No data fields>}, <No data fields>}, _M_header = {
                  _M_color = std::_S_red, _M_parent = 0x0, 
                  _M_left = 0x7fffffffccb8, _M_right = 0x7fffffffccb8}, 
                _M_node_count = 0}}}, 
          _loadCallbacks = {<std::_List_base<gnash::movie_root::LoadCallback, std::allocator<gnash::movie_root::LoadCallback> >> = {
              _M_impl = {<std::allocator<std::_List_node<gnash::movie_root::LoadCallback> >> = {<__gnu_cxx::new_allocator<std::_List_node<gnash::movie_root::LoadCallback> >> = {<No data fields>}, <No data fields>}, _M_node = {
                  _M_next = 0x7fffffffcce0, 
                  _M_prev = 0x7fffffffcce0}}}, <No data fields>}, 
          _intervalTimers = {_M_t = {
              _M_impl = {<std::allocator<std::_Rb_tree_node<std::pair<int const, gnash::Timer*> > >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<int const, gnash::Timer*> > >> = {<No data fields>}, <No data fields>}, 
                _M_key_compare = {<std::binary_function<int, int, bool>> = {<No data fields>}, <No data fields>}, _M_header = {_M_color = std::_S_red, 
                  _M_parent = 0xca8530, _M_left = 0xca8530, 
                  _M_right = 0xca8590}, _M_node_count = 2}}}, 
          _lastTimerId = 2, _unreleasedKeys = {<std::_Base_bitset<5ul>> = {
              _M_w = {0, 0, 0, 0, 0}}, <No data fields>}, 
          _lastKeyEvent = gnash::key::INVALID, 
          _keyListeners = {<std::_List_base<gnash::Button*, std::allocator<gnash::Button*> >> = {
              _M_impl = {<std::allocator<std::_List_node<gnash::Button*> >> = {<__gnu_cxx::new_allocator<std::_List_node<gnash::Button*> >> = {<No data fields>}, <No data fields>}, _M_node = {_M_next = 0x7fffffffcd58, 
                  _M_prev = 0x7fffffffcd58}}}, <No data fields>}, 
          _currentFocus = 0x0, m_drag_state = {_hasbounds = false, _bounds = {
              static rectNull = -2147483648, static rectMax = 2147483647, 
              _xMin = -2147483648, _yMin = -2147483648, _xMax = -2147483648, 
              _yMax = -2147483648}, _displayObject = 0x0, 
            _lock_centered = false, _xoffset = 0, _yoffset = 54}, _movies = {
            _M_t = {
              _M_impl = {<std::allocator<std::_Rb_tree_node<std::pair<int const, gnash::MovieClip*> > >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<int const, gnash::MovieClip*> > >> = {<No data fields>}, <No data fields>}, 
                _M_key_compare = {<std::binary_function<int, int, bool>> = {<No data fields>}, <No data fields>}, _M_header = {_M_color = std::_S_red, 
                  _M_parent = 0x887290, _M_left = 0x887290, 
                  _M_right = 0x887290}, _M_node_count = 1}}}, 
          _rootMovie = 0x851c00, _invalidated = false, 
          _disableScripts = false, _processingActionLevel = 3, _hostfd = 38, 
          _controlfd = 39, _quality = gnash::QUALITY_HIGH, 
          _alignMode = {<std::_Base_bitset<1ul>> = {
              _M_w = 0}, <No data fields>}, 
          _allowScriptAccess = gnash::movie_root::SCRIPT_ACCESS_SAME_DOMAIN, 
          _marshallExceptions = false, _showMenu = true, 
          _scaleMode = gnash::movie_root::SCALEMODE_SHOWALL, 
          _displayState = gnash::movie_root::DISPLAYSTATE_NORMAL, 
          _recursionLimit = 256, _timeoutLimit = 15, 
          _movieAdvancementDelay = 33, _lastMovieAdvancement = 3267, 
          _unnamedInstance = 0, 
          _movieLoader = {<boost::noncopyable_::noncopyable> = {<No data fields>}, 
            _requests = {<std::_List_base<gnash::MovieLoader::Request*, std::allocator<gnash::MovieLoader::Request*> >> = {
                _M_impl = {<std::allocator<std::_List_node<gnash::MovieLoader::Request*> >> = {<__gnu_cxx::new_allocator<std::_List_node<gnash::MovieLoader::Request*> >> = {<No data fields>}, <No data fields>}, _M_node = {
                    _M_next = 0x7fffffffce28, 
                    _M_prev = 0x7fffffffce28}}}, <No data fields>}, 
            _requestsMutex = {<boost::noncopyable_::noncopyable> = {<No data fields>}, m = {__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0, 
                  __kind = 0, __spins = 0, __list = {__prev = 0x0, 
                    __next = 0x0}}, __size = '\000' <repeats 39 times>, 
                __align = 0}}, _killed = 246, 
            _killMutex = {<boost::noncopyable_::noncopyable> = {<No data fields>}, m = {__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0, 
                  __kind = 0, __spins = 0, __list = {__prev = 0x0, 
                    __next = 0x0}}, __size = '\000' <repeats 39 times>, 
                __align = 0}}, _wakeup = {internal_mutex = {__data = {
                  __lock = 0, __count = 0, __owner = 0, __nusers = 0, 
                  __kind = 0, __spins = 0, __list = {__prev = 0x0, 
                    __next = 0x0}}, __size = '\000' <repeats 39 times>, 
                __align = 0}, cond = {__data = {__lock = 0, __futex = 0, 
                  __total_seq = 0, __wakeup_seq = 0, __woken_seq = 0, 
                  __mutex = 0x0, __nwaiters = 0, __broadcast_seq = 0}, 
                __size = '\000' <repeats 47 times>, __align = 0}}, 
            _movieRoot = @0x7fffffffcb50, _thread = {_M_ptr = 0x0}, 
            _barrier = {
              m_mutex = {<boost::noncopyable_::noncopyable> = {<No data fields>}, m = {__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0, 
                    __kind = 0, __spins = 0, __list = {__prev = 0x0, 
                      __next = 0x0}}, __size = '\000' <repeats 39 times>, 
                  __align = 0}}, m_cond = {cond = {__data = {__lock = 0, 
                    __futex = 0, __total_seq = 0, __wakeup_seq = 0, 
                    __woken_seq = 0, __mutex = 0x0, __nwaiters = 0, 
                    __broadcast_seq = 0}, __size = '\000' <repeats 47 times>, 
                  __align = 0}}, m_threshold = 2, m_count = 2, 
              m_generation = 0}}}
        __PRETTY_FUNCTION__ = "void gnash::Player::run(int, char**, const std::string&, const std::string&)"
        baseURL = {_proto = {static npos = 18446744073709551615, 
            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x70fc18 "https"}}, 
          _host = {static npos = 18446744073709551615, 
            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, 
              _M_p = 0x7078f8 "mail.google.com"}}, _port = {
            static npos = 18446744073709551615, 
            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x6687d8 ""}}, _path = {
            static npos = 18446744073709551615, 
            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x76d0d8 "/mail/"}}, 
          _anchor = {static npos = 18446744073709551615, 
            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x6687d8 ""}}, 
          _querystring = {static npos = 18446744073709551615, 
            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, 
              _M_p = 0x76d168 "ui=2&view=js&name=main,tlist&ver=o-cM_Z_Kcc0.fi.&
am=!Y-v-bx6-hLCxhZziWvP2Rhba2hGvrlsuHL4D1PP1u0x0Da3D30Ar&fri"}}}
        sp = {px = 0x74d160, pn = {pi_ = 0x70ff60}}
        loaders = {px = 0x707910, pn = {pi_ = 0x70fc20}}
        rcfile = <value optimized out>
#6  0x000000000041f035 in main (argc=40, argv=0x7fffffffdf28)
    at ../../gui/gnash.cpp:587
        player = {_hwaccel = {static npos = 18446744073709551615, 
            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x6687d8 ""}}, 
          _renderer = {static npos = 18446744073709551615, 
            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x6687d8 ""}}, 
          _callbacksHandler = {_M_ptr = 0x88cd00}, _params = {_M_t = {
              _M_impl = {<std::allocator<std::_Rb_tree_node<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >> = {<No data fields>}, <No data fields>}, _M_key_compare = {<No data fields>}, _M_header = {_M_color = std::_S_red, 
                  _M_parent = 0x707ca0, _M_left = 0x707b80, 
                  _M_right = 0x707ee0}, _M_node_count = 13}}}, _bitDepth = 32, 
          _scale = 1, _delay = 10, _width = 1, _height = 1, _xPosition = -1, 
          _yPosition = -1, _windowID = 44043586, _doLoop = true, 
          _doRender = true, _doSound = true, _exitTimeout = 0, _baseurl = {
            static npos = 18446744073709551615, 
            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, 
              _M_p = 0x763158 "https://mail.google.com/mail/?ui=2&view=js&name=main,tlist&ver=o-cM_Z_Kcc0.fi.&am=!Y-v-bx6-hLCxhZziWvP2Rhba2hGvrlsuHL4D1PP1u0x0Da3D30Ar&fri"}}, _soundHandler = {px = 0x74fc00, pn = {pi_ = 0x710000}}, 
          _mediaHandler = {px = 0x769090, pn = {pi_ = 0x70ffa0}}, 
          _runResources = {_M_ptr = 0x757320}, _gui = {_M_ptr = 0x79f1c0}, 
          _url = {static npos = 18446744073709551615, 
            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, 
              _M_p = 0x729128 "https://mail.google.com/mail/im/media-api.swf?ver=1.0.2"}}, _infile = {static npos = 18446744073709551615, 
            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x70fc78 "-"}}, 
          _movieDef = {px = 0x851000}, _maxAdvances = 0, _hostfd = 38, 
          _controlfd = 39, _startFullscreen = false, _hideMenu = false, 
          _audioDump = {static npos = 18446744073709551615, 
            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x6687d8 ""}}, 
          _screenshots = {static npos = 18446744073709551615, 
            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x6687d8 ""}}, 
          _screenshotFile = {static npos = 18446744073709551615, 
            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x6687d8 ""}}, _media = {
            static npos = 18446744073709551615, 
            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x6687d8 ""}}}


-- 
Tommi Vainikainen






More information about the pkg-gnome-maintainers mailing list