Page MenuHome GnuPG

GpgOL: not selected signed mail with very long subject causes high CPU load
Open, HighPublic

Description

This is a regression, it does not occur with VSD 3.3.2 (gpgol 2.6.0).

While testing around T7722: GpgOL: Temp filename creation fails to choose proper extension I noticed that starting outlook and not selecting any mail caused the CPU load to be high (at least >30%) for as long as I did not select any mail. Or deactivate GpgOL.
In the process explorer appear repeated new gpgme-w32spawn.exe and gpg.exe processes.

Necessary to trigger this was a certain OpenPGP signed test mail with a very long subject (> 256 characters) at the "top" of the mail folder. Selecting it stopped the spawning and the load.
Deleting it stopped issues with the inbox folder, the same issue now occurred when switching to the "Deleted folder".

Gpgol.log (+call tracing) is in the shared folder, Markus.

If I had clicked on the mail with the very long subject, GpgOL asks on closing if changes to the message should be saved. No idea what changes Outlook means, it have to be automatic ones, I did not change it.

Details

Version
VS-Desktop-3.3.90.8-Beta and gpd-5.0-Beta357

Revisions and Commits

Event Timeline

ebo triaged this task as High priority.Aug 8 2025, 4:26 PM
ebo created this task.
mmontkowski mentioned this in Unknown Object (Maniphest Task).Aug 11 2025, 8:59 AM

The culprit seems to be commit rO6cb4ccf4d8db03e9922984d9c5f5bf7f8806954d but a brief inspection does not show any problematic code. Thus this might be due to an Outlook peculiarity.

Andre mentioned in 10721b1dccf4 that "Closing the mail this early might also have contributed to
endless loops of read + close" which is what we see here as well

ebo moved this task from Backlog to WiP on the vsd33 board.EditedWed, Sep 10, 5:04 PM

Tested with VS-Desktop-3.3.90.8-Beta and the test gpgol.dll from 2025-09-10 and the same test mail from the original report:
The spawning cycle does not occur any more. (Tested with Outlook setting "show as text only" and without.)