Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Looks like the SIGNAL loadFinished(bool) is not emitted anymore with Qt 6.8.1
Forum Updated to NodeBB v4.3 + New Features

Looks like the SIGNAL loadFinished(bool) is not emitted anymore with Qt 6.8.1

Scheduled Pinned Locked Moved Solved General and Desktop
67 Posts 5 Posters 9.1k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • V Offline
    V Offline
    Volker75
    wrote on last edited by Volker75
    #5

    hmm... Thank you for checking. Did you tried that with Windows or Linux? I am using Linux.
    I don't know how to locate the bug:
    I wrote this:

    viewPreview->setHtml(updateHTMLprintString(true));
    qDebug("setHtml");
    

    I can see the Debug information in the terminal.

    I also wrote this:

    void TimetablePrintForm::printPreviewReadyToStart(bool ok){
       qDebug("printPreview");
       ...
    

    But I can NOT see the debug information in the terminal.

    I compiled once again with Qt 6.7.2 and it is working fine. With Qt 6.7.2 I can see it in the terminal and it is working fine.

    I compiled again with Qt 6.8.1 and it doesn't work. :-( No "printPreview" debug information in the terminal. The GUI is frozen and I can't click on anything.

    I have no idea how I can locate the bug.

    1 Reply Last reply
    0
    • C Offline
      C Offline
      ChrisW67
      wrote on last edited by
      #6

      For my part: Linux, GCC 13, Qt 6.8.1 from online installer

      @Volker75 said in Looks like the SIGNAL loadFinished(bool) is not emitted anymore with Qt 6.8.1:

      I wrote this:

      Where is this in your code? In a constructor, a slot, ...?

      Do you see the same issue with my example?

      1 Reply Last reply
      0
      • V Volker75

        Hallo,

        I updated from Qt 6.7.2 to Qt 6.8.1.
        With the old version my source was running fine under Linux.
        Now, after the update, I compiled my source again. There is no error message but it look like a signal is not emitted anymore.
        I have lines like this:

        viewPreview = new QWebEngineView(this);
        ...
        connect(viewPreview, SIGNAL(loadFinished(bool)), this, SLOT(printPreviewReadyToStart(bool)));
        

        And the signal should be emitted by this line:

        viewPreview->setHtml(updateHTMLprintString(true));
        

        Any idea why this doesn't work anymore with the new Qt version?

        Thank you!

        JonBJ Offline
        JonBJ Offline
        JonB
        wrote on last edited by
        #7

        @Volker75
        Don't know whether this might help or not, but reading this last night it struck me that, assuming it is indeed the case, there might actually be two possible causes. One is that the Qt version does not emit the loadFinished signal, but the other is that, for whatever reason, the page load itself is not completing or is not recognised as completing in the first place. Maybe put in client-side JS/jQuery code on whatever its onDocumentReady() JS event is with a message box or similar to verify that is happening?

        Having said that, if two other people find it does work on the same Qt version it might be something about your code.

        1 Reply Last reply
        0
        • V Offline
          V Offline
          Volker75
          wrote on last edited by Volker75
          #8

          Thank you for your answer! Sadly I don't understand "Maybe put in client-side JS/jQuery code on whatever its onDocumentReady() JS event is with a message box or similar to verify that is happening?"

          Can you please explain it a bit more detailed? I don't understand what you man with "client-side JS/jQuery code". I only code c++/Qt and html. I don't code JS/jQuery. So I don't know what and where I should do something.

          I can't compile your example code.

          1 Reply Last reply
          0
          • V Offline
            V Offline
            Volker75
            wrote on last edited by Volker75
            #9

            Some more information (see also my answer from 5 minutes ago) about your questions where the code is:
            The setHtml stuff is in a function

            void TimetablePrintForm::print(){
               ...
               viewPreview->setHtml(updateHTMLprintString(true));
            

            The viewPreview = new QWebEngineView(this); is in a constructor:

            TimetablePrintForm::TimetablePrintForm(QWidget *parent): QDialog(parent){
               ...
               viewPreview = new QWebEngineView(this); 
            

            Hmm... the only difference that I see in the code is, that I am using in the connect() the makros SINGNAL and SLOT, while you coded it without the makros.
            The other difference is heap and stack.
            I wrote:
            viewPreview = new QWebEngineView(this);

            while you wrote:
            QWebEngineView *view = new QWebEngineView(this);

            So you think it might be because of that?

            JonBJ 1 Reply Last reply
            0
            • V Volker75

              Some more information (see also my answer from 5 minutes ago) about your questions where the code is:
              The setHtml stuff is in a function

              void TimetablePrintForm::print(){
                 ...
                 viewPreview->setHtml(updateHTMLprintString(true));
              

              The viewPreview = new QWebEngineView(this); is in a constructor:

              TimetablePrintForm::TimetablePrintForm(QWidget *parent): QDialog(parent){
                 ...
                 viewPreview = new QWebEngineView(this); 
              

              Hmm... the only difference that I see in the code is, that I am using in the connect() the makros SINGNAL and SLOT, while you coded it without the makros.
              The other difference is heap and stack.
              I wrote:
              viewPreview = new QWebEngineView(this);

              while you wrote:
              QWebEngineView *view = new QWebEngineView(this);

              So you think it might be because of that?

              JonBJ Offline
              JonBJ Offline
              JonB
              wrote on last edited by JonB
              #10

              @Volker75
              You can inject JavaScript into a QWebEnginePage via its runJavaScript() method. You can set its document.onReady to some JS which, say, shows a message box so you know whether it got there. I mentioned this at https://forum.qt.io/post/779514. I don't have the code to hand, but let's not worry about this yet.

              Your code uses heap, not stack, just as much as the other poster's. You both retrieve a pointer to a new QWebEngineView(this), the only difference is you keep that in (presumably) a member variable. Anyway they are equivalent.

              I would have said to check whether connect() via PMF syntax instead of old-style was the issue, but @hskoglund posted above to say he tried same as yours and it did work for him, so presumably that is not an issue (though you could try the PMF syntax if you wish, I would never use old-style nowadays).

              Given that loadFinished() is not working for you, I would start by connecting the other signals at https://doc.qt.io/qt-6/qwebengineview.html#signals as well. Do you receive loadStarted()? What about loadProgress()? You don't get renderProcessTerminated() do you?

              1 Reply Last reply
              0
              • V Offline
                V Offline
                Volker75
                wrote on last edited by
                #11

                I added singals now for loadStarted() and loadProgress() and I wrote functions that print qDebug informations.
                With Qt 6.7.2 I can see both!
                With Qt 6.8.1 I can't see it. So it also look like the signals for loadStarted and loadProgress are not emitted!
                hmm...
                I don't understand the problem.
                I will try to get rid of the SIGNAL and SLOTS makros and I will try to use a pointer for the viewPreview. But I can't do that now. I must do some other stuff now. I will report later if I was successful or not.

                1 Reply Last reply
                0
                • V Offline
                  V Offline
                  Volker75
                  wrote on last edited by
                  #12

                  I just noticed an other thing. Not only the signals are not emitted anymore, I can also see a lot of valgrind warnings if i start my application. But if I start my application, then it is not my fault, since the webview is not in my main dialog. It is only a a sub dialog that i didn't started at that time!
                  I compiled with debug information -g and i can see that the problem is not in my source. The problem is in the qt webengine source as soon as the Qt library is linked the first time.
                  There are a lot of warnings like this: Even with this warnings it is working with 6.7.2. But it failed with 6.8.1. So it looks like it is the bug in Qt.

                  Thread 28 Chrome_InProcGpu:
                  ==9401== Conditional jump or move depends on uninitialised value(s)
                  ==9401==    at 0xCA6EA0E: ??? (in /home/volker/Qt/6.7.2/gcc_64/lib/libQt6WebEngineCore.so.6.7.2)
                  ==9401==    by 0xCA56BCA: ??? (in /home/volker/Qt/6.7.2/gcc_64/lib/libQt6WebEngineCore.so.6.7.2)
                  ==9401==    by 0xCA59FFA: ??? (in /home/volker/Qt/6.7.2/gcc_64/lib/libQt6WebEngineCore.so.6.7.2)
                  ==9401==    by 0xCA41FB5: ??? (in /home/volker/Qt/6.7.2/gcc_64/lib/libQt6WebEngineCore.so.6.7.2)
                  ==9401==    by 0xCA42698: ??? (in /home/volker/Qt/6.7.2/gcc_64/lib/libQt6WebEngineCore.so.6.7.2)
                  ==9401==    by 0x80318F4: ??? (in /home/volker/Qt/6.7.2/gcc_64/lib/libQt6WebEngineCore.so.6.7.2)
                  ==9401==    by 0x8032635: ??? (in /home/volker/Qt/6.7.2/gcc_64/lib/libQt6WebEngineCore.so.6.7.2)
                  ==9401==    by 0x8035622: ??? (in /home/volker/Qt/6.7.2/gcc_64/lib/libQt6WebEngineCore.so.6.7.2)
                  ==9401==    by 0x8035A9B: ??? (in /home/volker/Qt/6.7.2/gcc_64/lib/libQt6WebEngineCore.so.6.7.2)
                  ==9401==    by 0x8035EBA: ??? (in /home/volker/Qt/6.7.2/gcc_64/lib/libQt6WebEngineCore.so.6.7.2)
                  ==9401==    by 0x80494CA: ??? (in /home/volker/Qt/6.7.2/gcc_64/lib/libQt6WebEngineCore.so.6.7.2)
                  ==9401==    by 0xD4F15D2: ??? (in /home/volker/Qt/6.7.2/gcc_64/lib/libQt6WebEngineCore.so.6.7.2)
                  
                  JonBJ 1 Reply Last reply
                  0
                  • V Volker75

                    I just noticed an other thing. Not only the signals are not emitted anymore, I can also see a lot of valgrind warnings if i start my application. But if I start my application, then it is not my fault, since the webview is not in my main dialog. It is only a a sub dialog that i didn't started at that time!
                    I compiled with debug information -g and i can see that the problem is not in my source. The problem is in the qt webengine source as soon as the Qt library is linked the first time.
                    There are a lot of warnings like this: Even with this warnings it is working with 6.7.2. But it failed with 6.8.1. So it looks like it is the bug in Qt.

                    Thread 28 Chrome_InProcGpu:
                    ==9401== Conditional jump or move depends on uninitialised value(s)
                    ==9401==    at 0xCA6EA0E: ??? (in /home/volker/Qt/6.7.2/gcc_64/lib/libQt6WebEngineCore.so.6.7.2)
                    ==9401==    by 0xCA56BCA: ??? (in /home/volker/Qt/6.7.2/gcc_64/lib/libQt6WebEngineCore.so.6.7.2)
                    ==9401==    by 0xCA59FFA: ??? (in /home/volker/Qt/6.7.2/gcc_64/lib/libQt6WebEngineCore.so.6.7.2)
                    ==9401==    by 0xCA41FB5: ??? (in /home/volker/Qt/6.7.2/gcc_64/lib/libQt6WebEngineCore.so.6.7.2)
                    ==9401==    by 0xCA42698: ??? (in /home/volker/Qt/6.7.2/gcc_64/lib/libQt6WebEngineCore.so.6.7.2)
                    ==9401==    by 0x80318F4: ??? (in /home/volker/Qt/6.7.2/gcc_64/lib/libQt6WebEngineCore.so.6.7.2)
                    ==9401==    by 0x8032635: ??? (in /home/volker/Qt/6.7.2/gcc_64/lib/libQt6WebEngineCore.so.6.7.2)
                    ==9401==    by 0x8035622: ??? (in /home/volker/Qt/6.7.2/gcc_64/lib/libQt6WebEngineCore.so.6.7.2)
                    ==9401==    by 0x8035A9B: ??? (in /home/volker/Qt/6.7.2/gcc_64/lib/libQt6WebEngineCore.so.6.7.2)
                    ==9401==    by 0x8035EBA: ??? (in /home/volker/Qt/6.7.2/gcc_64/lib/libQt6WebEngineCore.so.6.7.2)
                    ==9401==    by 0x80494CA: ??? (in /home/volker/Qt/6.7.2/gcc_64/lib/libQt6WebEngineCore.so.6.7.2)
                    ==9401==    by 0xD4F15D2: ??? (in /home/volker/Qt/6.7.2/gcc_64/lib/libQt6WebEngineCore.so.6.7.2)
                    
                    JonBJ Offline
                    JonBJ Offline
                    JonB
                    wrote on last edited by JonB
                    #13

                    @Volker75
                    And you may be correct, I don't know. But did you try copying & pasting @ChrisW67's code above exactly as is and testing for you?

                    1 Reply Last reply
                    0
                    • V Offline
                      V Offline
                      Volker75
                      wrote on last edited by Volker75
                      #14

                      I can't compile his code. Can you give me the .pro file, so that i can compile it?

                      C 1 Reply Last reply
                      0
                      • V Offline
                        V Offline
                        Volker75
                        wrote on last edited by Volker75
                        #15

                        Ok. Now I done a copy of my project and copy and paste the code above in my project.
                        I was forced to modify it a bit, because I got errors of unkown widget.h and unknown m_elapsedTimer.

                        My source now looks very very similar to the above one:

                        TimetablePrintForm::TimetablePrintForm(QWidget *parent): QDialog(parent){
                        	QVBoxLayout *layout = new QVBoxLayout(this);
                            QWebEngineView *view = new QWebEngineView(this);
                            connect(view, &QWebEngineView::loadFinished, this, &TimetablePrintForm::loadFinished);
                            layout->addWidget(view);
                        
                            QTimer::singleShot(0,
                                               [=](){
                                                   view->setHtml("<html><head><title>Initial page</title></head><body><p>Initial content</p></body></html>");
                                               } );
                        
                            QTimer::singleShot(3000,
                                               [=](){
                                                   view->setHtml("<html><head><title>Three seconds page</title></head><body><p>New content</p></body></html>");
                                               } );
                        
                        }
                        
                        TimetablePrintForm::~TimetablePrintForm() {}
                        
                        void TimetablePrintForm::loadFinished(bool ok)
                        {
                            qDebug()  << Q_FUNC_INFO << ok;
                        	qDebug("test");
                        }
                        

                        Result:
                        It is working fine with Qt 6.7.2 and it crashes with Qt 6.8.1.
                        I got:

                        Speicherzugriffsfehler (Speicherabzug geschrieben)
                        

                        (That is German for "segmentation fault")
                        I compiled with -g and I didn't get a report about the location in my source. It look like it a segmentation fault in the qtwebengine. (Later added: or maybe in the GPU? see valgrind error log below)

                        1 Reply Last reply
                        0
                        • V Offline
                          V Offline
                          Volker75
                          wrote on last edited by Volker75
                          #16

                          Additional Information:
                          I also runned it with Valgrind. Since with valgrind my computer is very slow I was able to see that a dialog opens and closes 2 times for a very short time and then valgrind just do nothing. I can't press anything in my application. It looks like it waiting only.
                          I was forced to terminate the app.
                          Last error lines are:

                           
                          ==6234== Use of uninitialised value of size 8
                          ==6234==    at 0xCFA3B70: contains (sparse_set.h:227)
                          ==6234==    by 0xCFA3B70: re2::DFA::AddToQueue(re2::DFA::Workq*, int, unsigned int) (dfa.cc:867)
                          ==6234==    by 0xCFA3E35: re2::DFA::StateToWorkq(re2::DFA::State*, re2::DFA::Workq*) (dfa.cc:828)
                          ==6234==    by 0xCFA56B6: re2::DFA::RunStateOnByte(re2::DFA::State*, int) (dfa.cc:1049)
                          ==6234==    by 0xCFA7569: RunStateOnByteUnlocked (dfa.cc:1016)
                          ==6234==    by 0xCFA7569: bool re2::DFA::InlinedSearchLoop<false, false, true>(re2::DFA::SearchParams*) (dfa.cc:1425)
                          ==6234==    by 0xCFA6351: re2::DFA::Search(std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, bool, bool, bool, bool*, char const**, re2::SparseSetT<void>*) (dfa.cc:1789)
                          ==6234==    by 0xCFA64CC: re2::Prog::SearchDFA(std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, re2::Prog::Anchor, re2::Prog::MatchKind, std::basic_string_view<char, std::char_traits<char> >*, bool*, re2::SparseSetT<void>*) (dfa.cc:1886)
                          ==6234==    by 0xCF909C9: re2::RE2::Match(std::basic_string_view<char, std::char_traits<char> >, unsigned long, unsigned long, re2::RE2::Anchor, std::basic_string_view<char, std::char_traits<char> >*, int) const (re2.cc:838)
                          ==6234==    by 0xCF915E5: re2::RE2::DoMatch(std::basic_string_view<char, std::char_traits<char> >, re2::RE2::Anchor, unsigned long*, re2::RE2::Arg const* const*, int) const (re2.cc:935)
                          ==6234==    by 0xCF919E8: re2::RE2::FullMatchN(std::basic_string_view<char, std::char_traits<char> >, re2::RE2 const&, re2::RE2::Arg const* const*, int) (re2.cc:410)
                          ==6234==    by 0x81EF5D9: Apply<bool (*)(std::basic_string_view<char>, const re2::RE2&, const re2::RE2::Arg* const*, int), std::basic_string_view<char> > (re2.h:358)
                          ==6234==    by 0x81EF5D9: FullMatch<> (re2.h:410)
                          ==6234==    by 0x81EF5D9: StringMismatch (gpu_control_list.cc:109)
                          ==6234==    by 0x81EF5D9: gpu::(anonymous namespace)::StringMismatch(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*) [clone .part.0] (gpu_control_list.cc:116)
                          ==6234==    by 0x81EF8EF: StringMismatch (gpu_control_list.cc:113)
                          ==6234==    by 0x81EF8EF: gpu::GpuControlList::GLStrings::Contains(gpu::GPUInfo const&) const (gpu_control_list.cc:328)
                          ==6234==    by 0x81F2802: gpu::GpuControlList::Conditions::Contains(gpu::GpuControlList::OsType, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, gpu::GPUInfo const&) const [clone .part.0] (gpu_control_list.cc:555)
                          ==6234== 
                          15
                          ^C==6234== 
                          ==6234== Process terminating with default action of signal 2 (SIGINT)
                          ==6234==    at 0x68C74CD: poll (poll.c:29)
                          ==6234==    by 0x1356D66D: ??? (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.8000.0)
                          ==6234==    by 0x1350DA52: g_main_context_iteration (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.8000.0)
                          ==6234==    by 0x625F91D: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (in /home/volker/Qt6.8/6.8.1/gcc_64/lib/libQt6Core.so.6.8.1)
                          ==6234==    by 0x5F92FE1: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (in /home/volker/Qt6.8/6.8.1/gcc_64/lib/libQt6Core.so.6.8.1)
                          ==6234==    by 0x5F8F165: QCoreApplication::exec() (in /home/volker/Qt6.8/6.8.1/gcc_64/lib/libQt6Core.so.6.8.1)
                          ==6234== 
                          ==6234== HEAP SUMMARY:
                          ==6234==     in use at exit: 25,318,117 bytes in 124,927 blocks
                          ==6234==   total heap usage: 931,939 allocs, 807,012 frees, 116,090,981 bytes allocated
                          ==6234== 
                          ==6234== LEAK SUMMARY:
                          ==6234==    definitely lost: 6,656 bytes in 26 blocks
                          ==6234==    indirectly lost: 2,183 bytes in 102 blocks
                          ==6234==      possibly lost: 398,168 bytes in 1,186 blocks
                          ==6234==    still reachable: 24,911,110 bytes in 123,613 blocks
                          ==6234==                       of which reachable via heuristic:
                          ==6234==                         length64           : 203,616 bytes in 1,308 blocks
                          ==6234==                         newarray           : 860,704 bytes in 135 blocks
                          ==6234==                         multipleinheritance: 16,256 bytes in 56 blocks
                          ==6234==         suppressed: 0 bytes in 0 blocks
                          
                          
                          1 Reply Last reply
                          0
                          • V Volker75

                            I can't compile his code. Can you give me the .pro file, so that i can compile it?

                            C Offline
                            C Offline
                            ChrisW67
                            wrote on last edited by
                            #17

                            @Volker75 said in Looks like the SIGNAL loadFinished(bool) is not emitted anymore with Qt 6.8.1:

                            I can't compile his code. Can you give me the .pro file, so that i can compile it?

                            Here is a version as a single file with PRO file:

                            # Automatically generated by qmake (3.1) Sun Jan 12 12:12:14 2025
                            ######################################################################
                            
                            TEMPLATE = app
                            TARGET = test
                            INCLUDEPATH += .
                            QT += widgets webenginewidgets
                            
                            # You can make your code fail to compile if you use deprecated APIs.
                            # In order to do so, uncomment the following line.
                            # Please consult the documentation of the deprecated API in order to know
                            # how to port your code away from it.
                            # You can also select to disable deprecated APIs only up to a certain version of Qt.
                            #DEFINES += QT_DISABLE_DEPRECATED_UP_TO=0x060000 # disables all APIs deprecated in Qt 6.0.0 and earlier
                            
                            # Input
                            SOURCES += main.cpp
                            

                            and main.cpp:

                            #include <QApplication>
                            
                            #include <QWebEngineView>
                            #include <QDebug>
                            #include <QTimer>
                            #include <QElapsedTimer>
                            
                            class Widget: public QWebEngineView
                            {
                                Q_OBJECT
                            public:
                                explicit Widget(QWidget *parent = nullptr);
                                ~Widget();
                            private slots:
                                void htmlLoadFinished(bool ok);
                            private:
                                QElapsedTimer m_elapsedTimer;
                            };
                            
                            
                            Widget::Widget(QWidget *parent): QWebEngineView(parent)  {
                                connect(this, &QWebEngineView::loadFinished, this, &Widget::htmlLoadFinished);
                                // or this
                                //     connect(this, SIGNAL(loadFinished(bool)), this, SLOT(htmlLoadFinished(bool)));
                                
                                QTimer::singleShot(0,
                                                   [=](){
                                                       this->setHtml("<html><head><title>Initial page</title></head><body><p>Initial content</p></body></html>");
                                                   } );
                            
                                QTimer::singleShot(3000,
                                                   [=](){
                                                       this->setHtml("<html><head><title>Three seconds page</title></head><body><p>New content</p></body></html>");
                                                   } );
                                m_elapsedTimer.start();
                            }
                            
                            Widget::~Widget() {}
                            
                            void Widget::htmlLoadFinished(bool ok) {
                                qDebug() << m_elapsedTimer.elapsed() << Q_FUNC_INFO << ok;
                            }
                            
                            int main(int argc, char **argv) {
                                QApplication app(argc, argv);
                                Widget widget;
                                widget.resize(800, 600);
                                widget.show();
                                return app.exec();
                            }
                            
                            #include "main.moc"
                            
                            1 Reply Last reply
                            0
                            • V Offline
                              V Offline
                              Volker75
                              wrote on last edited by Volker75
                              #18

                              Thank you.
                              I compiled also your version. (see next message).

                              I compiled my code I posted above. So in application, but with your functions and it failed.
                              I enabled all debug information. Also from Qt.
                              Maybe a skilled person can see the problem? (I was forced to shorten it. So you can see the beginning. A bit from the mid and the end only.

                              ==4988== Syscall param writev(vector[0]) points to uninitialised byte(s)
                              ==4988==    at 0x68D589B: __writev (writev.c:26)
                              ==4988==    by 0x68D589B: writev (writev.c:24)
                              ==4988==    by 0x15FA2ACA: ??? (in /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0)
                              ==4988==    by 0x15FA2C4E: ??? (in /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0)
                              ==4988==    by 0x15FA2DA6: ??? (in /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0)
                              ==4988==    by 0x15FA2F94: ??? (in /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0)
                              ==4988==    by 0x15FA3E6D: xcb_wait_for_reply (in /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0)
                              ==4988==    by 0x1718278E: QXcbConnection::initializeScreensFromMonitor(xcb_screen_iterator_t*, int, QXcbScreen**, bool) (in /home/volker/Qt6.8/6.8.1/gcc_64/lib/libQt6XcbQpa.so.6.8.1)
                              ==4988==    by 0x17183EDE: QXcbConnection::initializeScreens(bool) (in /home/volker/Qt6.8/6.8.1/gcc_64/lib/libQt6XcbQpa.so.6.8.1)
                              ==4988==    by 0x1717B1A1: QXcbConnection::QXcbConnection(QXcbNativeInterface*, bool, unsigned int, char const*) (in /home/volker/Qt6.8/6.8.1/gcc_64/lib/libQt6XcbQpa.so.6.8.1)
                              ==4988==    by 0x1719F034: QXcbIntegration::QXcbIntegration(QList<QString> const&, int&, char**) (in /home/volker/Qt6.8/6.8.1/gcc_64/lib/libQt6XcbQpa.so.6.8.1)
                              ==4988==    by 0x64E7522: ??? (in /home/volker/Qt6.8/6.8.1/gcc_64/plugins/platforms/libqxcb.so)
                              ==4988==    by 0x52E492E: ??? (in /home/volker/Qt6.8/6.8.1/gcc_64/lib/libQt6Gui.so.6.8.1)
                              ==4988==  Address 0x16867395 is 4,533 bytes inside a block of size 21,176 alloc'd
                              ==4988==    at 0x484D953: calloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
                              ==4988==    by 0x15FA5396: xcb_connect_to_fd (in /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0)
                              ==4988==    by 0x15FA60D9: xcb_connect_to_display_with_auth_info (in /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0)
                              ==4988==    by 0x133AC3C9: _XConnectXCB (in /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0)
                              ==4988==    by 0x1339D0FD: XOpenDisplay (in /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0)
                              ==4988==    by 0x1717FE30: QXcbBasicConnection::QXcbBasicConnection(char const*) (in /home/volker/Qt6.8/6.8.1/gcc_64/lib/libQt6XcbQpa.so.6.8.1)
                              ==4988==    by 0x1717AF83: QXcbConnection::QXcbConnection(QXcbNativeInterface*, bool, unsigned int, char const*) (in /home/volker/Qt6.8/6.8.1/gcc_64/lib/libQt6XcbQpa.so.6.8.1)
                              ==4988==    by 0x1719F034: QXcbIntegration::QXcbIntegration(QList<QString> const&, int&, char**) (in /home/volker/Qt6.8/6.8.1/gcc_64/lib/libQt6XcbQpa.so.6.8.1)
                              ==4988==    by 0x64E7522: ??? (in /home/volker/Qt6.8/6.8.1/gcc_64/plugins/platforms/libqxcb.so)
                              ==4988==    by 0x52E492E: ??? (in /home/volker/Qt6.8/6.8.1/gcc_64/lib/libQt6Gui.so.6.8.1)
                              ==4988==    by 0x52E81B6: QGuiApplicationPrivate::createPlatformIntegration() (in /home/volker/Qt6.8/6.8.1/gcc_64/lib/libQt6Gui.so.6.8.1)
                              ==4988==    by 0x52E8B87: QGuiApplicationPrivate::createEventDispatcher() (in /home/volker/Qt6.8/6.8.1/gcc_64/lib/libQt6Gui.so.6.8.1)
                              ==4988== 
                              ...
                              ==4988== Conditional jump or move depends on uninitialised value(s)
                              ==4988==    at 0x298C8DCD: ???
                              ==4988==    by 0x29FFD87F: ???
                              ==4988== 
                              ...
                              ==4988== Conditional jump or move depends on uninitialised value(s)
                              ==4988==    at 0xCFAE261: contains (sparse_set.h:227)
                              ==4988==    by 0xCFAE261: re2::AddQ(re2::SparseSetT<void>*, int) [clone .part.0] (onepass.cc:355)
                              ==4988==    by 0xCFAEA5B: AddQ (onepass.cc:353)
                              ==4988==    by 0xCFAEA5B: re2::Prog::IsOnePass() (onepass.cc:519)
                              ==4988==    by 0xCF8EED7: re2::RE2::Init(std::basic_string_view<char, std::char_traits<char> >, re2::RE2::Options const&) (re2.cc:273)
                              ==4988==    by 0xCF8F598: re2::RE2::RE2(char const*) (re2.cc:141)
                              ==4988==    by 0x81EEB14: gpu::(anonymous namespace)::ProcessANGLEGLRenderer(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) [clone .constprop.0] (gpu_control_list.cc:126)
                              ==4988==    by 0x81EF855: gpu::GpuControlList::GLStrings::Contains(gpu::GPUInfo const&) const (gpu_control_list.cc:323)
                              ==4988==    by 0x81F2802: gpu::GpuControlList::Conditions::Contains(gpu::GpuControlList::OsType, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, gpu::GPUInfo const&) const [clone .part.0] (gpu_control_list.cc:555)
                              ==4988==    by 0x81F2C9B: Contains (gpu_control_list.cc:574)
                              ==4988==    by 0x81F2C9B: gpu::GpuControlList::Entry::Contains(gpu::GpuControlList::OsType, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, gpu::GPUInfo const&) const (gpu_control_list.cc:574)
                              ==4988==    by 0x81F30AA: gpu::GpuControlList::MakeDecision(gpu::GpuControlList::OsType, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, gpu::GPUInfo const&, unsigned int) (gpu_control_list.cc:702)
                              ==4988==    by 0x8205B46: gpu::ComputeGpuFeatureInfo(gpu::GPUInfo const&, gpu::GpuPreferences const&, base::CommandLine*, bool*) (gpu_util.cc:595)
                              ==4988==    by 0xDA19F7E: gpu::GpuInit::InitializeInProcess(base::CommandLine*, gpu::GpuPreferences const&) (gpu_init.cc:937)
                              ==4988==    by 0xDCA3632: content::InProcessGpuThread::Init() (in_process_gpu_thread.cc:71)
                              ==4988== 
                              ==4988== Use of uninitialised value of size 8
                              ==4988==    at 0xCFAE266: contains (sparse_set.h:227)
                              ==4988==    by 0xCFAE266: re2::AddQ(re2::SparseSetT<void>*, int) [clone .part.0] (onepass.cc:355)
                              ==4988==    by 0xCFAEA5B: AddQ (onepass.cc:353)
                              ==4988==    by 0xCFAEA5B: re2::Prog::IsOnePass() (onepass.cc:519)
                              ==4988==    by 0xCF8EED7: re2::RE2::Init(std::basic_string_view<char, std::char_traits<char> >, re2::RE2::Options const&) (re2.cc:273)
                              ==4988==    by 0xCF8F598: re2::RE2::RE2(char const*) (re2.cc:141)
                              ==4988==    by 0x81EEB14: gpu::(anonymous namespace)::ProcessANGLEGLRenderer(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) [clone .constprop.0] (gpu_control_list.cc:126)
                              ==4988==    by 0x81F1F2B: gpu::GpuControlList::More::Contains(gpu::GPUInfo const&) const (gpu_control_list.cc:363)
                              ==4988==    by 0x81F2995: gpu::GpuControlList::Conditions::Contains(gpu::GpuControlList::OsType, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, gpu::GPUInfo const&) const [clone .part.0] (gpu_control_list.cc:561)
                              ==4988==    by 0x81F2C9B: Contains (gpu_control_list.cc:574)
                              ==4988==    by 0x81F2C9B: gpu::GpuControlList::Entry::Contains(gpu::GpuControlList::OsType, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, gpu::GPUInfo const&) const (gpu_control_list.cc:574)
                              ==4988==    by 0x81F30AA: gpu::GpuControlList::MakeDecision(gpu::GpuControlList::OsType, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, gpu::GPUInfo const&, unsigned int) (gpu_control_list.cc:702)
                              ==4988==    by 0x8205B46: gpu::ComputeGpuFeatureInfo(gpu::GPUInfo const&, gpu::GpuPreferences const&, base::CommandLine*, bool*) (gpu_util.cc:595)
                              ==4988==    by 0xDA19F7E: gpu::GpuInit::InitializeInProcess(base::CommandLine*, gpu::GpuPreferences const&) (gpu_init.cc:937)
                              ==4988==    by 0xDCA3632: content::InProcessGpuThread::Init() (in_process_gpu_thread.cc:71)
                              ==4988== 
                              ==4988== Use of uninitialised value of size 8
                              ==4988==    at 0xCFAE266: contains (sparse_set.h:227)
                              ==4988==    by 0xCFAE266: re2::AddQ(re2::SparseSetT<void>*, int) [clone .part.0] (onepass.cc:355)
                              ==4988==    by 0xCFAE974: AddQ (onepass.cc:353)
                              ==4988==    by 0xCFAE974: re2::Prog::IsOnePass() (onepass.cc:548)
                              ==4988==    by 0xCF8EED7: re2::RE2::Init(std::basic_string_view<char, std::char_traits<char> >, re2::RE2::Options const&) (re2.cc:273)
                              ==4988==    by 0xCF8F598: re2::RE2::RE2(char const*) (re2.cc:141)
                              ==4988==    by 0x81EEB14: gpu::(anonymous namespace)::ProcessANGLEGLRenderer(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) [clone .constprop.0] (gpu_control_list.cc:126)
                              ==4988==    by 0x81F1F2B: gpu::GpuControlList::More::Contains(gpu::GPUInfo const&) const (gpu_control_list.cc:363)
                              ==4988==    by 0x81F2995: gpu::GpuControlList::Conditions::Contains(gpu::GpuControlList::OsType, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, gpu::GPUInfo const&) const [clone .part.0] (gpu_control_list.cc:561)
                              ==4988==    by 0x81F2C9B: Contains (gpu_control_list.cc:574)
                              ==4988==    by 0x81F2C9B: gpu::GpuControlList::Entry::Contains(gpu::GpuControlList::OsType, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, gpu::GPUInfo const&) const (gpu_control_list.cc:574)
                              ==4988==    by 0x81F30AA: gpu::GpuControlList::MakeDecision(gpu::GpuControlList::OsType, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, gpu::GPUInfo const&, unsigned int) (gpu_control_list.cc:702)
                              ==4988==    by 0x8205B46: gpu::ComputeGpuFeatureInfo(gpu::GPUInfo const&, gpu::GpuPreferences const&, base::CommandLine*, bool*) (gpu_util.cc:595)
                              ==4988==    by 0xDA19F7E: gpu::GpuInit::InitializeInProcess(base::CommandLine*, gpu::GpuPreferences const&) (gpu_init.cc:937)
                              ==4988==    by 0xDCA3632: content::InProcessGpuThread::Init() (in_process_gpu_thread.cc:71)
                              ==4988== 
                              ==4988== Thread 1:
                              ==4988== Conditional jump or move depends on uninitialised value(s)
                              ==4988==    at 0x298C8C6F: ???
                              ==4988==    by 0x2C7C01FF: ???
                              ==4988== 
                              ==4988== Conditional jump or move depends on uninitialised value(s)
                              ==4988==    at 0x298C8C6F: ???
                              ==4988==    by 0x2C7D69AF: ???
                              ==4988== 
                              ==4988== Conditional jump or move depends on uninitialised value(s)
                              ==4988==    at 0x298C8C6F: ???
                              ==4988==    by 0x2C7A7D0F: ???
                              ==4988== 
                              ==4988== Conditional jump or move depends on uninitialised value(s)
                              ==4988==    at 0x298C8C6F: ???
                              ==4988==    by 0x2C7DD7EF: ???
                              ==4988== 
                              15
                              ==4988== Thread 28 Chrome_InProcGpu:
                              ==4988== Conditional jump or move depends on uninitialised value(s)
                              ==4988==    at 0xCFA3A2C: contains (sparse_set.h:227)
                              ==4988==    by 0xCFA3A2C: re2::DFA::AddToQueue(re2::DFA::Workq*, int, unsigned int) (dfa.cc:867)
                              ==4988==    by 0xCFA5C64: re2::DFA::AnalyzeSearchHelper(re2::DFA::SearchParams*, re2::DFA::StartInfo*, unsigned int) (dfa.cc:1736)
                              ==4988==    by 0xCFA5D72: re2::DFA::AnalyzeSearch(re2::DFA::SearchParams*) (dfa.cc:1693)
                              ==4988==    by 0xCFA632E: re2::DFA::Search(std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, bool, bool, bool, bool*, char const**, re2::SparseSetT<void>*) (dfa.cc:1774)
                              ==4988==    by 0xCFA64CC: re2::Prog::SearchDFA(std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, re2::Prog::Anchor, re2::Prog::MatchKind, std::basic_string_view<char, std::char_traits<char> >*, bool*, re2::SparseSetT<void>*) (dfa.cc:1886)
                              ==4988==    by 0xCF909C9: re2::RE2::Match(std::basic_string_view<char, std::char_traits<char> >, unsigned long, unsigned long, re2::RE2::Anchor, std::basic_string_view<char, std::char_traits<char> >*, int) const (re2.cc:838)
                              ==4988==    by 0xCF915E5: re2::RE2::DoMatch(std::basic_string_view<char, std::char_traits<char> >, re2::RE2::Anchor, unsigned long*, re2::RE2::Arg const* const*, int) const (re2.cc:935)
                              ==4988==    by 0xCF919E8: re2::RE2::FullMatchN(std::basic_string_view<char, std::char_traits<char> >, re2::RE2 const&, re2::RE2::Arg const* const*, int) (re2.cc:410)
                              ==4988==    by 0x81EF5D9: Apply<bool (*)(std::basic_string_view<char>, const re2::RE2&, const re2::RE2::Arg* const*, int), std::basic_string_view<char> > (re2.h:358)
                              ==4988==    by 0x81EF5D9: FullMatch<> (re2.h:410)
                              ==4988==    by 0x81EF5D9: StringMismatch (gpu_control_list.cc:109)
                              ==4988==    by 0x81EF5D9: gpu::(anonymous namespace)::StringMismatch(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*) [clone .part.0] (gpu_control_list.cc:116)
                              ==4988==    by 0x81EF8EF: StringMismatch (gpu_control_list.cc:113)
                              ==4988==    by 0x81EF8EF: gpu::GpuControlList::GLStrings::Contains(gpu::GPUInfo const&) const (gpu_control_list.cc:328)
                              ==4988==    by 0x81F2802: gpu::GpuControlList::Conditions::Contains(gpu::GpuControlList::OsType, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, gpu::GPUInfo const&) const [clone .part.0] (gpu_control_list.cc:555)
                              ==4988==    by 0x81F2C9B: Contains (gpu_control_list.cc:574)
                              ==4988==    by 0x81F2C9B: gpu::GpuControlList::Entry::Contains(gpu::GpuControlList::OsType, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, gpu::GPUInfo const&) const (gpu_control_list.cc:574)
                              ==4988== 
                              ==4988== Use of uninitialised value of size 8
                              ==4988==    at 0xCFA3B70: contains (sparse_set.h:227)
                              ==4988==    by 0xCFA3B70: re2::DFA::AddToQueue(re2::DFA::Workq*, int, unsigned int) (dfa.cc:867)
                              ==4988==    by 0xCFA5C64: re2::DFA::AnalyzeSearchHelper(re2::DFA::SearchParams*, re2::DFA::StartInfo*, unsigned int) (dfa.cc:1736)
                              ==4988==    by 0xCFA5D72: re2::DFA::AnalyzeSearch(re2::DFA::SearchParams*) (dfa.cc:1693)
                              ==4988==    by 0xCFA632E: re2::DFA::Search(std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, bool, bool, bool, bool*, char const**, re2::SparseSetT<void>*) (dfa.cc:1774)
                              ==4988==    by 0xCFA64CC: re2::Prog::SearchDFA(std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, re2::Prog::Anchor, re2::Prog::MatchKind, std::basic_string_view<char, std::char_traits<char> >*, bool*, re2::SparseSetT<void>*) (dfa.cc:1886)
                              ==4988==    by 0xCF909C9: re2::RE2::Match(std::basic_string_view<char, std::char_traits<char> >, unsigned long, unsigned long, re2::RE2::Anchor, std::basic_string_view<char, std::char_traits<char> >*, int) const (re2.cc:838)
                              ==4988==    by 0xCF915E5: re2::RE2::DoMatch(std::basic_string_view<char, std::char_traits<char> >, re2::RE2::Anchor, unsigned long*, re2::RE2::Arg const* const*, int) const (re2.cc:935)
                              ==4988==    by 0xCF919E8: re2::RE2::FullMatchN(std::basic_string_view<char, std::char_traits<char> >, re2::RE2 const&, re2::RE2::Arg const* const*, int) (re2.cc:410)
                              ==4988==    by 0x81EF5D9: Apply<bool (*)(std::basic_string_view<char>, const re2::RE2&, const re2::RE2::Arg* const*, int), std::basic_string_view<char> > (re2.h:358)
                              ==4988==    by 0x81EF5D9: FullMatch<> (re2.h:410)
                              ==4988==    by 0x81EF5D9: StringMismatch (gpu_control_list.cc:109)
                              ==4988==    by 0x81EF5D9: gpu::(anonymous namespace)::StringMismatch(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*) [clone .part.0] (gpu_control_list.cc:116)
                              ==4988==    by 0x81EF8EF: StringMismatch (gpu_control_list.cc:113)
                              ==4988==    by 0x81EF8EF: gpu::GpuControlList::GLStrings::Contains(gpu::GPUInfo const&) const (gpu_control_list.cc:328)
                              ==4988==    by 0x81F2802: gpu::GpuControlList::Conditions::Contains(gpu::GpuControlList::OsType, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, gpu::GPUInfo const&) const [clone .part.0] (gpu_control_list.cc:555)
                              ==4988==    by 0x81F2C9B: Contains (gpu_control_list.cc:574)
                              ==4988==    by 0x81F2C9B: gpu::GpuControlList::Entry::Contains(gpu::GpuControlList::OsType, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, gpu::GPUInfo const&) const (gpu_control_list.cc:574)
                              ==4988== 
                              ==4988== Conditional jump or move depends on uninitialised value(s)
                              ==4988==    at 0xCFA3A2C: contains (sparse_set.h:227)
                              ==4988==    by 0xCFA3A2C: re2::DFA::AddToQueue(re2::DFA::Workq*, int, unsigned int) (dfa.cc:867)
                              ==4988==    by 0xCFA4113: re2::DFA::RunWorkqOnByte(re2::DFA::Workq*, re2::DFA::Workq*, int, unsigned int, bool*) (dfa.cc:977)
                              ==4988==    by 0xCFA5738: re2::DFA::RunStateOnByte(re2::DFA::State*, int) (dfa.cc:1089)
                              ==4988==    by 0xCFA7569: RunStateOnByteUnlocked (dfa.cc:1016)
                              ==4988==    by 0xCFA7569: bool re2::DFA::InlinedSearchLoop<false, false, true>(re2::DFA::SearchParams*) (dfa.cc:1425)
                              ==4988==    by 0xCFA6351: re2::DFA::Search(std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, bool, bool, bool, bool*, char const**, re2::SparseSetT<void>*) (dfa.cc:1789)
                              ==4988==    by 0xCFA64CC: re2::Prog::SearchDFA(std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, re2::Prog::Anchor, re2::Prog::MatchKind, std::basic_string_view<char, std::char_traits<char> >*, bool*, re2::SparseSetT<void>*) (dfa.cc:1886)
                              ==4988==    by 0xCF909C9: re2::RE2::Match(std::basic_string_view<char, std::char_traits<char> >, unsigned long, unsigned long, re2::RE2::Anchor, std::basic_string_view<char, std::char_traits<char> >*, int) const (re2.cc:838)
                              ==4988==    by 0xCF915E5: re2::RE2::DoMatch(std::basic_string_view<char, std::char_traits<char> >, re2::RE2::Anchor, unsigned long*, re2::RE2::Arg const* const*, int) const (re2.cc:935)
                              ==4988==    by 0xCF919E8: re2::RE2::FullMatchN(std::basic_string_view<char, std::char_traits<char> >, re2::RE2 const&, re2::RE2::Arg const* const*, int) (re2.cc:410)
                              ==4988==    by 0x81EF5D9: Apply<bool (*)(std::basic_string_view<char>, const re2::RE2&, const re2::RE2::Arg* const*, int), std::basic_string_view<char> > (re2.h:358)
                              ==4988==    by 0x81EF5D9: FullMatch<> (re2.h:410)
                              ==4988==    by 0x81EF5D9: StringMismatch (gpu_control_list.cc:109)
                              ==4988==    by 0x81EF5D9: gpu::(anonymous namespace)::StringMismatch(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*) [clone .part.0] (gpu_control_list.cc:116)
                              ==4988==    by 0x81EF8EF: StringMismatch (gpu_control_list.cc:113)
                              ==4988==    by 0x81EF8EF: gpu::GpuControlList::GLStrings::Contains(gpu::GPUInfo const&) const (gpu_control_list.cc:328)
                              ==4988==    by 0x81F2802: gpu::GpuControlList::Conditions::Contains(gpu::GpuControlList::OsType, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, gpu::GPUInfo const&) const [clone .part.0] (gpu_control_list.cc:555)
                              ==4988== 
                              ==4988== Use of uninitialised value of size 8
                              ==4988==    at 0xCFA3B70: contains (sparse_set.h:227)
                              ==4988==    by 0xCFA3B70: re2::DFA::AddToQueue(re2::DFA::Workq*, int, unsigned int) (dfa.cc:867)
                              ==4988==    by 0xCFA4113: re2::DFA::RunWorkqOnByte(re2::DFA::Workq*, re2::DFA::Workq*, int, unsigned int, bool*) (dfa.cc:977)
                              ==4988==    by 0xCFA5738: re2::DFA::RunStateOnByte(re2::DFA::State*, int) (dfa.cc:1089)
                              ==4988==    by 0xCFA7569: RunStateOnByteUnlocked (dfa.cc:1016)
                              ==4988==    by 0xCFA7569: bool re2::DFA::InlinedSearchLoop<false, false, true>(re2::DFA::SearchParams*) (dfa.cc:1425)
                              ==4988==    by 0xCFA6351: re2::DFA::Search(std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, bool, bool, bool, bool*, char const**, re2::SparseSetT<void>*) (dfa.cc:1789)
                              ==4988==    by 0xCFA64CC: re2::Prog::SearchDFA(std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, re2::Prog::Anchor, re2::Prog::MatchKind, std::basic_string_view<char, std::char_traits<char> >*, bool*, re2::SparseSetT<void>*) (dfa.cc:1886)
                              ==4988==    by 0xCF909C9: re2::RE2::Match(std::basic_string_view<char, std::char_traits<char> >, unsigned long, unsigned long, re2::RE2::Anchor, std::basic_string_view<char, std::char_traits<char> >*, int) const (re2.cc:838)
                              ==4988==    by 0xCF915E5: re2::RE2::DoMatch(std::basic_string_view<char, std::char_traits<char> >, re2::RE2::Anchor, unsigned long*, re2::RE2::Arg const* const*, int) const (re2.cc:935)
                              ==4988==    by 0xCF919E8: re2::RE2::FullMatchN(std::basic_string_view<char, std::char_traits<char> >, re2::RE2 const&, re2::RE2::Arg const* const*, int) (re2.cc:410)
                              ==4988==    by 0x81EF5D9: Apply<bool (*)(std::basic_string_view<char>, const re2::RE2&, const re2::RE2::Arg* const*, int), std::basic_string_view<char> > (re2.h:358)
                              ==4988==    by 0x81EF5D9: FullMatch<> (re2.h:410)
                              ==4988==    by 0x81EF5D9: StringMismatch (gpu_control_list.cc:109)
                              ==4988==    by 0x81EF5D9: gpu::(anonymous namespace)::StringMismatch(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*) [clone .part.0] (gpu_control_list.cc:116)
                              ==4988==    by 0x81EF8EF: StringMismatch (gpu_control_list.cc:113)
                              ==4988==    by 0x81EF8EF: gpu::GpuControlList::GLStrings::Contains(gpu::GPUInfo const&) const (gpu_control_list.cc:328)
                              ==4988==    by 0x81F2802: gpu::GpuControlList::Conditions::Contains(gpu::GpuControlList::OsType, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, gpu::GPUInfo const&) const [clone .part.0] (gpu_control_list.cc:555)
                              ==4988== 
                              ==4988== Conditional jump or move depends on uninitialised value(s)
                              ==4988==    at 0xCFA3A2C: contains (sparse_set.h:227)
                              ==4988==    by 0xCFA3A2C: re2::DFA::AddToQueue(re2::DFA::Workq*, int, unsigned int) (dfa.cc:867)
                              ==4988==    by 0xCFA3E35: re2::DFA::StateToWorkq(re2::DFA::State*, re2::DFA::Workq*) (dfa.cc:828)
                              ==4988==    by 0xCFA56B6: re2::DFA::RunStateOnByte(re2::DFA::State*, int) (dfa.cc:1049)
                              ==4988==    by 0xCFA7569: RunStateOnByteUnlocked (dfa.cc:1016)
                              ==4988==    by 0xCFA7569: bool re2::DFA::InlinedSearchLoop<false, false, true>(re2::DFA::SearchParams*) (dfa.cc:1425)
                              ==4988==    by 0xCFA6351: re2::DFA::Search(std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, bool, bool, bool, bool*, char const**, re2::SparseSetT<void>*) (dfa.cc:1789)
                              ==4988==    by 0xCFA64CC: re2::Prog::SearchDFA(std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, re2::Prog::Anchor, re2::Prog::MatchKind, std::basic_string_view<char, std::char_traits<char> >*, bool*, re2::SparseSetT<void>*) (dfa.cc:1886)
                              ==4988==    by 0xCF909C9: re2::RE2::Match(std::basic_string_view<char, std::char_traits<char> >, unsigned long, unsigned long, re2::RE2::Anchor, std::basic_string_view<char, std::char_traits<char> >*, int) const (re2.cc:838)
                              ==4988==    by 0xCF915E5: re2::RE2::DoMatch(std::basic_string_view<char, std::char_traits<char> >, re2::RE2::Anchor, unsigned long*, re2::RE2::Arg const* const*, int) const (re2.cc:935)
                              ==4988==    by 0xCF919E8: re2::RE2::FullMatchN(std::basic_string_view<char, std::char_traits<char> >, re2::RE2 const&, re2::RE2::Arg const* const*, int) (re2.cc:410)
                              ==4988==    by 0x81EF5D9: Apply<bool (*)(std::basic_string_view<char>, const re2::RE2&, const re2::RE2::Arg* const*, int), std::basic_string_view<char> > (re2.h:358)
                              ==4988==    by 0x81EF5D9: FullMatch<> (re2.h:410)
                              ==4988==    by 0x81EF5D9: StringMismatch (gpu_control_list.cc:109)
                              ==4988==    by 0x81EF5D9: gpu::(anonymous namespace)::StringMismatch(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*) [clone .part.0] (gpu_control_list.cc:116)
                              ==4988==    by 0x81EF8EF: StringMismatch (gpu_control_list.cc:113)
                              ==4988==    by 0x81EF8EF: gpu::GpuControlList::GLStrings::Contains(gpu::GPUInfo const&) const (gpu_control_list.cc:328)
                              ==4988==    by 0x81F2802: gpu::GpuControlList::Conditions::Contains(gpu::GpuControlList::OsType, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, gpu::GPUInfo const&) const [clone .part.0] (gpu_control_list.cc:555)
                              ==4988== 
                              ==4988== Use of uninitialised value of size 8
                              ==4988==    at 0xCFA3B70: contains (sparse_set.h:227)
                              ==4988==    by 0xCFA3B70: re2::DFA::AddToQueue(re2::DFA::Workq*, int, unsigned int) (dfa.cc:867)
                              ==4988==    by 0xCFA3E35: re2::DFA::StateToWorkq(re2::DFA::State*, re2::DFA::Workq*) (dfa.cc:828)
                              ==4988==    by 0xCFA56B6: re2::DFA::RunStateOnByte(re2::DFA::State*, int) (dfa.cc:1049)
                              ==4988==    by 0xCFA7569: RunStateOnByteUnlocked (dfa.cc:1016)
                              ==4988==    by 0xCFA7569: bool re2::DFA::InlinedSearchLoop<false, false, true>(re2::DFA::SearchParams*) (dfa.cc:1425)
                              ==4988==    by 0xCFA6351: re2::DFA::Search(std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, bool, bool, bool, bool*, char const**, re2::SparseSetT<void>*) (dfa.cc:1789)
                              ==4988==    by 0xCFA64CC: re2::Prog::SearchDFA(std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, re2::Prog::Anchor, re2::Prog::MatchKind, std::basic_string_view<char, std::char_traits<char> >*, bool*, re2::SparseSetT<void>*) (dfa.cc:1886)
                              ==4988==    by 0xCF909C9: re2::RE2::Match(std::basic_string_view<char, std::char_traits<char> >, unsigned long, unsigned long, re2::RE2::Anchor, std::basic_string_view<char, std::char_traits<char> >*, int) const (re2.cc:838)
                              ==4988==    by 0xCF915E5: re2::RE2::DoMatch(std::basic_string_view<char, std::char_traits<char> >, re2::RE2::Anchor, unsigned long*, re2::RE2::Arg const* const*, int) const (re2.cc:935)
                              ==4988==    by 0xCF919E8: re2::RE2::FullMatchN(std::basic_string_view<char, std::char_traits<char> >, re2::RE2 const&, re2::RE2::Arg const* const*, int) (re2.cc:410)
                              ==4988==    by 0x81EF5D9: Apply<bool (*)(std::basic_string_view<char>, const re2::RE2&, const re2::RE2::Arg* const*, int), std::basic_string_view<char> > (re2.h:358)
                              ==4988==    by 0x81EF5D9: FullMatch<> (re2.h:410)
                              ==4988==    by 0x81EF5D9: StringMismatch (gpu_control_list.cc:109)
                              ==4988==    by 0x81EF5D9: gpu::(anonymous namespace)::StringMismatch(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*) [clone .part.0] (gpu_control_list.cc:116)
                              ==4988==    by 0x81EF8EF: StringMismatch (gpu_control_list.cc:113)
                              ==4988==    by 0x81EF8EF: gpu::GpuControlList::GLStrings::Contains(gpu::GPUInfo const&) const (gpu_control_list.cc:328)
                              ==4988==    by 0x81F2802: gpu::GpuControlList::Conditions::Contains(gpu::GpuControlList::OsType, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, gpu::GPUInfo const&) const [clone .part.0] (gpu_control_list.cc:555)
                              ==4988== 
                              
                              1 Reply Last reply
                              0
                              • V Offline
                                V Offline
                                Volker75
                                wrote on last edited by Volker75
                                #19

                                I run your code. It looks like it is working, but with valgrind it complains a lot. So it is only luck that it look like working fine.
                                Error messages from your working code (also shorten):

                                ==7044== Syscall param writev(vector[0]) points to uninitialised byte(s)
                                ==7044==    at 0x5AFA89B: __writev (writev.c:26)
                                ==7044==    by 0x5AFA89B: writev (writev.c:24)
                                ==7044==    by 0x15DB6ACA: ??? (in /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0)
                                ==7044==    by 0x15DB6C4E: ??? (in /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0)
                                ==7044==    by 0x15DB6DA6: ??? (in /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0)
                                ==7044==    by 0x15DB6F94: ??? (in /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0)
                                ==7044==    by 0x15DB7E6D: xcb_wait_for_reply (in /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0)
                                ==7044==    by 0x170D078E: QXcbConnection::initializeScreensFromMonitor(xcb_screen_iterator_t*, int, QXcbScreen**, bool) (in /home/volker/Qt6.8/6.8.1/gcc_64/lib/libQt6XcbQpa.so.6.8.1)
                                ==7044==    by 0x170D1EDE: QXcbConnection::initializeScreens(bool) (in /home/volker/Qt6.8/6.8.1/gcc_64/lib/libQt6XcbQpa.so.6.8.1)
                                ==7044==    by 0x170C91A1: QXcbConnection::QXcbConnection(QXcbNativeInterface*, bool, unsigned int, char const*) (in /home/volker/Qt6.8/6.8.1/gcc_64/lib/libQt6XcbQpa.so.6.8.1)
                                ==7044==    by 0x170ED034: QXcbIntegration::QXcbIntegration(QList<QString> const&, int&, char**) (in /home/volker/Qt6.8/6.8.1/gcc_64/lib/libQt6XcbQpa.so.6.8.1)
                                ==7044==    by 0x570C522: ??? (in /home/volker/Qt6.8/6.8.1/gcc_64/plugins/platforms/libqxcb.so)
                                ==7044==    by 0x1282392E: ??? (in /home/volker/Qt6.8/6.8.1/gcc_64/lib/libQt6Gui.so.6.8.1)
                                ==7044==  Address 0x16747395 is 4,533 bytes inside a block of size 21,176 alloc'd
                                ==7044==    at 0x484D953: calloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
                                ==7044==    by 0x15DB9396: xcb_connect_to_fd (in /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0)
                                ==7044==    by 0x15DBA0D9: xcb_connect_to_display_with_auth_info (in /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0)
                                ==7044==    by 0x15AB33C9: _XConnectXCB (in /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0)
                                ==7044==    by 0x15AA40FD: XOpenDisplay (in /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0)
                                ==7044==    by 0x170CDE30: QXcbBasicConnection::QXcbBasicConnection(char const*) (in /home/volker/Qt6.8/6.8.1/gcc_64/lib/libQt6XcbQpa.so.6.8.1)
                                ==7044==    by 0x170C8F83: QXcbConnection::QXcbConnection(QXcbNativeInterface*, bool, unsigned int, char const*) (in /home/volker/Qt6.8/6.8.1/gcc_64/lib/libQt6XcbQpa.so.6.8.1)
                                ==7044==    by 0x170ED034: QXcbIntegration::QXcbIntegration(QList<QString> const&, int&, char**) (in /home/volker/Qt6.8/6.8.1/gcc_64/lib/libQt6XcbQpa.so.6.8.1)
                                ==7044==    by 0x570C522: ??? (in /home/volker/Qt6.8/6.8.1/gcc_64/plugins/platforms/libqxcb.so)
                                ==7044==    by 0x1282392E: ??? (in /home/volker/Qt6.8/6.8.1/gcc_64/lib/libQt6Gui.so.6.8.1)
                                ==7044==    by 0x128271B6: QGuiApplicationPrivate::createPlatformIntegration() (in /home/volker/Qt6.8/6.8.1/gcc_64/lib/libQt6Gui.so.6.8.1)
                                ==7044==    by 0x12827B87: QGuiApplicationPrivate::createEventDispatcher() (in /home/volker/Qt6.8/6.8.1/gcc_64/lib/libQt6Gui.so.6.8.1)
                                ==7044== 
                                ==7104== 
                                ==7104== HEAP SUMMARY:
                                ==7104==     in use at exit: 6,397,982 bytes in 13,432 blocks
                                ==7104==   total heap usage: 27,129 allocs, 13,697 frees, 12,652,216 bytes allocated
                                ==7104== 
                                ==7104== LEAK SUMMARY:
                                ==7104==    definitely lost: 0 bytes in 0 blocks
                                ==7104==    indirectly lost: 0 bytes in 0 blocks
                                ==7104==      possibly lost: 563,424 bytes in 142 blocks
                                ==7104==    still reachable: 5,834,558 bytes in 13,290 blocks
                                ==7104==                       of which reachable via heuristic:
                                ==7104==                         newarray           : 3,344 bytes in 22 blocks
                                ==7104==                         multipleinheritance: 2,080 bytes in 6 blocks
                                ==7104==         suppressed: 0 bytes in 0 blocks
                                ==7104== Rerun with --leak-check=full to see details of leaked memory
                                ==7104== 
                                ==7104== Use --track-origins=yes to see where uninitialised values come from
                                ==7104== For lists of detected and suppressed errors, rerun with: -s
                                ==7104== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
                                ==7105== Warning: bad signal number 65 in sigaction()
                                ==7105== Warning: invalid file descriptor 1024 in syscall close()
                                ==7105== Warning: invalid file descriptor 1025 in syscall close()
                                ==7105== Warning: invalid file descriptor 1026 in syscall close()
                                ==7105== Warning: invalid file descriptor 1027 in syscall close()
                                ==7105==    Use --log-fd=<number> to select an alternative log fd.
                                ==7105== Warning: invalid file descriptor 1028 in syscall close()
                                ==7105== Warning: invalid file descriptor 1029 in syscall close()
                                ==7106== Warning: bad signal number 65 in sigaction()
                                ==7106== Warning: invalid file descriptor 1024 in syscall close()
                                ==7106== Warning: invalid file descriptor 1025 in syscall close()
                                ==7106== Warning: invalid file descriptor 1026 in syscall close()
                                ==7106== Warning: invalid file descriptor 1027 in syscall close()
                                ==7106==    Use --log-fd=<number> to select an alternative log fd.
                                ==7106== Warning: invalid file descriptor 1028 in syscall close()
                                ==7106== Warning: invalid file descriptor 1029 in syscall close()
                                ==7044== Thread 29 Chrome_InProcGpu:
                                ==7044== Conditional jump or move depends on uninitialised value(s)
                                ==7044==    at 0xC25EF7E: contains (sparse_set.h:227)
                                ==7044==    by 0xC25EF7E: InsertInternal (sparse_set.h:156)
                                ==7044==    by 0xC25EF7E: InsertInternal (sparse_set.h:143)
                                ==7044==    by 0xC25EF7E: insert (sparse_set.h:133)
                                ==7044==    by 0xC25EF7E: AddToQueue (prog.cc:137)
                                ==7044==    by 0xC25EF7E: re2::Prog::Optimize() (prog.cc:240)
                                ==7044==    by 0xC24787A: re2::Compiler::Finish(re2::Regexp*) (compile.cc:1173)
                                ==7044==    by 0xC24A9EA: re2::Compiler::Compile(re2::Regexp*, bool, long) (compile.cc:1157)
                                ==7044==    by 0xC236EB5: re2::RE2::Init(std::basic_string_view<char, std::char_traits<char> >, re2::RE2::Options const&) (re2.cc:254)
                                ==7044==    by 0xC237598: re2::RE2::RE2(char const*) (re2.cc:141)
                                ==7044==    by 0x7496B14: gpu::(anonymous namespace)::ProcessANGLEGLRenderer(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) [clone .constprop.0] (gpu_control_list.cc:126)
                                ==7044==    by 0x7497855: gpu::GpuControlList::GLStrings::Contains(gpu::GPUInfo const&) const (gpu_control_list.cc:323)
                                ==7044==    by 0x749A802: gpu::GpuControlList::Conditions::Contains(gpu::GpuControlList::OsType, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, gpu::GPUInfo const&) const [clone .part.0] (gpu_control_list.cc:555)
                                ==7044==    by 0x749AC9B: Contains (gpu_control_list.cc:574)
                                ==7044==    by 0x749AC9B: gpu::GpuControlList::Entry::Contains(gpu::GpuControlList::OsType, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, gpu::GPUInfo const&) const (gpu_control_list.cc:574)
                                ==7044==    by 0x749B0AA: gpu::GpuControlList::MakeDecision(gpu::GpuControlList::OsType, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, gpu::GPUInfo const&, unsigned int) (gpu_control_list.cc:702)
                                ==7044==    by 0x74ADB46: gpu::ComputeGpuFeatureInfo(gpu::GPUInfo const&, gpu::GpuPreferences const&, base::CommandLine*, bool*) (gpu_util.cc:595)
                                ==7044==    by 0xCCC1F7E: gpu::GpuInit::InitializeInProcess(base::CommandLine*, gpu::GpuPreferences const&) (gpu_init.cc:937)
                                ==7044== 
                                ==7044== Use of uninitialised value of size 8
                                ==7044==    at 0xC25EF80: contains (sparse_set.h:227)
                                ==7044==    by 0xC25EF80: InsertInternal (sparse_set.h:156)
                                ==7044==    by 0xC25EF80: InsertInternal (sparse_set.h:143)
                                ==7044==    by 0xC25EF80: insert (sparse_set.h:133)
                                ==7044==    by 0xC25EF80: AddToQueue (prog.cc:137)
                                ==7044==    by 0xC25EF80: re2::Prog::Optimize() (prog.cc:240)
                                ==7044==    by 0xC24787A: re2::Compiler::Finish(re2::Regexp*) (compile.cc:1173)
                                ==7044==    by 0xC24A9EA: re2::Compiler::Compile(re2::Regexp*, bool, long) (compile.cc:1157)
                                ==7044==    by 0xC236EB5: re2::RE2::Init(std::basic_string_view<char, std::char_traits<char> >, re2::RE2::Options const&) (re2.cc:254)
                                ==7044==    by 0xC237598: re2::RE2::RE2(char const*) (re2.cc:141)
                                ==7044==    by 0x7496B14: gpu::(anonymous namespace)::ProcessANGLEGLRenderer(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) [clone .constprop.0] (gpu_control_list.cc:126)
                                ==7044==    by 0x7497855: gpu::GpuControlList::GLStrings::Contains(gpu::GPUInfo const&) const (gpu_control_list.cc:323)
                                ==7044==    by 0x749A802: gpu::GpuControlList::Conditions::Contains(gpu::GpuControlList::OsType, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, gpu::GPUInfo const&) const [clone .part.0] (gpu_control_list.cc:555)
                                ==7044==    by 0x749AC9B: Contains (gpu_control_list.cc:574)
                                ==7044==    by 0x749AC9B: gpu::GpuControlList::Entry::Contains(gpu::GpuControlList::OsType, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, gpu::GPUInfo const&) const (gpu_control_list.cc:574)
                                ==7044==    by 0x749B0AA: gpu::GpuControlList::MakeDecision(gpu::GpuControlList::OsType, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, gpu::GPUInfo const&, unsigned int) (gpu_control_list.cc:702)
                                ==7044==    by 0x74ADB46: gpu::ComputeGpuFeatureInfo(gpu::GPUInfo const&, gpu::GpuPreferences const&, base::CommandLine*, bool*) (gpu_util.cc:595)
                                ==7044==    by 0xCCC1F7E: gpu::GpuInit::InitializeInProcess(base::CommandLine*, gpu::GpuPreferences const&) (gpu_init.cc:937)
                                ==7044== 
                                
                                ...
                                
                                ==7044== 
                                ==7044== Invalid read of size 4
                                ==7044==    at 0x5A72A64: __pthread_mutex_unlock_usercnt (pthread_mutex_unlock.c:51)
                                ==7044==    by 0x5A72A64: pthread_mutex_unlock@@GLIBC_2.2.5 (pthread_mutex_unlock.c:368)
                                ==7044==    by 0x18278B0C: ??? (in /usr/lib/x86_64-linux-gnu/libGLX_mesa.so.0.0.0)
                                ==7044==    by 0x183B05D9: ??? (in /usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so)
                                ==7044==    by 0x18465114: ??? (in /usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so)
                                ==7044==    by 0x184651AB: ??? (in /usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so)
                                ==7044==    by 0xAF941E1: syncAllOutstandingGpuWork (GrDirectContext.cpp:546)
                                ==7044==    by 0xAF941E1: syncAllOutstandingGpuWork (GrDirectContext.cpp:544)
                                ==7044==    by 0xAF941E1: GrDirectContext::~GrDirectContext() (GrDirectContext.cpp:112)
                                ==7044==    by 0xAF94201: GrDirectContext::~GrDirectContext() (GrDirectContext.cpp:123)
                                ==7044==    by 0xCC598DA: internal_dispose (SkRefCnt.h:99)
                                ==7044==    by 0xCC598DA: unref (SkRefCnt.h:78)
                                ==7044==    by 0xCC598DA: unref (SkRefCnt.h:72)
                                ==7044==    by 0xCC598DA: SkSafeUnref<GrDirectContext> (SkRefCnt.h:151)
                                ==7044==    by 0xCC598DA: reset (SkRefCnt.h:316)
                                ==7044==    by 0xCC598DA: gpu::SharedContextState::~SharedContextState() (shared_context_state.cc:275)
                                ==7044==    by 0xCC59921: gpu::SharedContextState::~SharedContextState() (shared_context_state.cc:291)
                                ==7044==    by 0xCCBE051: DeleteInternal<gpu::SharedContextState> (ref_counted.h:366)
                                ==7044==    by 0xCCBE051: Destruct (ref_counted.h:330)
                                ==7044==    by 0xCCBE051: Release (ref_counted.h:355)
                                ==7044==    by 0xCCBE051: Release (ref_counted.h:348)
                                ==7044==    by 0xCCBE051: Release (scoped_refptr.h:386)
                                ==7044==    by 0xCCBE051: ~scoped_refptr (scoped_refptr.h:273)
                                ==7044==    by 0xCCBE051: gpu::GpuChannelManager::~GpuChannelManager() (gpu_channel_manager.cc:393)
                                ==7044==    by 0xCCBE0E1: gpu::GpuChannelManager::~GpuChannelManager() (gpu_channel_manager.cc:414)
                                ==7044==    by 0xCF7A7AF: operator() (unique_ptr.h:85)
                                ==7044==    by 0xCF7A7AF: reset (unique_ptr.h:182)
                                ==7044==    by 0xCF7A7AF: reset (unique_ptr.h:456)
                                ==7044==    by 0xCF7A7AF: viz::GpuServiceImpl::~GpuServiceImpl() (gpu_service_impl.cc:474)
                                ==7044==  Address 0x1689fd48 is 328 bytes inside a block of size 424 free'd
                                ==7044==    at 0x484988F: free (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
                                ==7044==    by 0x18257F04: ??? (in /usr/lib/x86_64-linux-gnu/libGLX_mesa.so.0.0.0)
                                ==7044==    by 0x69201FB: gl::GLSurfaceGLXQt::Destroy() (gl_surface_glx_qt.cpp:134)
                                ==7044==    by 0xCCBDE0E: gpu::GpuChannelManager::~GpuChannelManager() (gpu_channel_manager.cc:411)
                                ==7044==    by 0xCCBE0E1: gpu::GpuChannelManager::~GpuChannelManager() (gpu_channel_manager.cc:414)
                                ==7044==    by 0xCF7A7AF: operator() (unique_ptr.h:85)
                                ==7044==    by 0xCF7A7AF: reset (unique_ptr.h:182)
                                ==7044==    by 0xCF7A7AF: reset (unique_ptr.h:456)
                                ==7044==    by 0xCF7A7AF: viz::GpuServiceImpl::~GpuServiceImpl() (gpu_service_impl.cc:474)
                                ==7044==    by 0xCF7ADD1: viz::GpuServiceImpl::~GpuServiceImpl() (gpu_service_impl.cc:512)
                                ==7044==    by 0x9EEF802: operator() (unique_ptr.h:85)
                                ==7044==    by 0x9EEF802: ~unique_ptr (unique_ptr.h:361)
                                ==7044==    by 0x9EEF802: viz::VizMainImpl::~VizMainImpl() (viz_main_impl.cc:152)
                                ==7044==    by 0xCF4B9E0: content::GpuChildThread::~GpuChildThread() (gpu_child_thread.cc:143)
                                ==7044==    by 0xCF4BA31: content::GpuChildThread::~GpuChildThread() (gpu_child_thread.cc:143)
                                ==7044==    by 0xCDA8E21: operator() (unique_ptr.h:85)
                                ==7044==    by 0xCDA8E21: reset (unique_ptr.h:182)
                                ==7044==    by 0xCDA8E21: reset (unique_ptr.h:456)
                                ==7044==    by 0xCDA8E21: content::ChildProcess::~ChildProcess() (child_process.cc:158)
                                ==7044==    by 0xCDA8E51: content::ChildProcess::~ChildProcess() (child_process.cc:180)
                                ==7044==  Block was alloc'd at
                                ==7044==    at 0x484D953: calloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
                                ==7044==    by 0x18264A9B: ??? (in /usr/lib/x86_64-linux-gnu/libGLX_mesa.so.0.0.0)
                                ==7044==    by 0x18257F89: ??? (in /usr/lib/x86_64-linux-gnu/libGLX_mesa.so.0.0.0)
                                ==7044==    by 0x182581EB: ??? (in /usr/lib/x86_64-linux-gnu/libGLX_mesa.so.0.0.0)
                                ==7044==    by 0x1613C80C: glXCreatePbuffer (in /usr/lib/x86_64-linux-gnu/libGLX.so.0.0.0)
                                ==7044==    by 0x6920EFB: gl::GLSurfaceGLXQt::Initialize(gl::GLSurfaceFormat) (gl_surface_glx_qt.cpp:120)
                                ==7044==    by 0x69200DF: ui::GLOzoneGLXQt::CreateOffscreenGLSurface(gl::GLDisplay*, gfx::Size const&) (gl_ozone_glx_qt.cpp:105)
                                ==7044==    by 0xC264259: gl::init::CreateOffscreenGLSurface(gl::GLDisplay*, gfx::Size const&) (gl_factory_ozone.cc:94)
                                ==7044==    by 0xCCC2070: gpu::GpuInit::InitializeInProcess(base::CommandLine*, gpu::GpuPreferences const&) (gpu_init.cc:1021)
                                ==7044==    by 0xCF4B632: content::InProcessGpuThread::Init() (in_process_gpu_thread.cc:71)
                                ==7044==    by 0xAB8F7E4: base::Thread::ThreadMain() (thread.cc:398)
                                ==7044==    by 0xABA306E: base::(anonymous namespace)::ThreadFunc(void*) (platform_thread_posix.cc:103)
                                ==7044== 
                                ==7044== Invalid read of size 4
                                ==7044==    at 0x5A72AD5: __pthread_mutex_unlock_usercnt (pthread_mutex_unlock.c:55)
                                ==7044==    by 0x5A72AD5: pthread_mutex_unlock@@GLIBC_2.2.5 (pthread_mutex_unlock.c:368)
                                ==7044==    by 0x18278B0C: ??? (in /usr/lib/x86_64-linux-gnu/libGLX_mesa.so.0.0.0)
                                ==7044==    by 0x183B05D9: ??? (in /usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so)
                                ==7044==    by 0x18465114: ??? (in /usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so)
                                ==7044==    by 0x184651AB: ??? (in /usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so)
                                ==7044==    by 0xAF941E1: syncAllOutstandingGpuWork (GrDirectContext.cpp:546)
                                ==7044==    by 0xAF941E1: syncAllOutstandingGpuWork (GrDirectContext.cpp:544)
                                ==7044==    by 0xAF941E1: GrDirectContext::~GrDirectContext() (GrDirectContext.cpp:112)
                                ==7044==    by 0xAF94201: GrDirectContext::~GrDirectContext() (GrDirectContext.cpp:123)
                                ==7044==    by 0xCC598DA: internal_dispose (SkRefCnt.h:99)
                                ==7044==    by 0xCC598DA: unref (SkRefCnt.h:78)
                                ==7044==    by 0xCC598DA: unref (SkRefCnt.h:72)
                                ==7044==    by 0xCC598DA: SkSafeUnref<GrDirectContext> (SkRefCnt.h:151)
                                ==7044==    by 0xCC598DA: reset (SkRefCnt.h:316)
                                ==7044==    by 0xCC598DA: gpu::SharedContextState::~SharedContextState() (shared_context_state.cc:275)
                                ==7044==    by 0xCC59921: gpu::SharedContextState::~SharedContextState() (shared_context_state.cc:291)
                                ==7044==    by 0xCCBE051: DeleteInternal<gpu::SharedContextState> (ref_counted.h:366)
                                ==7044==    by 0xCCBE051: Destruct (ref_counted.h:330)
                                ==7044==    by 0xCCBE051: Release (ref_counted.h:355)
                                ==7044==    by 0xCCBE051: Release (ref_counted.h:348)
                                ==7044==    by 0xCCBE051: Release (scoped_refptr.h:386)
                                ==7044==    by 0xCCBE051: ~scoped_refptr (scoped_refptr.h:273)
                                ==7044==    by 0xCCBE051: gpu::GpuChannelManager::~GpuChannelManager() (gpu_channel_manager.cc:393)
                                ==7044==    by 0xCCBE0E1: gpu::GpuChannelManager::~GpuChannelManager() (gpu_channel_manager.cc:414)
                                ==7044==    by 0xCF7A7AF: operator() (unique_ptr.h:85)
                                ==7044==    by 0xCF7A7AF: reset (unique_ptr.h:182)
                                ==7044==    by 0xCF7A7AF: reset (unique_ptr.h:456)
                                ==7044==    by 0xCF7A7AF: viz::GpuServiceImpl::~GpuServiceImpl() (gpu_service_impl.cc:474)
                                ==7044==  Address 0x1689fd48 is 328 bytes inside a block of size 424 free'd
                                ==7044==    at 0x484988F: free (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
                                ==7044==    by 0x18257F04: ??? (in /usr/lib/x86_64-linux-gnu/libGLX_mesa.so.0.0.0)
                                ==7044==    by 0x69201FB: gl::GLSurfaceGLXQt::Destroy() (gl_surface_glx_qt.cpp:134)
                                ==7044==    by 0xCCBDE0E: gpu::GpuChannelManager::~GpuChannelManager() (gpu_channel_manager.cc:411)
                                ==7044==    by 0xCCBE0E1: gpu::GpuChannelManager::~GpuChannelManager() (gpu_channel_manager.cc:414)
                                ==7044==    by 0xCF7A7AF: operator() (unique_ptr.h:85)
                                ==7044==    by 0xCF7A7AF: reset (unique_ptr.h:182)
                                ==7044==    by 0xCF7A7AF: reset (unique_ptr.h:456)
                                ==7044==    by 0xCF7A7AF: viz::GpuServiceImpl::~GpuServiceImpl() (gpu_service_impl.cc:474)
                                ==7044==    by 0xCF7ADD1: viz::GpuServiceImpl::~GpuServiceImpl() (gpu_service_impl.cc:512)
                                ==7044==    by 0x9EEF802: operator() (unique_ptr.h:85)
                                ==7044==    by 0x9EEF802: ~unique_ptr (unique_ptr.h:361)
                                ==7044==    by 0x9EEF802: viz::VizMainImpl::~VizMainImpl() (viz_main_impl.cc:152)
                                ==7044==    by 0xCF4B9E0: content::GpuChildThread::~GpuChildThread() (gpu_child_thread.cc:143)
                                ==7044==    by 0xCF4BA31: content::GpuChildThread::~GpuChildThread() (gpu_child_thread.cc:143)
                                ==7044==    by 0xCDA8E21: operator() (unique_ptr.h:85)
                                ==7044==    by 0xCDA8E21: reset (unique_ptr.h:182)
                                ==7044==    by 0xCDA8E21: reset (unique_ptr.h:456)
                                ==7044==    by 0xCDA8E21: content::ChildProcess::~ChildProcess() (child_process.cc:158)
                                ==7044==    by 0xCDA8E51: content::ChildProcess::~ChildProcess() (child_process.cc:180)
                                ==7044==  Block was alloc'd at
                                ==7044==    at 0x484D953: calloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
                                ==7044==    by 0x18264A9B: ??? (in /usr/lib/x86_64-linux-gnu/libGLX_mesa.so.0.0.0)
                                ==7044==    by 0x18257F89: ??? (in /usr/lib/x86_64-linux-gnu/libGLX_mesa.so.0.0.0)
                                ==7044==    by 0x182581EB: ??? (in /usr/lib/x86_64-linux-gnu/libGLX_mesa.so.0.0.0)
                                ==7044==    by 0x1613C80C: glXCreatePbuffer (in /usr/lib/x86_64-linux-gnu/libGLX.so.0.0.0)
                                ==7044==    by 0x6920EFB: gl::GLSurfaceGLXQt::Initialize(gl::GLSurfaceFormat) (gl_surface_glx_qt.cpp:120)
                                ==7044==    by 0x69200DF: ui::GLOzoneGLXQt::CreateOffscreenGLSurface(gl::GLDisplay*, gfx::Size const&) (gl_ozone_glx_qt.cpp:105)
                                ==7044==    by 0xC264259: gl::init::CreateOffscreenGLSurface(gl::GLDisplay*, gfx::Size const&) (gl_factory_ozone.cc:94)
                                ==7044==    by 0xCCC2070: gpu::GpuInit::InitializeInProcess(base::CommandLine*, gpu::GpuPreferences const&) (gpu_init.cc:1021)
                                ==7044==    by 0xCF4B632: content::InProcessGpuThread::Init() (in_process_gpu_thread.cc:71)
                                ==7044==    by 0xAB8F7E4: base::Thread::ThreadMain() (thread.cc:398)
                                ==7044==    by 0xABA306E: base::(anonymous namespace)::ThreadFunc(void*) (platform_thread_posix.cc:103)
                                ==7044== 
                                ==7044== 
                                ==7044== HEAP SUMMARY:
                                ==7044==     in use at exit: 6,179,618 bytes in 30,336 blocks
                                ==7044==   total heap usage: 345,912 allocs, 315,576 frees, 79,577,197 bytes allocated
                                ==7044== 
                                ==7044== LEAK SUMMARY:
                                ==7044==    definitely lost: 12,264 bytes in 48 blocks
                                ==7044==    indirectly lost: 432,978 bytes in 2,699 blocks
                                ==7044==      possibly lost: 2,057,478 bytes in 440 blocks
                                ==7044==    still reachable: 3,676,898 bytes in 27,149 blocks
                                ==7044==                       of which reachable via heuristic:
                                ==7044==                         length64           : 10,776 bytes in 276 blocks
                                ==7044==                         newarray           : 40,104 bytes in 86 blocks
                                ==7044==                         multipleinheritance: 6,544 bytes in 8 blocks
                                ==7044==         suppressed: 0 bytes in 0 blocks
                                ==7044== Rerun with --leak-check=full to see details of leaked memory
                                ==7044== 
                                ==7044== Use --track-origins=yes to see where uninitialised values come from
                                ==7044== For lists of detected and suppressed errors, rerun with: -s
                                ==7044== ERROR SUMMARY: 64345 errors from 53 contexts (suppressed: 0 from 0)
                                
                                C 1 Reply Last reply
                                0
                                • V Volker75

                                  I run your code. It looks like it is working, but with valgrind it complains a lot. So it is only luck that it look like working fine.
                                  Error messages from your working code (also shorten):

                                  ==7044== Syscall param writev(vector[0]) points to uninitialised byte(s)
                                  ==7044==    at 0x5AFA89B: __writev (writev.c:26)
                                  ==7044==    by 0x5AFA89B: writev (writev.c:24)
                                  ==7044==    by 0x15DB6ACA: ??? (in /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0)
                                  ==7044==    by 0x15DB6C4E: ??? (in /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0)
                                  ==7044==    by 0x15DB6DA6: ??? (in /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0)
                                  ==7044==    by 0x15DB6F94: ??? (in /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0)
                                  ==7044==    by 0x15DB7E6D: xcb_wait_for_reply (in /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0)
                                  ==7044==    by 0x170D078E: QXcbConnection::initializeScreensFromMonitor(xcb_screen_iterator_t*, int, QXcbScreen**, bool) (in /home/volker/Qt6.8/6.8.1/gcc_64/lib/libQt6XcbQpa.so.6.8.1)
                                  ==7044==    by 0x170D1EDE: QXcbConnection::initializeScreens(bool) (in /home/volker/Qt6.8/6.8.1/gcc_64/lib/libQt6XcbQpa.so.6.8.1)
                                  ==7044==    by 0x170C91A1: QXcbConnection::QXcbConnection(QXcbNativeInterface*, bool, unsigned int, char const*) (in /home/volker/Qt6.8/6.8.1/gcc_64/lib/libQt6XcbQpa.so.6.8.1)
                                  ==7044==    by 0x170ED034: QXcbIntegration::QXcbIntegration(QList<QString> const&, int&, char**) (in /home/volker/Qt6.8/6.8.1/gcc_64/lib/libQt6XcbQpa.so.6.8.1)
                                  ==7044==    by 0x570C522: ??? (in /home/volker/Qt6.8/6.8.1/gcc_64/plugins/platforms/libqxcb.so)
                                  ==7044==    by 0x1282392E: ??? (in /home/volker/Qt6.8/6.8.1/gcc_64/lib/libQt6Gui.so.6.8.1)
                                  ==7044==  Address 0x16747395 is 4,533 bytes inside a block of size 21,176 alloc'd
                                  ==7044==    at 0x484D953: calloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
                                  ==7044==    by 0x15DB9396: xcb_connect_to_fd (in /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0)
                                  ==7044==    by 0x15DBA0D9: xcb_connect_to_display_with_auth_info (in /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0)
                                  ==7044==    by 0x15AB33C9: _XConnectXCB (in /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0)
                                  ==7044==    by 0x15AA40FD: XOpenDisplay (in /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0)
                                  ==7044==    by 0x170CDE30: QXcbBasicConnection::QXcbBasicConnection(char const*) (in /home/volker/Qt6.8/6.8.1/gcc_64/lib/libQt6XcbQpa.so.6.8.1)
                                  ==7044==    by 0x170C8F83: QXcbConnection::QXcbConnection(QXcbNativeInterface*, bool, unsigned int, char const*) (in /home/volker/Qt6.8/6.8.1/gcc_64/lib/libQt6XcbQpa.so.6.8.1)
                                  ==7044==    by 0x170ED034: QXcbIntegration::QXcbIntegration(QList<QString> const&, int&, char**) (in /home/volker/Qt6.8/6.8.1/gcc_64/lib/libQt6XcbQpa.so.6.8.1)
                                  ==7044==    by 0x570C522: ??? (in /home/volker/Qt6.8/6.8.1/gcc_64/plugins/platforms/libqxcb.so)
                                  ==7044==    by 0x1282392E: ??? (in /home/volker/Qt6.8/6.8.1/gcc_64/lib/libQt6Gui.so.6.8.1)
                                  ==7044==    by 0x128271B6: QGuiApplicationPrivate::createPlatformIntegration() (in /home/volker/Qt6.8/6.8.1/gcc_64/lib/libQt6Gui.so.6.8.1)
                                  ==7044==    by 0x12827B87: QGuiApplicationPrivate::createEventDispatcher() (in /home/volker/Qt6.8/6.8.1/gcc_64/lib/libQt6Gui.so.6.8.1)
                                  ==7044== 
                                  ==7104== 
                                  ==7104== HEAP SUMMARY:
                                  ==7104==     in use at exit: 6,397,982 bytes in 13,432 blocks
                                  ==7104==   total heap usage: 27,129 allocs, 13,697 frees, 12,652,216 bytes allocated
                                  ==7104== 
                                  ==7104== LEAK SUMMARY:
                                  ==7104==    definitely lost: 0 bytes in 0 blocks
                                  ==7104==    indirectly lost: 0 bytes in 0 blocks
                                  ==7104==      possibly lost: 563,424 bytes in 142 blocks
                                  ==7104==    still reachable: 5,834,558 bytes in 13,290 blocks
                                  ==7104==                       of which reachable via heuristic:
                                  ==7104==                         newarray           : 3,344 bytes in 22 blocks
                                  ==7104==                         multipleinheritance: 2,080 bytes in 6 blocks
                                  ==7104==         suppressed: 0 bytes in 0 blocks
                                  ==7104== Rerun with --leak-check=full to see details of leaked memory
                                  ==7104== 
                                  ==7104== Use --track-origins=yes to see where uninitialised values come from
                                  ==7104== For lists of detected and suppressed errors, rerun with: -s
                                  ==7104== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
                                  ==7105== Warning: bad signal number 65 in sigaction()
                                  ==7105== Warning: invalid file descriptor 1024 in syscall close()
                                  ==7105== Warning: invalid file descriptor 1025 in syscall close()
                                  ==7105== Warning: invalid file descriptor 1026 in syscall close()
                                  ==7105== Warning: invalid file descriptor 1027 in syscall close()
                                  ==7105==    Use --log-fd=<number> to select an alternative log fd.
                                  ==7105== Warning: invalid file descriptor 1028 in syscall close()
                                  ==7105== Warning: invalid file descriptor 1029 in syscall close()
                                  ==7106== Warning: bad signal number 65 in sigaction()
                                  ==7106== Warning: invalid file descriptor 1024 in syscall close()
                                  ==7106== Warning: invalid file descriptor 1025 in syscall close()
                                  ==7106== Warning: invalid file descriptor 1026 in syscall close()
                                  ==7106== Warning: invalid file descriptor 1027 in syscall close()
                                  ==7106==    Use --log-fd=<number> to select an alternative log fd.
                                  ==7106== Warning: invalid file descriptor 1028 in syscall close()
                                  ==7106== Warning: invalid file descriptor 1029 in syscall close()
                                  ==7044== Thread 29 Chrome_InProcGpu:
                                  ==7044== Conditional jump or move depends on uninitialised value(s)
                                  ==7044==    at 0xC25EF7E: contains (sparse_set.h:227)
                                  ==7044==    by 0xC25EF7E: InsertInternal (sparse_set.h:156)
                                  ==7044==    by 0xC25EF7E: InsertInternal (sparse_set.h:143)
                                  ==7044==    by 0xC25EF7E: insert (sparse_set.h:133)
                                  ==7044==    by 0xC25EF7E: AddToQueue (prog.cc:137)
                                  ==7044==    by 0xC25EF7E: re2::Prog::Optimize() (prog.cc:240)
                                  ==7044==    by 0xC24787A: re2::Compiler::Finish(re2::Regexp*) (compile.cc:1173)
                                  ==7044==    by 0xC24A9EA: re2::Compiler::Compile(re2::Regexp*, bool, long) (compile.cc:1157)
                                  ==7044==    by 0xC236EB5: re2::RE2::Init(std::basic_string_view<char, std::char_traits<char> >, re2::RE2::Options const&) (re2.cc:254)
                                  ==7044==    by 0xC237598: re2::RE2::RE2(char const*) (re2.cc:141)
                                  ==7044==    by 0x7496B14: gpu::(anonymous namespace)::ProcessANGLEGLRenderer(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) [clone .constprop.0] (gpu_control_list.cc:126)
                                  ==7044==    by 0x7497855: gpu::GpuControlList::GLStrings::Contains(gpu::GPUInfo const&) const (gpu_control_list.cc:323)
                                  ==7044==    by 0x749A802: gpu::GpuControlList::Conditions::Contains(gpu::GpuControlList::OsType, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, gpu::GPUInfo const&) const [clone .part.0] (gpu_control_list.cc:555)
                                  ==7044==    by 0x749AC9B: Contains (gpu_control_list.cc:574)
                                  ==7044==    by 0x749AC9B: gpu::GpuControlList::Entry::Contains(gpu::GpuControlList::OsType, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, gpu::GPUInfo const&) const (gpu_control_list.cc:574)
                                  ==7044==    by 0x749B0AA: gpu::GpuControlList::MakeDecision(gpu::GpuControlList::OsType, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, gpu::GPUInfo const&, unsigned int) (gpu_control_list.cc:702)
                                  ==7044==    by 0x74ADB46: gpu::ComputeGpuFeatureInfo(gpu::GPUInfo const&, gpu::GpuPreferences const&, base::CommandLine*, bool*) (gpu_util.cc:595)
                                  ==7044==    by 0xCCC1F7E: gpu::GpuInit::InitializeInProcess(base::CommandLine*, gpu::GpuPreferences const&) (gpu_init.cc:937)
                                  ==7044== 
                                  ==7044== Use of uninitialised value of size 8
                                  ==7044==    at 0xC25EF80: contains (sparse_set.h:227)
                                  ==7044==    by 0xC25EF80: InsertInternal (sparse_set.h:156)
                                  ==7044==    by 0xC25EF80: InsertInternal (sparse_set.h:143)
                                  ==7044==    by 0xC25EF80: insert (sparse_set.h:133)
                                  ==7044==    by 0xC25EF80: AddToQueue (prog.cc:137)
                                  ==7044==    by 0xC25EF80: re2::Prog::Optimize() (prog.cc:240)
                                  ==7044==    by 0xC24787A: re2::Compiler::Finish(re2::Regexp*) (compile.cc:1173)
                                  ==7044==    by 0xC24A9EA: re2::Compiler::Compile(re2::Regexp*, bool, long) (compile.cc:1157)
                                  ==7044==    by 0xC236EB5: re2::RE2::Init(std::basic_string_view<char, std::char_traits<char> >, re2::RE2::Options const&) (re2.cc:254)
                                  ==7044==    by 0xC237598: re2::RE2::RE2(char const*) (re2.cc:141)
                                  ==7044==    by 0x7496B14: gpu::(anonymous namespace)::ProcessANGLEGLRenderer(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) [clone .constprop.0] (gpu_control_list.cc:126)
                                  ==7044==    by 0x7497855: gpu::GpuControlList::GLStrings::Contains(gpu::GPUInfo const&) const (gpu_control_list.cc:323)
                                  ==7044==    by 0x749A802: gpu::GpuControlList::Conditions::Contains(gpu::GpuControlList::OsType, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, gpu::GPUInfo const&) const [clone .part.0] (gpu_control_list.cc:555)
                                  ==7044==    by 0x749AC9B: Contains (gpu_control_list.cc:574)
                                  ==7044==    by 0x749AC9B: gpu::GpuControlList::Entry::Contains(gpu::GpuControlList::OsType, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, gpu::GPUInfo const&) const (gpu_control_list.cc:574)
                                  ==7044==    by 0x749B0AA: gpu::GpuControlList::MakeDecision(gpu::GpuControlList::OsType, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, gpu::GPUInfo const&, unsigned int) (gpu_control_list.cc:702)
                                  ==7044==    by 0x74ADB46: gpu::ComputeGpuFeatureInfo(gpu::GPUInfo const&, gpu::GpuPreferences const&, base::CommandLine*, bool*) (gpu_util.cc:595)
                                  ==7044==    by 0xCCC1F7E: gpu::GpuInit::InitializeInProcess(base::CommandLine*, gpu::GpuPreferences const&) (gpu_init.cc:937)
                                  ==7044== 
                                  
                                  ...
                                  
                                  ==7044== 
                                  ==7044== Invalid read of size 4
                                  ==7044==    at 0x5A72A64: __pthread_mutex_unlock_usercnt (pthread_mutex_unlock.c:51)
                                  ==7044==    by 0x5A72A64: pthread_mutex_unlock@@GLIBC_2.2.5 (pthread_mutex_unlock.c:368)
                                  ==7044==    by 0x18278B0C: ??? (in /usr/lib/x86_64-linux-gnu/libGLX_mesa.so.0.0.0)
                                  ==7044==    by 0x183B05D9: ??? (in /usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so)
                                  ==7044==    by 0x18465114: ??? (in /usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so)
                                  ==7044==    by 0x184651AB: ??? (in /usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so)
                                  ==7044==    by 0xAF941E1: syncAllOutstandingGpuWork (GrDirectContext.cpp:546)
                                  ==7044==    by 0xAF941E1: syncAllOutstandingGpuWork (GrDirectContext.cpp:544)
                                  ==7044==    by 0xAF941E1: GrDirectContext::~GrDirectContext() (GrDirectContext.cpp:112)
                                  ==7044==    by 0xAF94201: GrDirectContext::~GrDirectContext() (GrDirectContext.cpp:123)
                                  ==7044==    by 0xCC598DA: internal_dispose (SkRefCnt.h:99)
                                  ==7044==    by 0xCC598DA: unref (SkRefCnt.h:78)
                                  ==7044==    by 0xCC598DA: unref (SkRefCnt.h:72)
                                  ==7044==    by 0xCC598DA: SkSafeUnref<GrDirectContext> (SkRefCnt.h:151)
                                  ==7044==    by 0xCC598DA: reset (SkRefCnt.h:316)
                                  ==7044==    by 0xCC598DA: gpu::SharedContextState::~SharedContextState() (shared_context_state.cc:275)
                                  ==7044==    by 0xCC59921: gpu::SharedContextState::~SharedContextState() (shared_context_state.cc:291)
                                  ==7044==    by 0xCCBE051: DeleteInternal<gpu::SharedContextState> (ref_counted.h:366)
                                  ==7044==    by 0xCCBE051: Destruct (ref_counted.h:330)
                                  ==7044==    by 0xCCBE051: Release (ref_counted.h:355)
                                  ==7044==    by 0xCCBE051: Release (ref_counted.h:348)
                                  ==7044==    by 0xCCBE051: Release (scoped_refptr.h:386)
                                  ==7044==    by 0xCCBE051: ~scoped_refptr (scoped_refptr.h:273)
                                  ==7044==    by 0xCCBE051: gpu::GpuChannelManager::~GpuChannelManager() (gpu_channel_manager.cc:393)
                                  ==7044==    by 0xCCBE0E1: gpu::GpuChannelManager::~GpuChannelManager() (gpu_channel_manager.cc:414)
                                  ==7044==    by 0xCF7A7AF: operator() (unique_ptr.h:85)
                                  ==7044==    by 0xCF7A7AF: reset (unique_ptr.h:182)
                                  ==7044==    by 0xCF7A7AF: reset (unique_ptr.h:456)
                                  ==7044==    by 0xCF7A7AF: viz::GpuServiceImpl::~GpuServiceImpl() (gpu_service_impl.cc:474)
                                  ==7044==  Address 0x1689fd48 is 328 bytes inside a block of size 424 free'd
                                  ==7044==    at 0x484988F: free (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
                                  ==7044==    by 0x18257F04: ??? (in /usr/lib/x86_64-linux-gnu/libGLX_mesa.so.0.0.0)
                                  ==7044==    by 0x69201FB: gl::GLSurfaceGLXQt::Destroy() (gl_surface_glx_qt.cpp:134)
                                  ==7044==    by 0xCCBDE0E: gpu::GpuChannelManager::~GpuChannelManager() (gpu_channel_manager.cc:411)
                                  ==7044==    by 0xCCBE0E1: gpu::GpuChannelManager::~GpuChannelManager() (gpu_channel_manager.cc:414)
                                  ==7044==    by 0xCF7A7AF: operator() (unique_ptr.h:85)
                                  ==7044==    by 0xCF7A7AF: reset (unique_ptr.h:182)
                                  ==7044==    by 0xCF7A7AF: reset (unique_ptr.h:456)
                                  ==7044==    by 0xCF7A7AF: viz::GpuServiceImpl::~GpuServiceImpl() (gpu_service_impl.cc:474)
                                  ==7044==    by 0xCF7ADD1: viz::GpuServiceImpl::~GpuServiceImpl() (gpu_service_impl.cc:512)
                                  ==7044==    by 0x9EEF802: operator() (unique_ptr.h:85)
                                  ==7044==    by 0x9EEF802: ~unique_ptr (unique_ptr.h:361)
                                  ==7044==    by 0x9EEF802: viz::VizMainImpl::~VizMainImpl() (viz_main_impl.cc:152)
                                  ==7044==    by 0xCF4B9E0: content::GpuChildThread::~GpuChildThread() (gpu_child_thread.cc:143)
                                  ==7044==    by 0xCF4BA31: content::GpuChildThread::~GpuChildThread() (gpu_child_thread.cc:143)
                                  ==7044==    by 0xCDA8E21: operator() (unique_ptr.h:85)
                                  ==7044==    by 0xCDA8E21: reset (unique_ptr.h:182)
                                  ==7044==    by 0xCDA8E21: reset (unique_ptr.h:456)
                                  ==7044==    by 0xCDA8E21: content::ChildProcess::~ChildProcess() (child_process.cc:158)
                                  ==7044==    by 0xCDA8E51: content::ChildProcess::~ChildProcess() (child_process.cc:180)
                                  ==7044==  Block was alloc'd at
                                  ==7044==    at 0x484D953: calloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
                                  ==7044==    by 0x18264A9B: ??? (in /usr/lib/x86_64-linux-gnu/libGLX_mesa.so.0.0.0)
                                  ==7044==    by 0x18257F89: ??? (in /usr/lib/x86_64-linux-gnu/libGLX_mesa.so.0.0.0)
                                  ==7044==    by 0x182581EB: ??? (in /usr/lib/x86_64-linux-gnu/libGLX_mesa.so.0.0.0)
                                  ==7044==    by 0x1613C80C: glXCreatePbuffer (in /usr/lib/x86_64-linux-gnu/libGLX.so.0.0.0)
                                  ==7044==    by 0x6920EFB: gl::GLSurfaceGLXQt::Initialize(gl::GLSurfaceFormat) (gl_surface_glx_qt.cpp:120)
                                  ==7044==    by 0x69200DF: ui::GLOzoneGLXQt::CreateOffscreenGLSurface(gl::GLDisplay*, gfx::Size const&) (gl_ozone_glx_qt.cpp:105)
                                  ==7044==    by 0xC264259: gl::init::CreateOffscreenGLSurface(gl::GLDisplay*, gfx::Size const&) (gl_factory_ozone.cc:94)
                                  ==7044==    by 0xCCC2070: gpu::GpuInit::InitializeInProcess(base::CommandLine*, gpu::GpuPreferences const&) (gpu_init.cc:1021)
                                  ==7044==    by 0xCF4B632: content::InProcessGpuThread::Init() (in_process_gpu_thread.cc:71)
                                  ==7044==    by 0xAB8F7E4: base::Thread::ThreadMain() (thread.cc:398)
                                  ==7044==    by 0xABA306E: base::(anonymous namespace)::ThreadFunc(void*) (platform_thread_posix.cc:103)
                                  ==7044== 
                                  ==7044== Invalid read of size 4
                                  ==7044==    at 0x5A72AD5: __pthread_mutex_unlock_usercnt (pthread_mutex_unlock.c:55)
                                  ==7044==    by 0x5A72AD5: pthread_mutex_unlock@@GLIBC_2.2.5 (pthread_mutex_unlock.c:368)
                                  ==7044==    by 0x18278B0C: ??? (in /usr/lib/x86_64-linux-gnu/libGLX_mesa.so.0.0.0)
                                  ==7044==    by 0x183B05D9: ??? (in /usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so)
                                  ==7044==    by 0x18465114: ??? (in /usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so)
                                  ==7044==    by 0x184651AB: ??? (in /usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so)
                                  ==7044==    by 0xAF941E1: syncAllOutstandingGpuWork (GrDirectContext.cpp:546)
                                  ==7044==    by 0xAF941E1: syncAllOutstandingGpuWork (GrDirectContext.cpp:544)
                                  ==7044==    by 0xAF941E1: GrDirectContext::~GrDirectContext() (GrDirectContext.cpp:112)
                                  ==7044==    by 0xAF94201: GrDirectContext::~GrDirectContext() (GrDirectContext.cpp:123)
                                  ==7044==    by 0xCC598DA: internal_dispose (SkRefCnt.h:99)
                                  ==7044==    by 0xCC598DA: unref (SkRefCnt.h:78)
                                  ==7044==    by 0xCC598DA: unref (SkRefCnt.h:72)
                                  ==7044==    by 0xCC598DA: SkSafeUnref<GrDirectContext> (SkRefCnt.h:151)
                                  ==7044==    by 0xCC598DA: reset (SkRefCnt.h:316)
                                  ==7044==    by 0xCC598DA: gpu::SharedContextState::~SharedContextState() (shared_context_state.cc:275)
                                  ==7044==    by 0xCC59921: gpu::SharedContextState::~SharedContextState() (shared_context_state.cc:291)
                                  ==7044==    by 0xCCBE051: DeleteInternal<gpu::SharedContextState> (ref_counted.h:366)
                                  ==7044==    by 0xCCBE051: Destruct (ref_counted.h:330)
                                  ==7044==    by 0xCCBE051: Release (ref_counted.h:355)
                                  ==7044==    by 0xCCBE051: Release (ref_counted.h:348)
                                  ==7044==    by 0xCCBE051: Release (scoped_refptr.h:386)
                                  ==7044==    by 0xCCBE051: ~scoped_refptr (scoped_refptr.h:273)
                                  ==7044==    by 0xCCBE051: gpu::GpuChannelManager::~GpuChannelManager() (gpu_channel_manager.cc:393)
                                  ==7044==    by 0xCCBE0E1: gpu::GpuChannelManager::~GpuChannelManager() (gpu_channel_manager.cc:414)
                                  ==7044==    by 0xCF7A7AF: operator() (unique_ptr.h:85)
                                  ==7044==    by 0xCF7A7AF: reset (unique_ptr.h:182)
                                  ==7044==    by 0xCF7A7AF: reset (unique_ptr.h:456)
                                  ==7044==    by 0xCF7A7AF: viz::GpuServiceImpl::~GpuServiceImpl() (gpu_service_impl.cc:474)
                                  ==7044==  Address 0x1689fd48 is 328 bytes inside a block of size 424 free'd
                                  ==7044==    at 0x484988F: free (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
                                  ==7044==    by 0x18257F04: ??? (in /usr/lib/x86_64-linux-gnu/libGLX_mesa.so.0.0.0)
                                  ==7044==    by 0x69201FB: gl::GLSurfaceGLXQt::Destroy() (gl_surface_glx_qt.cpp:134)
                                  ==7044==    by 0xCCBDE0E: gpu::GpuChannelManager::~GpuChannelManager() (gpu_channel_manager.cc:411)
                                  ==7044==    by 0xCCBE0E1: gpu::GpuChannelManager::~GpuChannelManager() (gpu_channel_manager.cc:414)
                                  ==7044==    by 0xCF7A7AF: operator() (unique_ptr.h:85)
                                  ==7044==    by 0xCF7A7AF: reset (unique_ptr.h:182)
                                  ==7044==    by 0xCF7A7AF: reset (unique_ptr.h:456)
                                  ==7044==    by 0xCF7A7AF: viz::GpuServiceImpl::~GpuServiceImpl() (gpu_service_impl.cc:474)
                                  ==7044==    by 0xCF7ADD1: viz::GpuServiceImpl::~GpuServiceImpl() (gpu_service_impl.cc:512)
                                  ==7044==    by 0x9EEF802: operator() (unique_ptr.h:85)
                                  ==7044==    by 0x9EEF802: ~unique_ptr (unique_ptr.h:361)
                                  ==7044==    by 0x9EEF802: viz::VizMainImpl::~VizMainImpl() (viz_main_impl.cc:152)
                                  ==7044==    by 0xCF4B9E0: content::GpuChildThread::~GpuChildThread() (gpu_child_thread.cc:143)
                                  ==7044==    by 0xCF4BA31: content::GpuChildThread::~GpuChildThread() (gpu_child_thread.cc:143)
                                  ==7044==    by 0xCDA8E21: operator() (unique_ptr.h:85)
                                  ==7044==    by 0xCDA8E21: reset (unique_ptr.h:182)
                                  ==7044==    by 0xCDA8E21: reset (unique_ptr.h:456)
                                  ==7044==    by 0xCDA8E21: content::ChildProcess::~ChildProcess() (child_process.cc:158)
                                  ==7044==    by 0xCDA8E51: content::ChildProcess::~ChildProcess() (child_process.cc:180)
                                  ==7044==  Block was alloc'd at
                                  ==7044==    at 0x484D953: calloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
                                  ==7044==    by 0x18264A9B: ??? (in /usr/lib/x86_64-linux-gnu/libGLX_mesa.so.0.0.0)
                                  ==7044==    by 0x18257F89: ??? (in /usr/lib/x86_64-linux-gnu/libGLX_mesa.so.0.0.0)
                                  ==7044==    by 0x182581EB: ??? (in /usr/lib/x86_64-linux-gnu/libGLX_mesa.so.0.0.0)
                                  ==7044==    by 0x1613C80C: glXCreatePbuffer (in /usr/lib/x86_64-linux-gnu/libGLX.so.0.0.0)
                                  ==7044==    by 0x6920EFB: gl::GLSurfaceGLXQt::Initialize(gl::GLSurfaceFormat) (gl_surface_glx_qt.cpp:120)
                                  ==7044==    by 0x69200DF: ui::GLOzoneGLXQt::CreateOffscreenGLSurface(gl::GLDisplay*, gfx::Size const&) (gl_ozone_glx_qt.cpp:105)
                                  ==7044==    by 0xC264259: gl::init::CreateOffscreenGLSurface(gl::GLDisplay*, gfx::Size const&) (gl_factory_ozone.cc:94)
                                  ==7044==    by 0xCCC2070: gpu::GpuInit::InitializeInProcess(base::CommandLine*, gpu::GpuPreferences const&) (gpu_init.cc:1021)
                                  ==7044==    by 0xCF4B632: content::InProcessGpuThread::Init() (in_process_gpu_thread.cc:71)
                                  ==7044==    by 0xAB8F7E4: base::Thread::ThreadMain() (thread.cc:398)
                                  ==7044==    by 0xABA306E: base::(anonymous namespace)::ThreadFunc(void*) (platform_thread_posix.cc:103)
                                  ==7044== 
                                  ==7044== 
                                  ==7044== HEAP SUMMARY:
                                  ==7044==     in use at exit: 6,179,618 bytes in 30,336 blocks
                                  ==7044==   total heap usage: 345,912 allocs, 315,576 frees, 79,577,197 bytes allocated
                                  ==7044== 
                                  ==7044== LEAK SUMMARY:
                                  ==7044==    definitely lost: 12,264 bytes in 48 blocks
                                  ==7044==    indirectly lost: 432,978 bytes in 2,699 blocks
                                  ==7044==      possibly lost: 2,057,478 bytes in 440 blocks
                                  ==7044==    still reachable: 3,676,898 bytes in 27,149 blocks
                                  ==7044==                       of which reachable via heuristic:
                                  ==7044==                         length64           : 10,776 bytes in 276 blocks
                                  ==7044==                         newarray           : 40,104 bytes in 86 blocks
                                  ==7044==                         multipleinheritance: 6,544 bytes in 8 blocks
                                  ==7044==         suppressed: 0 bytes in 0 blocks
                                  ==7044== Rerun with --leak-check=full to see details of leaked memory
                                  ==7044== 
                                  ==7044== Use --track-origins=yes to see where uninitialised values come from
                                  ==7044== For lists of detected and suppressed errors, rerun with: -s
                                  ==7044== ERROR SUMMARY: 64345 errors from 53 contexts (suppressed: 0 from 0)
                                  
                                  C Offline
                                  C Offline
                                  ChrisW67
                                  wrote on last edited by
                                  #20

                                  @Volker75 said in Looks like the SIGNAL loadFinished(bool) is not emitted anymore with Qt 6.8.1:

                                  run your code. It looks like it is working,

                                  So we agree that the statement that, "the SIGNAL loadFinished(bool) is not emitted anymore with Qt 6.8.1," is false.

                                  The reports from valgrind have nothing to do with the problem.

                                  1 Reply Last reply
                                  1
                                  • V Offline
                                    V Offline
                                    Volker75
                                    wrote on last edited by Volker75
                                    #21

                                    Ok. Sorry. ChrisW67. Thank you for your help. It helped us to locate the bug a bit closer. Yes. That is true. My header is wrong. My code is fine and also your code is fine. My and your applications (binaries/executables) are wrong, because there is at least one bug in Qt or in libxcb.so.1.1.0.
                                    Sadly that is out of my scope and skill level. Can anyone report this well and hunt it down?
                                    I bet that this or a very similar bug is also the reason for the other bug I reported some time ago:
                                    https://forum.qt.io/topic/160116/qtwebenginecore-dll-sometimes-not-found?_=1736677825304

                                    JonBJ 1 Reply Last reply
                                    0
                                    • V Volker75

                                      Ok. Sorry. ChrisW67. Thank you for your help. It helped us to locate the bug a bit closer. Yes. That is true. My header is wrong. My code is fine and also your code is fine. My and your applications (binaries/executables) are wrong, because there is at least one bug in Qt or in libxcb.so.1.1.0.
                                      Sadly that is out of my scope and skill level. Can anyone report this well and hunt it down?
                                      I bet that this or a very similar bug is also the reason for the other bug I reported some time ago:
                                      https://forum.qt.io/topic/160116/qtwebenginecore-dll-sometimes-not-found?_=1736677825304

                                      JonBJ Offline
                                      JonBJ Offline
                                      JonB
                                      wrote on last edited by
                                      #22

                                      @Volker75 said in Looks like the SIGNAL loadFinished(bool) is not emitted anymore with Qt 6.8.1:

                                      My header is wrong.

                                      Don't know what this means.

                                      because there is at least one bug in Qt or in libxcb.so.1.1.0.

                                      Don't know what you are referring to. Don't think anyone can act on this. My understanding is that you reported signal not working, now you acknowledge it works, so don't know what bug you are referring to.

                                      Can anyone report this well and hunt it down?

                                      I don't see what others have to hunt down which is wrong, or why they would do so.

                                      https://forum.qt.io/topic/160116/qtwebenginecore-dll-sometimes-not-found?_=1736677825304

                                      I don't see why, whatever that turned out to be about, it is particularly related to anything else here. Especially if it is "intermittent".

                                      To report a bug you need to have a small, complete piece of code which illustrates a problem. I think two other people have reported something like @ChrisW67's code seems to run fine, and you may be in that situation now, I don't know. I am not sure anyone will be interested in reports from valgrind necessarily counting as bugs, only if results in bad behaviour,

                                      1 Reply Last reply
                                      0
                                      • V Offline
                                        V Offline
                                        Volker75
                                        wrote on last edited by Volker75
                                        #23

                                        "My header" = not in the code. Header of this topic/post in the forum.

                                        I am refereeing to the valgrind logfile that i added. Did you ever used valgrind? It is a very nice tool and you can hunt down bugs in your code very well. It shows you where the bug is located.
                                        If you watch the logfile, then you can see where the bug is located. Sadly valgrind refer to files that are out of my scope. The bug is not in my source. The bug is in functions that I call only.

                                        As far as i can see and understand it, there is a wrong pointer (Quote from the log file: "vector[0]) points to uninitialized byte(s)".). It points to a wrong place and that is why the function doesn't do what it should do. It was only luck that is was running fine. Similar to the other bug that I report. It is the same software and the same code and there it crashes with Windows 10 Citrix and Qt 6.7.2 even the exact code is running fine on 10 other computers with Qt 6.7.2 (Windows, Linux, Windows 10 local, MacOS, ...). So there it was only just luck.

                                        JonBJ 1 Reply Last reply
                                        0
                                        • V Volker75

                                          "My header" = not in the code. Header of this topic/post in the forum.

                                          I am refereeing to the valgrind logfile that i added. Did you ever used valgrind? It is a very nice tool and you can hunt down bugs in your code very well. It shows you where the bug is located.
                                          If you watch the logfile, then you can see where the bug is located. Sadly valgrind refer to files that are out of my scope. The bug is not in my source. The bug is in functions that I call only.

                                          As far as i can see and understand it, there is a wrong pointer (Quote from the log file: "vector[0]) points to uninitialized byte(s)".). It points to a wrong place and that is why the function doesn't do what it should do. It was only luck that is was running fine. Similar to the other bug that I report. It is the same software and the same code and there it crashes with Windows 10 Citrix and Qt 6.7.2 even the exact code is running fine on 10 other computers with Qt 6.7.2 (Windows, Linux, Windows 10 local, MacOS, ...). So there it was only just luck.

                                          JonBJ Offline
                                          JonBJ Offline
                                          JonB
                                          wrote on last edited by
                                          #24

                                          @Volker75
                                          Yes, I have used valgrind many times. Yes, it can be a useful tool. Yes, it can always return false positives. No, I don't think anyone particularly will look into this, especially with QWebEngine, unless some behaviour is demonstrably wrong. Which as I understand it you do not have. You still say "why the function doesn't do what it should do" but I haven't seen a consistent report of something going wrong, else the other guys would have said so, valgrind report apart. Maybe I'm mistaken and someone else will look into this, but I wouldn't hold your breath.

                                          1 Reply Last reply
                                          0

                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Users
                                          • Groups
                                          • Search
                                          • Get Qt Extensions
                                          • Unsolved