BugSplat-Git/my-qt-crasher

Report from Ubuntu not visible on web

vadi2 opened this issue · 18 comments

vadi2 commented

Using the latest commit 4c8a6cb I'm able to get further, but I'm not seeing crash reports in the Fred account from my IP and stdout says the following:

15:41:37: Starting /home/vadi/Downloads/build-myQtCrasher-Desktop_Qt_5_15_2_GCC_64bit-Debug/myQtCrasher ...
[322444:322444:20211116,154141.889175:ERROR elf_dynamic_array_reader.h:61] tag not found
[322444:322444:20211116,154141.890849:ERROR elf_dynamic_array_reader.h:61] tag not found
[322444:322444:20211116,154141.892680:ERROR elf_dynamic_array_reader.h:61] tag not found
[322444:322444:20211116,154141.892730:ERROR elf_dynamic_array_reader.h:61] tag not found
[322444:322444:20211116,154141.892773:ERROR elf_dynamic_array_reader.h:61] tag not found
[322444:322444:20211116,154141.892818:ERROR elf_dynamic_array_reader.h:61] tag not found
[322444:322444:20211116,154141.892861:ERROR elf_dynamic_array_reader.h:61] tag not found
[322444:322444:20211116,154141.892907:ERROR elf_dynamic_array_reader.h:61] tag not found
[322444:322444:20211116,154141.892995:ERROR elf_dynamic_array_reader.h:61] tag not found
[322444:322444:20211116,154141.893051:ERROR elf_dynamic_array_reader.h:61] tag not found
[322444:322444:20211116,154141.893095:ERROR elf_dynamic_array_reader.h:61] tag not found
[322444:322444:20211116,154141.893139:ERROR elf_dynamic_array_reader.h:61] tag not found
[322444:322444:20211116,154141.893201:ERROR elf_dynamic_array_reader.h:61] tag not found
15:41:41: The program has unexpectedly finished.
15:41:41: The process was ended forcefully.
15:41:42: /home/vadi/Downloads/build-myQtCrasher-Desktop_Qt_5_15_2_GCC_64bit-Debug/myQtCrasher crashed.

Any ideas on what's going wrong?

@vadi2 no idea why these errors are displaying, but I was able to get a crash to post to Fred despite these errors showing for me as well. In the build output directory, under the crashpad folder, do you see anything in the child folders attachments, completed, new, or pending?

vadi2 commented

Yeah I suspected that was your report in there :) my IP should be 213.127.96.xx.

I do have a bunch of things in these folders...

.
├── attachments
│   ├── 109a2f5c-3a93-49d7-ae17-341a8195df45
│   │   └── attachment.txt
│   └── 280ecd9d-a1d8-4726-b6f3-d4c5d348157d
│       └── attachment.txt
├── completed
│   ├── 109a2f5c-3a93-49d7-ae17-341a8195df45.dmp
│   ├── 109a2f5c-3a93-49d7-ae17-341a8195df45.meta
│   ├── 280ecd9d-a1d8-4726-b6f3-d4c5d348157d.dmp
│   └── 280ecd9d-a1d8-4726-b6f3-d4c5d348157d.meta
├── crashpad_handler
├── new
├── pending
└── settings.dat

6 directories, 8 files

@vadi2 interesting, that seems to indicate it should have worked. what are the file sizes of those .dmp files?

vadi2 commented

~60kb each, here they are (I added a third one):
completed.zip

@vadi2 got it, we'll dive deeper. In the meantime, it's possible the prebuilt version of Crashpad we include in this repo has rusted. You might consider building Crashpad and integrating it yourself. Here's a guide that should help you out. Good luck!

vadi2 commented

Updated crashpad build worked 👍

vadi2 commented

But if I understand it right, the line # information is missing, same as in your reports?

image

@vadi2 glad you are starting to see some crashes! The lack of line numbers is likely due to a problem with the sym files. If I had to render a guess, the build of dump_syms has likely rusted too 😔. The guide I provided should include instructions to rebuild symupload and dump_syms. Would you be interested in submitting a PR? I'm sure BugSplat would mail you something from our store if you're interested in contributing the updated tools/libs that you built 🙂. If not, no worries, I'll chase this soon.

vadi2 commented

Certainly! But need to get it working first... once I replaced the other two files (added symupload actually as the old one is sym_upload) and did a clean build, it is not linking anymore:

g++ -Wl,-rpath,/media/vadi/SSDer/Programs/Qt/5.15.2/gcc_64/lib -o myQtCrasher main.o mainwindow.o paths.o qrc_myQtCrasher.o moc_mainwindow.o   -L/home/vadi/Downloads/my-qt-crasher-master/Crashpad/Libraries/Linux/ -lclient -lutil -lbase /media/vadi/SSDer/Programs/Qt/5.15.2/gcc_64/lib/libQt5Widgets.so /media/vadi/SSDer/Programs/Qt/5.15.2/gcc_64/lib/libQt5Gui.so /media/vadi/SSDer/Programs/Qt/5.15.2/gcc_64/lib/libQt5Core.so -lGL -lpthread   
/usr/bin/ld: main.o: in function `initializeCrashpad(QString, QString, QString)':
/home/vadi/Downloads/build-myQtCrasher-Desktop_Qt_5_15_2_GCC_64bit-Debug/../my-qt-crasher-master/main.cpp:74: undefined reference to `crashpad::CrashReportDatabase::Initialize(base::FilePath const&)'
/usr/bin/ld: /home/vadi/Downloads/build-myQtCrasher-Desktop_Qt_5_15_2_GCC_64bit-Debug/../my-qt-crasher-master/main.cpp:80: undefined reference to `crashpad::Settings::SetUploadsEnabled(bool)'
collect2: error: ld returned 1 exit status

Tried re-doing the project but same result. Odd!

@vadi2 i think I’ve seen this one before. Try fiddling around with the order of the linking arguments. For some reason on Ubuntu they order dependent and the order can change from time to time.

@vadi2 my mistake, i was thinking of a different issue in my last comment, i believe the Crashpad team actually made a change here and must've removed this method. Please see this comment I mentioned you in on our non-Qt Ubuntu sample.

vadi2 commented

Hm, that did fix the compile problem but no reports are being uploaded now - perhaps due to SetUploadsEnabled(true); missing. I'm looking at other FOSS code and it does seem like others are able to make it work, so this is puzzling.

@vadi2 I think you're right, I was convinced I had success with the other Ubuntu example without initializing a database, but now I'm not so sure. After copying a new build of Crashpad into this project I ran nm libclient.a | grep Initialize and got nothing which seems odd. Maybe there's a build flag we're not aware of?

@vadi2 I reverted back to what's currently in the main branch and ran the same nm libclient.a | grep Initialize command and did see references to Initialize. I have to bail on this for now, but if you make progress on this before I get back to it please let us know!

hi @vadi2, we had someone report this issue to us and also reported that they were able to resolve the issue. I haven't had a chance to try their solution yet, but apparently they were able to get it to work by renaming Crashpad's libutil.a to libutil2.a. The explanation I got was that the linker was trying to link to a system lib with the name libutil.a and renaming the file is one way to work around this conflict. I will try the proposed solution soon and get this repo updated if the solution works!

@vadi2 problem was crashpad recently started building a libcommon.a library in the client directory which contains the relevant CrashReportDatabase symbols (they all used to be included in libclient.a). This issue has been fixed by #21.

vadi2 commented

Nice, thanks!

@vadi2 whoops, it was actually #23 that fixed it, I had fixed the same issue in another repo but forgot to fix it here until just now 🙂