It just happened to me that gpg crashed:
#0 0x00007f53f8a54b88 in _gcry_secmem_term () at secmem.c:707 [Error: secmem.c was not found in source tree] #1 0x00007f53f8a4f4a6 in _gcry_vcontrol (cmd=<optimized out>, arg_ptr=arg_ptr@entry=0x7ffc8ec64650) at global.c:397 [Error: global.c was not found in source tree] #2 0x00007f53f8a4bf99 in gcry_control (cmd=<optimized out>) at visibility.c:79 [Error: visibility.c was not found in source tree] #3 0x0000564693438eb6 in got_fatal_signal (sig=11) at signal.c:109 104: if (caught_fatal_sig) 105: raise (sig); 106: caught_fatal_sig = 1; 107: 108: if (cleanup_fnc) 109: cleanup_fnc (); 110: /* Better don't translate these messages. */ 111: (void)write (2, "\n", 1 ); 112: s = log_get_prefix (NULL); 113: if (s) 114: (void)write(2, s, strlen (s)); #4 <signal handler called> #5 0x00007f53f8a54b88 in _gcry_secmem_term () at secmem.c:707 [Error: secmem.c was not found in source tree] #6 0x00007f53f8a4f4a6 in _gcry_vcontrol (cmd=<optimized out>, arg_ptr=arg_ptr@entry=0x7ffc8ec64d90) at global.c:397 [Error: global.c was not found in source tree] #7 0x00007f53f8a4bf99 in gcry_control (cmd=<optimized out>) at visibility.c:79 [Error: visibility.c was not found in source tree] #8 0x0000564693438eb6 in got_fatal_signal (sig=15) at signal.c:109 104: if (caught_fatal_sig) 105: raise (sig); 106: caught_fatal_sig = 1; 107: 108: if (cleanup_fnc) 109: cleanup_fnc (); 110: /* Better don't translate these messages. */ 111: (void)write (2, "\n", 1 ); 112: s = log_get_prefix (NULL); 113: if (s) 114: (void)write(2, s, strlen (s)); #9 <signal handler called> #10 0x00007f53f810de87 in munmap () at ../sysdeps/unix/syscall-template.S:84 [Error: syscall-template.S was not found in source tree] #11 0x00007f53f8a54d4d in _gcry_secmem_term () at secmem.c:713 [Error: secmem.c was not found in source tree] #12 0x00007f53f8a4f4a6 in _gcry_vcontrol (cmd=<optimized out>, arg_ptr=arg_ptr@entry=0x7ffc8ec654d0) at global.c:397 [Error: global.c was not found in source tree] #13 0x00007f53f8a4bf99 in gcry_control (cmd=<optimized out>) at visibility.c:79 [Error: visibility.c was not found in source tree] #14 0x00005646933ad54e in emergency_cleanup () at gpg.c:4652 4647: 4648: /* Note: This function is used by signal handlers!. */ 4649: static void 4650: emergency_cleanup (void) 4651: { 4652: gcry_control (GCRYCTL_TERM_SECMEM ); 4653: } 4654: 4655: 4656: void 4657: g10_exit( int rc ) #15 g10_exit (rc=0) at gpg.c:4672 4667: gcry_control (GCRYCTL_DUMP_RANDOM_STATS); 4668: } 4669: if (opt.debug) 4670: gcry_control (GCRYCTL_DUMP_SECMEM_STATS ); 4671: 4672: emergency_cleanup (); 4673: 4674: rc = rc? rc : log_get_errorcount(0)? 2 : g10_errors_seen? 1 : 0; 4675: exit (rc); 4676: } 4677: #16 0x00005646933a9b24 in main (argc=0, argv=0x7ffc8ec65be8) at gpg.c:4643 4638: gpg_deinit_default_ctrl (ctrl); 4639: xfree (ctrl); 4640: release_armor_context (afx); 4641: FREE_STRLIST(remusr); 4642: FREE_STRLIST(locusr); 4643: g10_exit(0); 4644: return 8; /*NEVER REACHED*/ 4645: } 4646: 4647: 4648: /* Note: This function is used by signal handlers!. */
Turns out that Evolution is calling gpg2 and it sends SIGTERM when it feels like
aborting the operation:
https://git.gnome.org/browse/evolution-data-server/tree/src/camel/camel-gpg-context.c#n1279