APPCRASH with libKF5ConfigWidgets.dll
Open, NormalPublic

Description

Using Gpg4win 3.1.13 and Gpg4win 3.1.12 on Windows 10 19041.450.

After exiting kleopatra, you will see a record of stopped working in the "Reliability History".

Extract the "libKF5ConfigWidgets.dll" from the Gpg4win 3.1.11 installation file and overwrite the file with the same name, then the stopped working log will not appear.


kleopatra.exe

摘要
已停止工作

日期
‎2020/‎09/‎07, ‎周一 11:00

状态
已发送报告

描述
错误的应用程序路径: C:\Program Files (x86)\Gpg4win\bin\kleopatra.exe

问题签名
问题事件名称: APPCRASH
应用程序名: kleopatra.exe
应用程序版本: 3.1.12.0
应用程序时间戳: 00000000
故障模块名称: libKF5ConfigWidgets.dll
故障模块版本: 0.0.0.0
故障模块时间戳: 00000000
异常代码: c0000005
异常偏移: 0002b6c0
OS 版本: 10.0.19041.2.0.0.256.161
区域设置 ID: 2052
其他信息 1: 2beb
其他信息 2: 2beba6fb4680d73a8c78ca7c24ccdb46
其他信息 3: 146e
其他信息 4: 146e76a22a53215b6219e5ad140768df

关于该问题的额外信息
存储段 ID: 4344e3eb37567d3f641e8dddaed3606f (1449752113320255599)

Details

Version
Gpg4win 3.1.13 and Gpg4win 3.1.12

Related Objects

andfox created this task.Sep 7 2020, 5:44 AM
aheinecke triaged this task as Normal priority.Sep 8 2020, 10:47 AM
aheinecke added a subscriber: aheinecke.

Hello,

thanks for the report. Between Gpg4win-3.1.12 and Gpg4win-3.1.11 KF5ConfigWidgets was indeed updated so your report might point to a regression in that library.

Could you please try to run Kleopatra with DbgView enabled and share the output here?
https://docs.microsoft.com/en-us/sysinternals/downloads/debugview

DebugView is an official Microsoft tool that shows debug output from Software. Maybe the debug output will show a warning or an assertion that points us in the direction where the error might be.

Thanks! Danre

andfox added a comment.Sep 9 2020, 4:10 AM

I have run the DbgView test twice, I don't know if there is the data you need.

gniibe added a subscriber: gniibe.Nov 9 2020, 2:57 AM

The "Reliability History" says (in Chinese):

异常代码: c0000005
异常偏移: 0002b6c0

The error code c0000005 is something like SEGV on POSIX, I guess.
It occurred at the address 0002b6c0.

I disassembled libKF5ConfigWidgets.dll, the part is:

6b22b6b8:	90                   	nop
6b22b6b9:	90                   	nop
6b22b6ba:	90                   	nop
6b22b6bb:	90                   	nop
6b22b6bc:	90                   	nop
6b22b6bd:	90                   	nop
6b22b6be:	90                   	nop
6b22b6bf:	90                   	nop
6b22b6c0:	8b 01                	mov    (%ecx),%eax
6b22b6c2:	85 c0                	test   %eax,%eax
6b22b6c4:	74 1a                	je     0x6b22b6e0
6b22b6c6:	f0 83 68 08 01       	lock subl $0x1,0x8(%eax)
6b22b6cb:	75 13                	jne    0x6b22b6e0
6b22b6cd:	8b 09                	mov    (%ecx),%ecx
6b22b6cf:	85 c9                	test   %ecx,%ecx
6b22b6d1:	74 0d                	je     0x6b22b6e0
6b22b6d3:	8b 01                	mov    (%ecx),%eax
6b22b6d5:	ff 60 04             	jmp    *0x4(%eax)
6b22b6d8:	8d b4 26 00 00 00 00 	lea    0x0(%esi,%eiz,1),%esi
6b22b6df:	90                   	nop
6b22b6e0:	c3                   	ret    
6b22b6e1:	90                   	nop

It seems de-reference of null pointer in an atomic decrement operation. Possibly, qAtomicDetach or qAtomicAssign.

Version 3.1.14 released 2020-11-25
Kleopatra / GnuPG: Unicode home directories are now supported. (T5055)

Problems persist after update to 3.1.14


IIUC, the error occurred when Kleo is exiting and a destructor (in libKF5ConfigWidgets) is called with null pointer.

Looking for the changes between 5.55 .. 5.72, I suspect this one:
https://invent.kde.org/frameworks/kconfigwidgets/-/commit/c0cc6b8a200aa54099b9efc8eb7ac782b400fd93

Possibly, it is related to:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80816

gniibe added a comment.EditedNov 26 2020, 6:15 AM

On Debian, please see: /usr/share/doc/g++-mingw-w64-i686-win32/README.Debian

IIUC, the use of thread_local in kcolorscheme.cpp is not supported by current MinGW-w64 for Windows threading model.