Я прикрепил к замороженному процессу дурака с помощью GDB. Вот что я нашел:
(GDB) Bt
#0 0x00007f8327de76b0 in __read_nocancel () at ../sysdeps/unix/syscall-template.S:81 #1 0x00007f832899014b in ?? () from /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 #2 0x00007f832898e16b in BIO_read () from /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 #3 0x00007f8328cadb54 in ?? () from /lib/x86_64-linux-gnu/libssl.so.1.0.0 #4 0x00007f8328caed55 in ?? () from /lib/x86_64-linux-gnu/libssl.so.1.0.0 #5 0x00007f8328cac174 in ?? () from /lib/x86_64-linux-gnu/libssl.so.1.0.0 #6 0x0000000000484365 in ssl_socket_read (conn=<optimized out>, buf=<optimized out>, len=<optimized out>) at mutt_ssl.c:304 #7 0x0000000000485bb7 in mutt_sasl_conn_read (conn=0xa1d660, buf=0xa1d7f0 "+ idling\r\nDLE terminated (Success)\r\n38441 INTERNALDATE \"15-Oct-2017 12:27:13 +0000\" FLAGS () BODY[HEADER.FIELDS (DATE FROM SUBJECT TO CC MESSAGE-ID REFERENCES CONTENT-TYPE CONTENT-DESCRIPTION IN-REPLY"..., len=1024) at mutt_sasl.c:555 #8 0x00000000004836b9 in mutt_socket_readchar (conn=conn@entry=0xa1d660, c=c@entry=0x7ffc9ee890cf "") at mutt_socket.c:172 #9 0x00000000004837d2 in mutt_socket_readln_d (buf=0xa266a0 "+ idling", buflen=512, conn=0xa1d660, dbg=dbg@entry=2) at mutt_socket.c:202 #10 0x0000000000490328 in imap_cmd_step (idata=idata@entry=0x9fe990) at command.c:112 #11 0x0000000000491188 in imap_exec (idata=0x9fe990, cmdstr=cmdstr@entry=0x0, flags=flags@entry=1) at command.c:244 #12 0x00000000004912fc in cmd_queue (cmdstr=0x4b3de5 "IDLE", idata=0x9fe990) at command.c:377 #13 cmd_start (idata=0x9fe990, cmdstr=0x4b3de5 "IDLE", flags=0) at command.c:402 #14 0x0000000000491370 in imap_cmd_start (cmdstr=0x4b3de5 "IDLE", idata=idata@entry=0x9fe990) at command.c:76 #15 imap_cmd_idle (idata=idata@entry=0x9fe990) at command.c:313 #16 0x0000000000493328 in imap_check_mailbox (ctx=ctx@entry=0xa37ba0, index_hint=index_hint@entry=0x7ffc9ee89214, force=force@entry=0) at imap.c:1401 #17 0x0000000000442d2a in mx_check_mailbox (ctx=0xa37ba0, index_hint=index_hint@entry=0x7ffc9ee89214, lock=<optimized out>, lock@entry=0) at mx.c:1336 #18 0x000000000041e1b8 in mutt_index_menu () at curs_main.c:555 #19 0x000000000040833c in main (argc=1, argv=<optimized out>) at main.c:1061
Это ожидало бесконечно на блокирующем чтении. Чтобы исправить это, следует либо выполнить чтение с тайм-аутом, либо сделать вызов отменяемым, чтобы он прерывался при получении сигнала, такого как SIGINT.