Bug 432480 - Crash when trying to Import from Google Photos
Summary: Crash when trying to Import from Google Photos
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Plugin-WebService-Google (show other bugs)
Version: 7.2.0
Platform: macOS (DMG) macOS
: NOR crash
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-02-03 20:22 UTC by johcha
Modified: 2021-02-07 11:53 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In: 7.2.0
Sentry Crash Report:


Attachments
Crash connecting to Google Photos (204.36 KB, text/plain)
2021-02-03 20:22 UTC, johcha
Details

Note You need to log in before you can comment on or make changes to this bug.
Description johcha 2021-02-03 20:22:46 UTC
Created attachment 135402 [details]
Crash connecting to Google Photos

SUMMARY

Running the 7.2 Beta, I wanted to try the Google Photos Import after upgrading my Mac to Big Sur. The import wizard launches but crashes immediately. 


STEPS TO REPRODUCE
1. Import -> Import from Google Photos
2. Import Wizard Open
3. Dialog to enter Google ID open but then digiKam crashes

OBSERVED RESULT
digikam crashes consistently 


EXPECTED RESULT
User should be able to enter google credentials and authenticate


SOFTWARE/OS VERSIONS
Windows: 
macOS: macOS 11.1
Linux/KDE Plasma: 
(available in About System)
KDE Plasma Version: 7.2.0-rc
KDE Frameworks Version: 5.78.0
Qt Version: 5.15.2

ADDITIONAL INFORMATION

Dump from Apple Crash Monitor


Process:               digikam [12164]
Path:                  /Applications/digiKam.org/digikam.app/Contents/MacOS/./digikam
Identifier:            digikam
Version:               7.2.0 (7.2.0-rc)
Code Type:             X86-64 (Native)
Parent Process:        zsh [4536]
Responsible:           iTerm2 [4526]
User ID:               501

Date/Time:             2021-02-03 12:08:34.140 -0800
OS Version:            macOS 11.1 (20C69)
Report Version:        12
Anonymous UUID:        A82006A9-DD14-5EF8-014F-1836391B0F8B

Sleep/Wake UUID:       FC34D301-A801-4052-9960-F2CD3CED5FD6

Time Awake Since Boot: 52000 seconds
Time Since Wake:       1200 seconds

System Integrity Protection: enabled

Crashed Thread:        33  Dispatch queue: com.apple.root.default-qos

Exception Type:        EXC_CRASH (SIGABRT)
Exception Codes:       0x0000000000000000, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Termination Reason:    Namespace TCC, Code 0x0

Thread 0:: CrBrowserMain  Dispatch queue: com.apple.main-thread
0   libsystem_kernel.dylib        	0x00007fff20353e7e mach_msg_trap + 10
1   libsystem_kernel.dylib        	0x00007fff203541f0 mach_msg + 60
2   com.apple.CoreFoundation      	0x00007fff20480bf7 __CFRunLoopServiceMachPort + 316
3   com.apple.CoreFoundation      	0x00007fff2047f2ca __CFRunLoopRun + 1315
4   com.apple.CoreFoundation      	0x00007fff2047e6ce CFRunLoopRunSpecific + 563
5   com.apple.HIToolbox           	0x00007fff287036d0 RunCurrentEventLoopInMode + 292
6   com.apple.HIToolbox           	0x00007fff287034cc ReceiveNextEventCommon + 709
7   com.apple.HIToolbox           	0x00007fff287031ef _BlockUntilNextEventMatchingListInModeWithFilter + 64
8   com.apple.AppKit              	0x00007fff22c9bde9 _DPSNextEvent + 883
9   com.apple.AppKit              	0x00007fff22c9a5af -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1366
10  libqcocoa.dylib               	0x00000001238cc3b2 0x12389d000 + 193458
11  libqcocoa.dylib               	0x00000001238cbb4c 0x12389d000 + 191308
12  org.qt-project.QtCore         	0x000000011345d1f8 QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 284
13  org.qt-project.QtCore         	0x000000011345f9db QCoreApplication::exec() + 123
14  digikam                       	0x000000010eb6106a main + 12154 (main.cpp:406)
15  libdyld.dylib                 	0x00007fff203a3621 start + 1

Thread 1:
0   libsystem_pthread.dylib       	0x00007fff20384458 start_wqthread + 0

Thread 2:: Thread (pooled)
0   libsystem_kernel.dylib        	0x00007fff203568e2 __psynch_cvwait + 10
1   libsystem_pthread.dylib       	0x00007fff20388e6f _pthread_cond_wait + 1254
2   org.qt-project.QtCore         	0x0000000113347723 0x113325000 + 141091
3   org.qt-project.QtCore         	0x0000000113347529 0x113325000 + 140585
4   org.qt-project.QtCore         	0x0000000113347494 QWaitCondition::wait(QMutex*, QDeadlineTimer) + 108
5   org.qt-project.QtCore         	0x000000011334489e 0x113325000 + 129182
6   org.qt-project.QtCore         	0x0000000113342234 0x113325000 + 119348
7   libsystem_pthread.dylib       	0x00007fff20388950 _pthread_start + 224
8   libsystem_pthread.dylib       	0x00007fff2038447b thread_start + 15

Thread 3:: Thread (pooled)
0   libsystem_kernel.dylib        	0x00007fff203568e2 __psynch_cvwait + 10
1   libsystem_pthread.dylib       	0x00007fff20388e6f _pthread_cond_wait + 1254
2   org.qt-project.QtCore         	0x0000000113347723 0x113325000 + 141091
3   org.qt-project.QtCore         	0x0000000113347529 0x113325000 + 140585
4   org.qt-project.QtCore         	0x0000000113347494 QWaitCondition::wait(QMutex*, QDeadlineTimer) + 108
5   org.qt-project.QtCore         	0x000000011334489e 0x113325000 + 129182
6   org.qt-project.QtCore         	0x0000000113342234 0x113325000 + 119348
7   libsystem_pthread.dylib       	0x00007fff20388950 _pthread_start + 224
8   libsystem_pthread.dylib       	0x00007fff2038447b thread_start + 15

Thread 4:: Thread (pooled)
0   libsystem_kernel.dylib        	0x00007fff203568e2 __psynch_cvwait + 10
1   libsystem_pthread.dylib       	0x00007fff20388e6f _pthread_cond_wait + 1254
2   org.qt-project.QtCore         	0x0000000113347723 0x113325000 + 141091
3   org.qt-project.QtCore         	0x0000000113347529 0x113325000 + 140585
4   org.qt-project.QtCore         	0x0000000113347494 QWaitCondition::wait(QMutex*, QDeadlineTimer) + 108
5   org.qt-project.QtCore         	0x000000011334489e 0x113325000 + 129182
6   org.qt-project.QtCore         	0x0000000113342234 0x113325000 + 119348
7   libsystem_pthread.dylib       	0x00007fff20388950 _pthread_start + 224
8   libsystem_pthread.dylib       	0x00007fff2038447b thread_start + 15

Thread 5:: Thread (pooled)
0   libsystem_kernel.dylib        	0x00007fff203568e2 __psynch_cvwait + 10
1   libsystem_pthread.dylib       	0x00007fff20388e6f _pthread_cond_wait + 1254
2   org.qt-project.QtCore         	0x0000000113347723 0x113325000 + 141091
3   org.qt-project.QtCore         	0x0000000113347529 0x113325000 + 140585
4   org.qt-project.QtCore         	0x0000000113347494 QWaitCondition::wait(QMutex*, QDeadlineTimer) + 108
5   org.qt-project.QtCore         	0x000000011334489e 0x113325000 + 129182
6   org.qt-project.QtCore         	0x0000000113342234 0x113325000 + 119348
7   libsystem_pthread.dylib       	0x00007fff20388950 _pthread_start + 224
8   libsystem_pthread.dylib       	0x00007fff2038447b thread_start + 15

Thread 6:: Digikam::ScanController
0   libsystem_kernel.dylib        	0x00007fff203568e2 __psynch_cvwait + 10
1   libsystem_pthread.dylib       	0x00007fff20388e6f _pthread_cond_wait + 1254
2   org.qt-project.QtCore         	0x0000000113347519 0x113325000 + 140569
3   org.qt-project.QtCore         	0x0000000113347494 QWaitCondition::wait(QMutex*, QDeadlineTimer) + 108
4   libdigikamgui.7.2.0.dylib     	0x000000010ecee5e1 Digikam::ScanController::run() + 593 (scancontroller.cpp:212)
5   org.qt-project.QtCore         	0x0000000113342234 0x113325000 + 119348
6   libsystem_pthread.dylib       	0x00007fff20388950 _pthread_start + 224
7   libsystem_pthread.dylib       	0x00007fff2038447b thread_start + 15

Thread 7:: com.apple.NSEventThread
0   libsystem_kernel.dylib        	0x00007fff20353e7e mach_msg_trap + 10
1   libsystem_kernel.dylib        	0x00007fff203541f0 mach_msg + 60
2   com.apple.CoreFoundation      	0x00007fff20480bf7 __CFRunLoopServiceMachPort + 316
3   com.apple.CoreFoundation      	0x00007fff2047f2ca __CFRunLoopRun + 1315
4   com.apple.CoreFoundation      	0x00007fff2047e6ce CFRunLoopRunSpecific + 563
5   com.apple.AppKit              	0x00007fff22e21c16 _NSEventThread + 124
6   libsystem_pthread.dylib       	0x00007fff20388950 _pthread_start + 224
7   libsystem_pthread.dylib       	0x00007fff2038447b thread_start + 15

Thread 8:: QDBusConnectionManager
0   libsystem_kernel.dylib        	0x00007fff2035a4fe poll + 10
1   org.qt-project.QtCore         	0x000000011349bd5f qt_safe_poll(pollfd*, unsigned int, timespec const*) + 187
2   org.qt-project.QtCore         	0x000000011349ca66 QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 356
3   org.qt-project.QtCore         	0x000000011345d1f8 QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 284
4   org.qt-project.QtCore         	0x0000000113341614 QThread::exec() + 86
5   org.qt-project.QtDBus         	0x0000000112a9c289 0x112a99000 + 12937
6   org.qt-project.QtCore         	0x0000000113342234 0x113325000 + 119348
7   libsystem_pthread.dylib       	0x00007fff20388950 _pthread_start + 224
8   libsystem_pthread.dylib       	0x00007fff2038447b thread_start + 15

Thread 9:: Digikam::ParkingThread
0   libsystem_kernel.dylib        	0x00007fff203568e2 __psynch_cvwait + 10
1   libsystem_pthread.dylib       	0x00007fff20388e6f _pthread_cond_wait + 1254
2   org.qt-project.QtCore         	0x0000000113347519 0x113325000 + 140569
3   org.qt-project.QtCore         	0x0000000113347494 QWaitCondition::wait(QMutex*, QDeadlineTimer) + 108
4   libdigikamcore.7.2.0.dylib    	0x000000011078eb2a Digikam::ParkingThread::run() + 186 (threadmanager.cpp:122)
5   org.qt-project.QtCore         	0x0000000113342234 0x113325000 + 119348
6   libsystem_pthread.dylib       	0x00007fff20388950 _pthread_start + 224
7   libsystem_pthread.dylib       	0x00007fff2038447b thread_start + 15

Thread 10:: ThreadPoolServiceThread
0   libsystem_kernel.dylib        	0x00007fff2035cdde kevent64 + 10
1   org.qt-project.Qt.QtWebEngineCore	0x0000000119bfda0a shape_detection::TextDetectionImplMac::Detect(SkBitmap const&, base::OnceCallback<void (std::__1::vector<mojo::StructPtr<shape_detection::mojom::TextDetectionResult>, std::__1::allocator<mojo::StructPtr<shape_detection::mojom::TextDetectionResult> > >)>) + 6575660
2   org.qt-project.Qt.QtWebEngineCore	0x0000000119bfd876 shape_detection::TextDetectionImplMac::Detect(SkBitmap const&, base::OnceCallback<void (std::__1::vector<mojo::StructPtr<shape_detection::mojom::TextDetectionResult>, std::__1::allocator<mojo::StructPtr<shape_detection::mojom::TextDetectionResult> > >)>) + 6575256
3   org.qt-project.Qt.QtWebEngineCore	0x0000000119b856ad shape_detection::TextDetectionImplMac::Detect(SkBitmap const&, base::OnceCallback<void (std::__1::vector<mojo::StructPtr<shape_detection::mojom::TextDetectionResult>, std::__1::allocator<mojo::StructPtr<shape_detection::mojom::TextDetectionResult> > >)>) + 6083279
4   org.qt-project.Qt.QtWebEngineCore	0x0000000119b4e2c3 shape_detection::TextDetectionImplMac::Detect(SkBitmap const&, base::OnceCallback<void (std::__1::vector<mojo::StructPtr<shape_detection::mojom::TextDetectionResult>, std::__1::allocator<mojo::StructPtr<shape_detection::mojom::TextDetectionResult> > >)>) + 5856997
5   org.qt-project.Qt.QtWebEngineCore	0x0000000119b90b34 shape_detection::TextDetectionImplMac::Detect(SkBitmap const&, base::OnceCallback<void (std::__1::vector<mojo::StructPtr<shape_detection::mojom::TextDetectionResult>, std::__1::allocator<mojo::StructPtr<shape_detection::mojom::TextDetectionResult> > >)>) + 6129494
6   org.qt-project.Qt.QtWebEngineCore	0x0000000119ba465e shape_detection::TextDetectionImplMac::Detect(SkBitmap const&, base::OnceCallback<void (std::__1::vector<mojo::StructPtr<shape_detection::mojom::TextDetectionResult>, std::__1::allocator<mojo::StructPtr<shape_detection::mojom::TextDetectionResult> > >)>) + 6210176
7   org.qt-project.Qt.QtWebEngineCore	0x0000000119bee3f7 shape_detection::TextDetectionImplMac::Detect(SkBitmap const&, base::OnceCallback<void (std::__1::vector<mojo::StructPtr<shape_detection::mojom::TextDetectionResult>, std::__1::allocator<mojo::StructPtr<shape_detection::mojom::TextDetectionResult> > >)>) + 6512665
8   libsystem_pthread.dylib       	0x00007fff20388950 _pthread_start + 224
9   libsystem_pthread.dylib       	0x00007fff2038447b thread_start + 15

Thread 11:: ThreadPoolForegroundWorker
0   libsystem_kernel.dylib        	0x00007fff20353e7e mach_msg_trap + 10
1   libsystem_kernel.dylib        	0x00007fff203541f0 mach_msg + 60
2   org.qt-project.Qt.QtWebEngineCore	0x0000000119bf2d22 shape_detection::TextDetectionImplMac::Detect(SkBitmap const&, base::OnceCallback<void (std::__1::vector<mojo::StructPtr<shape_detection::mojom::TextDetectionResult>, std::__1::allocator<mojo::StructPtr<shape_detection::mojom::TextDetectionResult> > >)>) + 6531396
3   org.qt-project.Qt.QtWebEngineCore	0x0000000119b9ac58 shape_detection::TextDetectionImplMac::Detect(SkBitmap const&, base::OnceCallback<void (std::__1::vector<mojo::StructPtr<shape_detection::mojom::TextDetectionResult>, std::__1::allocator<mojo::StructPtr<shape_detection::mojom::TextDetectionResult> > >)>) + 6170746
4   org.qt-project.Qt.QtWebEngineCore	0x0000000119b9b59d shape_detection::TextDetectionImplMac::Detect(SkBitmap const&, base::OnceCallback<void (std::__1::vector<mojo::StructPtr<shape_detection::mojom::TextDetectionResult>, std::__1::allocator<mojo::StructPtr<shape_detection::mojom::TextDetectionResult> > >)>) + 6173119
5   org.qt-project.Qt.QtWebEngineCore	0x0000000119b9b1b4 shape_detection::TextDetectionImplMac::Detect(SkBitmap const&, base::OnceCallback<void (std::__1::vector<mojo::StructPtr<shape_detection::mojom::TextDetectionResult>, std::__1::allocator<mojo::StructPtr<shape_detection::mojom::TextDetectionResult> > >)>) + 6172118
6   org.qt-project.Qt.QtWebEngineCore	0x0000000119bee3f7 shape_detection::TextDetectionImplMac::Detect(SkBitmap const&, base::OnceCallback<void (std::__1::vector<mojo::StructPtr<shape_detection::mojom::TextDetectionResult>, std::__1::allocator<mojo::StructPtr<shape_detection::mojom::TextDetectionResult> > >)>) + 6512665
7   libsystem_pthread.dylib       	0x00007fff20388950 _pthread_start + 224
8   libsystem_pthread.dylib       	0x00007fff2038447b thread_start + 15
Comment 1 Maik Qualmann 2021-02-04 07:01:57 UTC
Thread 33 is not from digiKam, I suspect the QWebEngine is crashing. Can the behavior be reproduced when you start the Google Export or start the digiKam Handbook via the Help menu?

Maik
Comment 2 caulier.gilles 2021-02-04 07:06:30 UTC
Maik,

I can reproduce the crash with Import and Export from Google Photo on my MacBook pro 2015 and BigSur.

Gilles
Comment 3 caulier.gilles 2021-02-04 07:07:18 UTC
Google Drive plugin crash also...

Gilles
Comment 4 caulier.gilles 2021-02-04 07:08:07 UTC
Help/Online handbook start properly and show the documentation as expected...

Gilles
Comment 5 caulier.gilles 2021-02-04 07:09:43 UTC
Export to Flickr do not crash when i try to change my account. The web browser appear and run properly

Gilles
Comment 6 caulier.gilles 2021-02-04 07:12:12 UTC
OneDrive login work also properly.

Gilles
Comment 7 Maik Qualmann 2021-02-04 07:42:21 UTC
If Flickr works under MacOS, the cause is pretty sure when the O2Lib establishes the TCP/IP connection on port 8000 in order to receive the return token. We can also implement this for Google Tools, since Google will probably no longer allow insecure HTTP connections at some point, like Flickr. The code is a little bit prepared to receive the token in the internal browser. Since I would have to change the return address in our Google account, Google Tools would no longer work for older digiKam versions (6.x.x-7.x.x) to log in again.

Maik
Comment 8 johcha 2021-02-05 00:35:01 UTC
One other user journey where this crashes is trying to buy the Recipe's Books. 

Help -> Recipes Book... -> Launches internal browser which will crash when you try to authenticate with Google Play store. 

There is a button to launch the Desktop Browser.  Perhaps launching the Desktop Browser should be the default behavior when selecting the menu option
Comment 9 Maik Qualmann 2021-02-05 07:11:52 UTC
Git commit 61b9548db0ee73640efc96efee1a9abf00da768d by Maik Qualmann.
Committed on 05/02/2021 at 07:11.
Pushed by mqualmann into branch 'master'.

modify the user agent

M  +1    -1    core/libs/dialogs/webbrowserdlg.cpp

https://invent.kde.org/graphics/digikam/commit/61b9548db0ee73640efc96efee1a9abf00da768d
Comment 10 Maik Qualmann 2021-02-05 12:40:28 UTC
A little explanation of the current situation. Google has declared war on the embedded browser Framworks, in particular CEF. QWebEngine as an offshoot of Chromium is also affected by this. Unfortunately, there are developers who use embedded browsers to access user data or something similar. Therefore, because of security, Google is forced to prevent these browser frameworks. I think it's just a matter of time before we have to say goodbye to an embedded browser on Google.

Maik
Comment 11 Maik Qualmann 2021-02-07 11:53:12 UTC
Git commit c09d412d5ecdd23c18fae4176c026999e2b44451 by Maik Qualmann.
Committed on 07/02/2021 at 11:50.
Pushed by mqualmann into branch 'master'.

use the desktop browser to sign in to the Google service
Google no longer allows embedded browser frameworks
FIXED-IN: 7.2.0

M  +2    -1    NEWS
M  +3    -45   core/dplugins/generic/webservices/google/gstalkerbase.cpp
M  +0    -1    core/dplugins/generic/webservices/google/gstalkerbase.h

https://invent.kde.org/graphics/digikam/commit/c09d412d5ecdd23c18fae4176c026999e2b44451