2

Моя установка Mutt, кажется, работает хорошо во всех аспектах, за исключением того, что он зависает, если я оставляю его открытым слишком долго. Пока я продолжаю взаимодействовать с интерфейсом, он, кажется, остается в живых. Но если я начну писать письмо или просто позволю ему простаивать слишком долго, он зависнет. Ctrl+c не убивает его, поэтому мне просто нужно приостановить его с помощью Ctrl+z и убить его с помощью kill <pid> .

Вместо того, чтобы спрашивать о том, что может быть не так с моей установкой, я хотел бы знать, как будет устраняться такая проблема. (Хотя любые намеки будут очень полезны!) Поскольку экран Mutt заморожен, я понятия не имею, что происходит. Какой лучший способ отладить что-то подобное?

2 ответа2

0

Я прикрепил к замороженному процессу дурака с помощью 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.

0

mutt может быть запущен в режиме отладки. Это создаст файл отладки .muttdebug0 который может помочь при отладке.

Со страницы руководства mutt :

-d level
      If mutt was complied with +DEBUG log debugging output to ~/.muttdebug0.  
      Level can range from 1-5 and effects verbosity. 
      A value of 2 is recommended.

Другой подход - открыть два терминальных сеанса рядом. Запустите top или htop в одном. В другой запустите mutt . Когда проблема обнаружится, посмотрите, что отображается top . (Если top также зависает, проблема может быть больше, чем mutt .)

Вы также можете отредактировать свой пост, чтобы включить больше информации о вашей системе и о том, что она делает.

  1. Если mutt зависает в одно и то же время каждый день, выполняет ли другая работа что-то с I/O в это время?
  2. Если mutt всегда зависает через N минут после входа в систему, есть ли у вас какая-то другая задача, которая запускается при входе в систему и затем потребляет много ресурсов? (Многократный mutt в режиме отладки поможет определить шаблоны в файлах журналов.)
  3. У вас есть доступ к /var/log/messages или другим журналам, или sar?

Это может быть mutt , или замораживание mutt может быть симптомом чего-то еще.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .