Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-82832

WebEngine Segmentation Fault When Using a Proxy Server (Privoxy)

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: P1: Critical
    • Resolution: Done
    • Affects Version/s: 5.15
    • Fix Version/s: 5.15.0 RC
    • Component/s: WebEngine
    • Labels:
      None
    • Environment:
      Gentoo Linux
    • Platform/s:
      Linux/X11
    • Commits:
      a05bb73747620dd8f0294a57ff690a4f4202884e

      Description

      Having Privoxy set as the proxy server in Falkon sometimes leads to a segmentation fault (or at least so far I have been unable to reproduce without a proxy server set).

      I've not found a way to reproduce it 100% of the time, but going to the SQUARE ENIX Final Fantasy XI forums [1] and then middle-click opening 'インフォメーション' [2] in new tabs repeatedly will usually lead to the crash in less than 11 clicks (I think any link there should work, or simply navigating around the site; it does not need to be new tabs being opened).

      (I've also had segfaults when closing tabs, but I don't have a way to reproduce it to even this extent yet.)

      So far crashing like this can lead to at least two different backtraces:

      Starting program: /usr/bin/falkon -p segfault
      [Thread debugging using libthread_db enabled]
      Using host libthread_db library "/lib64/libthread_db.so.1".
      [New Thread 0x7fffe6daf700 (LWP 31515)]
      Falkon: Starting with profile 'segfault'
      [New Thread 0x7fffe4a0a700 (LWP 31516)]
      [Detaching after fork from child process 31517]
      [New Thread 0x7fffde28d700 (LWP 31518)]
      [New Thread 0x7fffdda8c700 (LWP 31519)]
      [New Thread 0x7fffdd28b700 (LWP 31520)]
      [New Thread 0x7fffdca8a700 (LWP 31521)]
      [New Thread 0x7fffcffff700 (LWP 31522)]
      [New Thread 0x7fffcf7fe700 (LWP 31523)]
      [New Thread 0x7fffceffd700 (LWP 31524)]
      [New Thread 0x7fffce7fc700 (LWP 31526)]
      [New Thread 0x7fffcdffb700 (LWP 31528)]
      [New Thread 0x7fffcd7fa700 (LWP 31529)]
      [New Thread 0x7fffccff9700 (LWP 31530)]
      [New Thread 0x7fffabfff700 (LWP 31532)]
      [New Thread 0x7fffab7fe700 (LWP 31534)]
      Use of deprecated not thread-safe setter, use setUrlRequestInterceptor instead.
      [New Thread 0x7fffaaffd700 (LWP 31535)]
      Falkon: 1 extensions loaded
      [New Thread 0x7fffaa7fc700 (LWP 31536)]
      [New Thread 0x7fffa9ffb700 (LWP 31537)]
      [New Thread 0x7fffa97fa700 (LWP 31538)]
      [New Thread 0x7fffa8ff9700 (LWP 31539)]
      [New Thread 0x7fff8bfff700 (LWP 31540)]
      [New Thread 0x7fff8b7fe700 (LWP 31541)]
      [Detaching after fork from child process 31542]
      [New Thread 0x7fff8affd700 (LWP 31543)]
      [New Thread 0x7fff89aa2700 (LWP 31569)]
      [New Thread 0x7fff88ea1700 (LWP 31600)]
      
      Thread 1 "falkon" received signal SIGSEGV, Segmentation fault.
      QtWebEngineCore::ProfileIODataQt::requestInterceptor (this=0x36332e3733352f)
          at /[...]/qtwebengine-5.15.9999/src/core/profile_io_data_qt.cpp:360
      360     /[...]/qtwebengine-5.15.9999/src/core/profile_io_data_qt.cpp: No such file or directory.
      (gdb) bt
      #0  QtWebEngineCore::ProfileIODataQt::requestInterceptor (this=0x36332e3733352f)
          at /[...]/qtwebengine-5.15.9999/src/core/profile_io_data_qt.cpp:360
      #1  0x00007fffefdf6c6e in QtWebEngineCore::InterceptedRequest::InterceptOnUIThread (this=0x7fffc8ccab50)
          at /[...]/qtwebengine-5.15.9999/src/core/net/proxying_url_loader_factory_qt.cpp:259
      #2  0x00007fffefdf6731 in base::internal::FunctorTraits<void (QtWebEngineCore::InterceptedRequest::*)(), void>::Invoke<void (QtWebEngineCore::InterceptedRequest::*)(), QtWebEngineCore::InterceptedRequest*> (receiver_ptr=<optimized out>, method=<optimized out>)
          at ../../../../qtwebengine-5.15.9999/src/3rdparty/chromium/base/bind_internal.h:495
      #3  base::internal::InvokeHelper<false, void>::MakeItSo<void (QtWebEngineCore::InterceptedRequest::*)(), QtWebEngineCore::InterceptedRequest*> (functor=<optimized out>) at ../../../../qtwebengine-5.15.9999/src/3rdparty/chromium/base/bind_internal.h:598
      #4  base::internal::Invoker<base::internal::BindState<void (QtWebEngineCore::InterceptedRequest::*)(), base::internal::UnretainedWrapper<QtWebEngineCore::InterceptedRequest> >, void ()>::RunImpl<void (QtWebEngineCore::InterceptedRequest::*)(), std::tuple<base::internal::UnretainedWrapper<QtWebEngineCore::InterceptedRequest> >, 0ul>(void (QtWebEngineCore::InterceptedRequest::*&&)(), std::tuple<base::internal::UnretainedWrapper<QtWebEngineCore::InterceptedRequest> >&&, std::integer_sequence<unsigned long, 0ul>) (bound=..., 
          functor=<optimized out>) at ../../../../qtwebengine-5.15.9999/src/3rdparty/chromium/base/bind_internal.h:672
      #5  base::internal::Invoker<base::internal::BindState<void (QtWebEngineCore::InterceptedRequest::*)(), base::internal::UnretainedWrapper<QtWebEngineCore::InterceptedRequest> >, void ()>::RunOnce(base::internal::BindStateBase*) (base=<optimized out>)
          at ../../../../qtwebengine-5.15.9999/src/3rdparty/chromium/base/bind_internal.h:640
      #6  0x00007ffff1c619a4 in base::TaskAnnotator::RunTask(char const*, base::PendingTask*) () from /usr/lib64/libQt5WebEngineCore.so.5
      #7  0x00007ffff1c74357 in base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl(base::sequence_manager::LazyNow*, bool*) () from /usr/lib64/libQt5WebEngineCore.so.5
      #8  0x00007ffff1c7498b in base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork() ()
         from /usr/lib64/libQt5WebEngineCore.so.5
      #9  0x00007fffefda5884 in QtWebEngineCore::MessagePumpForUIQt::handleScheduledWork (this=0x0)
          at /[...]/qtwebengine-5.15.9999/src/core/browser_main_parts_qt.cpp:202
      #10 QtWebEngineCore::MessagePumpForUIQt::MessagePumpForUIQt()::{lambda()#1}::operator()() const (__closure=<optimized out>)
          at /[...]/qtwebengine-5.15.9999/src/core/browser_main_parts_qt.cpp:115
      #11 std::_Function_handler<void (), QtWebEngineCore::MessagePumpForUIQt::MessagePumpForUIQt()::{lambda()#1}>::_M_invoke(std::_Any_data const&) (__functor=...) at /usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/g++-v9/bits/std_function.h:300
      #12 0x00007ffff5b19df7 in std::function<void ()>::operator()() const (this=0x555555a4d4c8)
          at /usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/g++-v9/bits/std_function.h:685
      #13 QWebEngineMessagePumpScheduler::timerEvent (this=0x555555a4d4b0, ev=<optimized out>)
          at /[...]/qtwebengine-5.15.9999/src/core/api/qwebenginemessagepumpscheduler.cpp:71
      #14 0x00007ffff7297a23 in QObject::event (this=0x555555a4d4b0, e=0x55555979d030)
          at /[...]/qtcore-5.15.9999/src/corelib/kernel/qobject.cpp:1291
      #15 0x00007ffff76825bd in QApplicationPrivate::notify_helper (this=this@entry=0x55555557b3d0, receiver=0x555555a4d4b0, 
          receiver@entry=0x7fffffffce00, e=e@entry=0x55555979d030)
          at /[...]/qtwidgets-5.15.9999/src/widgets/kernel/qapplication.cpp:3673
      #16 0x00007ffff768a570 in QApplication::notify (this=0x7fffffffd6f0, receiver=0x7fffffffce00, e=0x55555979d030)
          at /[...]/qtwidgets-5.15.9999/src/widgets/kernel/qapplication.cpp:3013
      #17 0x00007ffff726d3a3 in QCoreApplication::notifyInternal2 (receiver=0x555555a4d4b0, event=0x55555979d030)
          at /[...]/qtcore-5.15.9999/src/corelib/kernel/qcoreapplication.cpp:1061
      #18 0x00007ffff726d576 in QCoreApplication::sendEvent (receiver=receiver@entry=0x555555a4d4b0, event=event@entry=0x55555979d030)
          at /[...]/qtcore-5.15.9999/src/corelib/kernel/qcoreapplication.cpp:1456
      #19 0x00007ffff727069c in QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, 
          data=0x55555557b540)
          at /[...]/qtcore-5.15.9999/src/corelib/kernel/qcoreapplication.cpp:1815
      #20 0x00007ffff7270b33 in QCoreApplication::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0)
          at /[...]/qtcore-5.15.9999/src/corelib/kernel/qcoreapplication.cpp:1674
      #21 0x00007ffff72c3c2b in postEventSourceDispatch (s=0x5555555d3c90)
          at /[...]/qtcore-5.15.9999/src/corelib/kernel/qeventdispatcher_glib.cpp:277
      #22 0x00007fffee0fdc6e in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
      #23 0x00007fffee0fdf08 in ?? () from /usr/lib64/libglib-2.0.so.0
      #24 0x00007fffee0fdf9f in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
      #25 0x00007ffff72c39ce in QEventDispatcherGlib::processEvents (this=0x55555557f9f0, flags=...)
          at /[...]/qtcore-5.15.9999/src/corelib/kernel/qeventdispatcher_glib.cpp:423
      #26 0x00007fffe6fb6d6c in QXcbGlibEventDispatcher::processEvents (this=<optimized out>, flags=...)
          at /[...]/qtgui-5.15.9999/src/plugins/platforms/xcb/qxcbeventdispatcher.cpp:143
      #27 0x00007ffff726bbbf in QEventLoop::processEvents (this=this@entry=0x7fffffffd650, flags=..., flags@entry=...)
          at /usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/g++-v9/bits/atomic_base.h:734
      #28 0x00007ffff726c056 in QEventLoop::exec (this=this@entry=0x7fffffffd650, flags=..., flags@entry=...)
          at ../../include/QtCore/../../../qtcore-5.15.9999/src/corelib/global/qflags.h:141
      #29 0x00007ffff72748e7 in QCoreApplication::exec () at ../../include/QtCore/../../../qtcore-5.15.9999/src/corelib/global/qflags.h:121
      #30 0x00007fffee95d4a8 in QGuiApplication::exec ()
          at /[...]/qtgui-5.15.9999/src/gui/kernel/qguiapplication.cpp:1864
      #31 0x00007ffff768252b in QApplication::exec ()
          at /[...]/qtwidgets-5.15.9999/src/widgets/kernel/qapplication.cpp:2813
      #32 0x0000555555556941 in main (argc=<optimized out>, argv=<optimized out>)
      

      Second one:

      Starting program: /usr/bin/falkon -p segfault
      [Thread debugging using libthread_db enabled]
      Using host libthread_db library "/lib64/libthread_db.so.1".
      [New Thread 0x7fffe6daf700 (LWP 5323)]
      Falkon: Starting with profile 'segfault'
      [New Thread 0x7fffe4a05700 (LWP 5373)]
      [Detaching after fork from child process 5375]
      [New Thread 0x7fffde28d700 (LWP 5379)]
      [New Thread 0x7fffdda8c700 (LWP 5384)]
      [New Thread 0x7fffdd28b700 (LWP 5386)]
      [New Thread 0x7fffdca8a700 (LWP 5387)]
      [New Thread 0x7fffcffff700 (LWP 5389)]
      [New Thread 0x7fffcf7fe700 (LWP 5393)]
      [New Thread 0x7fffce7fc700 (LWP 5395)]
      [New Thread 0x7fffceffd700 (LWP 5394)]
      [New Thread 0x7fffcd7fa700 (LWP 5398)]
      [New Thread 0x7fffccff9700 (LWP 5399)]
      [New Thread 0x7fffb7fff700 (LWP 5400)]
      [New Thread 0x7fffcdffb700 (LWP 5397)]
      [New Thread 0x7fffb77fe700 (LWP 5401)]
      [New Thread 0x7fffb6ffd700 (LWP 5402)]
      [New Thread 0x7fffb67fc700 (LWP 5435)]
      [New Thread 0x7fffb5ffb700 (LWP 5443)]
      Use of deprecated not thread-safe setter, use setUrlRequestInterceptor instead.
      Falkon: 1 extensions loaded
      [New Thread 0x7fffb57fa700 (LWP 5484)]
      [New Thread 0x7fffb4ff9700 (LWP 5486)]
      [New Thread 0x7fff8bfff700 (LWP 5487)]
      [New Thread 0x7fff8b7fe700 (LWP 5488)]
      [New Thread 0x7fff8affd700 (LWP 5490)]
      [New Thread 0x7fff8a7fc700 (LWP 5491)]
      [New Thread 0x7fff89ffb700 (LWP 5493)]
      [New Thread 0x7fff897fa700 (LWP 5499)]
      [Detaching after fork from child process 5501]
      [New Thread 0x7fff88ff9700 (LWP 5502)]
      [New Thread 0x7fff6b752700 (LWP 5532)]
      [New Thread 0x7fff6af51700 (LWP 5925)]
      [Thread 0x7fffcdffb700 (LWP 5397) exited]
      [Thread 0x7fffce7fc700 (LWP 5395) exited]
      [Thread 0x7fffccff9700 (LWP 5399) exited]
      [Thread 0x7fffcd7fa700 (LWP 5398) exited]
      [New Thread 0x7fffcd7fa700 (LWP 6693)]
      
      Thread 6 "Chrome_IOThread" received signal SIGSEGV, Segmentation fault.
      [Switching to Thread 0x7fffdd28b700 (LWP 5386)]
      QWebEngineUrlRequestInfo::changed (this=this@entry=0xb38) at /usr/include/qt5/QtCore/qscopedpointer.h:116
      warning: Source file is more recent than executable.
      116         T *operator->() const noexcept
      (gdb) bt
      #0  QWebEngineUrlRequestInfo::changed (this=this@entry=0xb38) at /usr/include/qt5/QtCore/qscopedpointer.h:116
      #1  0x00007fffefdf9e0f in QtWebEngineCore::InterceptedRequest::ContinueAfterIntercept (this=0x50)
          at /[...]/qtwebengine-5.15.9999/src/core/net/proxying_url_loader_factory_qt.cpp:278
      #2  0x00007fffefdf681c in base::internal::FunctorTraits<void (QtWebEngineCore::InterceptedRequest::*)(), void>::Invoke<void (QtWebEngineCore::InterceptedRequest::*)(), base::WeakPtr<QtWebEngineCore::InterceptedRequest>>(void (QtWebEngineCore::InterceptedRequest::*)(), base::WeakPtr<QtWebEngineCore::InterceptedRequest>&&) (receiver_ptr=..., method=<optimized out>)
          at ../../../../qtwebengine-5.15.9999/src/3rdparty/chromium/base/memory/weak_ptr.h:254
      #3  base::internal::InvokeHelper<true, void>::MakeItSo<void (QtWebEngineCore::InterceptedRequest::*)(), base::WeakPtr<QtWebEngineCore::InterceptedRequest>>(void (QtWebEngineCore::InterceptedRequest::*&&)(), base::WeakPtr<QtWebEngineCore::InterceptedRequest>&&) (
          weak_ptr=..., 
          functor=@0x555558e954f0: (void (QtWebEngineCore::InterceptedRequest::*)(QtWebEngineCore::InterceptedRequest * const)) 0x7fffefdf9dda <QtWebEngineCore::InterceptedRequest::ContinueAfterIntercept()>)
          at ../../../../qtwebengine-5.15.9999/src/3rdparty/chromium/base/bind_internal.h:618
      #4  base::internal::Invoker<base::internal::BindState<void (QtWebEngineCore::InterceptedRequest::*)(), base::WeakPtr<QtWebEngineCore::InterceptedRequest> >, void ()>::RunImpl<void (QtWebEngineCore::InterceptedRequest::*)(), std::tuple<base::WeakPtr<QtWebEngineCore::InterceptedRequest> >, 0ul>(void (QtWebEngineCore::InterceptedRequest::*&&)(), std::tuple<base::WeakPtr<QtWebEngineCore::InterceptedRequest> >&&, std::integer_sequence<unsigned long, 0ul>) (bound=..., 
          functor=@0x555558e954f0: (void (QtWebEngineCore::InterceptedRequest::*)(QtWebEngineCore::InterceptedRequest * const)) 0x7fffefdf9dda <QtWebEngineCore::InterceptedRequest::ContinueAfterIntercept()>)
          at ../../../../qtwebengine-5.15.9999/src/3rdparty/chromium/base/bind_internal.h:672
      #5  base::internal::Invoker<base::internal::BindState<void (QtWebEngineCore::InterceptedRequest::*)(), base::WeakPtr<QtWebEngineCore::InterceptedRequest> >, void ()>::RunOnce(base::internal::BindStateBase*) (base=0x555558e954d0)
          at ../../../../qtwebengine-5.15.9999/src/3rdparty/chromium/base/bind_internal.h:640
      #6  0x00007ffff1c619a4 in base::TaskAnnotator::RunTask(char const*, base::PendingTask*) () from /usr/lib64/libQt5WebEngineCore.so.5
      #7  0x00007ffff1c74357 in base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl(base::sequence_manager::LazyNow*, bool*) () from /usr/lib64/libQt5WebEngineCore.so.5
      #8  0x00007ffff1c7481c in base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoSomeWork() ()
         from /usr/lib64/libQt5WebEngineCore.so.5
      #9  0x00007ffff1cc43c6 in base::MessagePumpLibevent::Run(base::MessagePump::Delegate*) () from /usr/lib64/libQt5WebEngineCore.so.5
      #10 0x00007ffff1c646e8 in base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run(bool, base::TimeDelta) ()
         from /usr/lib64/libQt5WebEngineCore.so.5
      #11 0x00007ffff1c520fa in base::RunLoop::Run() () from /usr/lib64/libQt5WebEngineCore.so.5
      #12 0x0000000000000000 in ?? ()
      

      1. http://forum.square-enix.com/ffxi/forum.php
      2. http://forum.square-enix.com/ffxi/forums/2-インフォメーション

        Attachments

        For Gerrit Dashboard: QTBUG-82832
        # Subject Branch Project Status CR V

          Activity

            People

            Assignee:
            michal Michal Klocek
            Reporter:
            chiitoo chiitoo
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:

                Gerrit Reviews

                There are no open Gerrit changes