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

WebKit main loop freeze/dies with recaptcha__ru

    XMLWordPrintable

Details

    • Bug
    • Resolution: Won't Do
    • P3: Somewhat important
    • None
    • 5.14.1
    • WebKit
    • None
    • Windows

    Description

      Freeze all main loop. User can't work with program after opening sites with reCAPTCHA.
      For example this demo https://www.google.com/recaptcha/api2/demo.

      Program:

      #include <iostream>
      #include <QApplication>
      #include <QtWebKitWidgets/QWebView>
      
      int main(int argc, char** argv) {
        if (argc < 2){
            std::cerr << "no url" << std::endl;
            return 1;
        }
        const char* const url_str = argv[1];
        QApplication app(argc, argv);
        QWebView view;
        view.show();
        view.setUrl(QUrl(url_str));
        return app.exec();
      }
      

      Run with link looks like this:

       

      The program is dead .

       

      Get this on other urls, for example - https://www.dssl.ru/files/trassir/manual/es/setup-local-server.html

      Checked QNetworkReply from finished signal = `"Unknown error"`
      After few minutes program don't respond, see in log
      `qt.network.http2: stream 133 finished with error: "HTTP/2 protocol error"`. But result can be different with other urls.

      Stack:

      00 000000d0`460d8960 00007ffa`e82412e0 ntdll!RtlpFreeHeap+0x1083
      01 000000d0`460d8b10 00007ffa`e82406e1 ntdll!RtlpFreeHeapInternal+0x790
      02 000000d0`460d8bc0 00007ffa`e8305331 ntdll!RtlFreeHeap+0x51
      03 000000d0`460d8c00 00007ffa`e8241b6d ntdll!RtlDebugFreeHeap+0x241
      04 000000d0`460d8c60 00007ffa`e82412e0 ntdll!RtlpFreeHeap+0xbd
      05 000000d0`460d8e10 00007ffa`e82406e1 ntdll!RtlpFreeHeapInternal+0x790
      06 000000d0`460d8ec0 00007ffa`e61914cb ntdll!RtlFreeHeap+0x51
      07 000000d0`460d8f00 00007ffa`4c789941 ucrtbase!_free_base+0x1b
      08 (Inline Function) -------`------- Qt5WebKit!WTF::HashTable<WTF::RefPtr<WTF::UniquedStringImpl>,WTF::RefPtr<WTF::UniquedStringImpl>,WTF::IdentityExtractor,JSC::IdentifierRepHash,WTF::HashTraits<WTF::RefPtr<WTF::UniquedStringImpl> >,WTF::HashTraits<WTF::RefPtr<WTF::UniquedStringImpl> > >::{dtor}+0x11 [C:\.conan\784a25\1\source_subfolder\Source\WTF\wtf\HashTable.h @ 359]
      09 000000d0`460d8f30 00007ffa`4c7a3f4e Qt5WebKit!JSC::Scope::~Scope+0xd1
      0a 000000d0`460d8f60 00007ffa`4c71755e Qt5WebKit!WTF::Vector<JSC::Scope,10,WTF::CrashOnOverflow,16>::shrink+0x3e [C:\.conan\784a25\1\source_subfolder\Source\WTF\wtf\Vector.h @ 1027]
      0b (Inline Function) -------`------- Qt5WebKit!WTF::Vector<JSC::Scope,10,WTF::CrashOnOverflow,16>::removeLast+0x13 [C:\.conan\784a25\1\source_subfolder\Source\WTF\wtf\Vector.h @ 752]
      0c (Inline Function) -------`------- Qt5WebKit!JSC::Parser<JSC::Lexer<unsigned char> >::popScopeInternal+0x9f [C:\.conan\784a25\1\source_subfolder\Source\JavaScriptCore\parser\Parser.h @ 926]
      0d (Inline Function) -------`------- Qt5WebKit!JSC::Parser<JSC::Lexer<unsigned char> >::popScope+0x9f [C:\.conan\784a25\1\source_subfolder\Source\JavaScriptCore\parser\Parser.h @ 937]
      0e (Inline Function) -------`------- Qt5WebKit!JSC::Parser<JSC::Lexer<unsigned char> >::isArrowFunctionParameters+0x2a8 [C:\.conan\784a25\1\source_subfolder\Source\JavaScriptCore\parser\Parser.cpp @ 389]
      0f 000000d0`460d8f90 00007ffa`4c726900 Qt5WebKit!JSC::Parser<JSC::Lexer<unsigned char> >::parseAssignmentExpression<JSC::SyntaxChecker>+0x3ae [C:\.conan\784a25\1\source_subfolder\Source\JavaScriptCore\parser\Parser.cpp @ 2969]
      ...
      22e 000000d0`460f55f0 00007ffa`4c79e8ee Qt5WebKit!JSC::Parser<JSC::Lexer<unsigned char> >::parseSourceElements<JSC::ASTBuilder>+0xd2 [C:\.conan\784a25\1\source_subfolder\Source\JavaScriptCore\parser\Parser.cpp @ 415]
      22f 000000d0`460f5750 00007ffa`4c477e1e Qt5WebKit!JSC::Parser<JSC::Lexer<unsigned char> >::parseInner+0x45e [C:\.conan\784a25\1\source_subfolder\Source\JavaScriptCore\parser\Parser.cpp @ 278]
      230 000000d0`460f5d30 00007ffa`4c478a68 Qt5WebKit!JSC::Parser<JSC::Lexer<unsigned char> >::parse<JSC::ProgramNode>+0x7e [C:\.conan\784a25\1\source_subfolder\Source\JavaScriptCore\parser\Parser.h @ 1472]
      231 000000d0`460f5e70 00007ffa`4c54f44d Qt5WebKit!JSC::parse<JSC::ProgramNode>+0xf8 [C:\.conan\784a25\1\source_subfolder\Source\JavaScriptCore\parser\Parser.h @ 1556]
      232 000000d0`460f71b0 00007ffa`4c54d418 Qt5WebKit!JSC::CodeCache::getGlobalCodeBlock<JSC::UnlinkedProgramCodeBlock,JSC::ProgramExecutable>+0x18d [C:\.conan\784a25\1\source_subfolder\Source\JavaScriptCore\runtime\CodeCache.cpp @ 105]
      233 000000d0`460f7300 00007ffa`4c43e4b4 Qt5WebKit!JSC::CodeCache::getProgramCodeBlock+0x78 [C:\.conan\784a25\1\source_subfolder\Source\JavaScriptCore\runtime\CodeCache.cpp @ 137]
      234 000000d0`460f7390 00007ffa`4c665bcd Qt5WebKit!JSC::JSGlobalObject::createProgramCodeBlock+0xb4 [C:\.conan\784a25\1\source_subfolder\Source\JavaScriptCore\runtime\JSGlobalObject.cpp @ 988]
      235 000000d0`460f7470 00007ffa`4c68b873 Qt5WebKit!JSC::ProgramExecutable::initializeGlobalProperties+0x7d [C:\.conan\784a25\1\source_subfolder\Source\JavaScriptCore\runtime\Executable.cpp @ 575]
      236 000000d0`460f7620 00007ffa`4c4754de Qt5WebKit!JSC::Interpreter::execute+0x27d3 [C:\.conan\784a25\1\source_subfolder\Source\JavaScriptCore\interpreter\Interpreter.cpp @ 948]
      237 000000d0`460f8260 00007ffa`4c475600 Qt5WebKit!JSC::evaluate+0x2ae [C:\.conan\784a25\1\source_subfolder\Source\JavaScriptCore\runtime\Completion.cpp @ 108]
      238 000000d0`460f82e0 00007ffa`4d3eb088 Qt5WebKit!JSC::profiledEvaluate+0xa0 [C:\.conan\784a25\1\source_subfolder\Source\JavaScriptCore\runtime\Completion.cpp @ 121]
      239 (Inline Function) -------`------- Qt5WebKit!WebCore::JSMainThreadExecState::profiledEvaluate+0x4e [C:\.conan\784a25\1\source_subfolder\Source\WebCore\bindings\js\JSMainThreadExecState.h @ 80]
      23a 000000d0`460f8370 00007ffa`4d3eaf4b Qt5WebKit!WebCore::ScriptController::evaluateInWorld+0x118 [C:\.conan\784a25\1\source_subfolder\Source\WebCore\bindings\js\ScriptController.cpp @ 164]
      23b 000000d0`460f8430 00007ffa`4cdb64ad Qt5WebKit!WebCore::ScriptController::evaluate+0x3b [C:\.conan\784a25\1\source_subfolder\Source\WebCore\bindings\js\ScriptController.cpp @ 181]
      23c 000000d0`460f8470 00007ffa`4cdbac7f Qt5WebKit!WebCore::ScriptElement::executeScript+0x29d [C:\.conan\784a25\1\source_subfolder\Source\WebCore\dom\ScriptElement.cpp @ 320]
      23d (Inline Function) -------`------- Qt5WebKit!WebCore::ScriptElement::execute+0x3e [C:\.conan\784a25\1\source_subfolder\Source\WebCore\dom\ScriptElement.cpp @ 340]
      23e 000000d0`460f84e0 00007ffa`4d728b10 Qt5WebKit!WebCore::ScriptRunner::timerFired+0x2af [C:\.conan\784a25\1\source_subfolder\Source\WebCore\dom\ScriptRunner.cpp @ 119]
      23f (Inline Function) -------`------- Qt5WebKit!WebCore::ThreadTimers::sharedTimerFiredInternal+0x91 [C:\.conan\784a25\1\source_subfolder\Source\WebCore\platform\ThreadTimers.cpp @ 121]
      240 000000d0`460f85d0 00007ffa`4f3d6ccd Qt5WebKit!<lambda_ef34d3d5acbb6f2c0fc126d1738e6187>::operator()+0xa0 [C:\.conan\784a25\1\source_subfolder\Source\WebCore\platform\ThreadTimers.cpp @ 73]
      241 000000d0`460f8630 00007ffa`4f944b61 Qt5Core!QObject::event+0x8d
      242 000000d0`460f8840 00007ffa`4f943ad8 Qt5Widgets!QApplicationPrivate::notify_helper+0x111
      243 000000d0`460f8870 00007ffa`4f3b083a Qt5Widgets!QApplication::notify+0x1938
      244 000000d0`460f8da0 00007ffa`4f3f8790 Qt5Core!QCoreApplication::notifyInternal2+0xba
      245 000000d0`460f8e10 00007ffa`4f944b61 Qt5Core!QEventDispatcherWin32::event+0xd0
      246 000000d0`460f8e60 00007ffa`4f943ad8 Qt5Widgets!QApplicationPrivate::notify_helper+0x111
      247 000000d0`460f8e90 00007ffa`4f3b083a Qt5Widgets!QApplication::notify+0x1938
      248 000000d0`460f93c0 00007ffa`4f3b2505 Qt5Core!QCoreApplication::notifyInternal2+0xba
      249 000000d0`460f9430 00007ffa`4be9004f Qt5Core!QCoreApplicationPrivate::sendPostedEvents+0x215
      24a 000000d0`460f94f0 00007ffa`4f3f8a6a qwindows!qt_plugin_query_metadata+0x1dcf
      24b 000000d0`460f9520 00007ffa`4be90029 Qt5Core!QEventDispatcherWin32::processEvents+0x6a
      24c 000000d0`460fc640 00007ffa`4f3acd1c qwindows!qt_plugin_query_metadata+0x1da9
      24d 000000d0`460fc670 00007ffa`4f3af8b4 Qt5Core!QEventLoop::exec+0x1cc
      24e 000000d0`460fc6d0 00007ff6`17cce42b Qt5Core!QCoreApplication::exec+0x154
      

      I guess freeze on parsing https://www.gstatic.com/recaptcha/releases/Ixi5IiChXmIG6rRkjUa1qXHT/recaptcha__ru.js

      0:000> db 0x00000247074bcf48 L54h
      00000247`074bcf48 68 74 74 70 73 3a 2f 2f-77 77 77 2e 67 73 74 61 https://www.gsta
      00000247`074bcf58 74 69 63 2e 63 6f 6d 2f-72 65 63 61 70 74 63 68 tic.com/recaptch
      00000247`074bcf68 61 2f 72 65 6c 65 61 73-65 73 2f 49 78 69 35 49 a/releases/Ixi5I
      00000247`074bcf78 69 43 68 58 6d 49 47 36-72 52 6b 6a 55 61 31 71 iChXmIG6rRkjUa1q
      00000247`074bcf88 58 48 54 2f 72 65 63 61-70 74 63 68 61 5f 5f 72 XHT/recaptcha__r
      00000247`074bcf98 75 2e 6a 73 u.js

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            annulen Konstantin Tokarev
            mishukov.nikita Nikita Mishukov
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes