Bug 194662

Summary: mail/mutt 1.5.23 consistently freezes
Product: Ports & Packages Reporter: Dmitry Chagin <dchagin>
Component: Individual Port(s)Assignee: freebsd-ports-bugs (Nobody) <ports-bugs>
Status: Closed FIXED    
Severity: Affects Only Me CC: Udo.Schweigert, thierry
Priority: --- Flags: dchagin: maintainer-feedback? (Udo.Schweigert)
Version: Latest   
Hardware: Any   
OS: Any   
See Also: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=195076

Description Dmitry Chagin freebsd_committer freebsd_triage 2014-10-28 16:34:57 UTC
root@dchagin:~ # pkg info | grep mutt
mutt-1.5.23_5                  The Mongrel of Mail User Agents (development version)
root@dchagin:~ #

ktrace of mutt startup (frequent attempts to open a nonexistent file):

  7476 100106 mutt     0.000030 RET   close 0
  7476 100106 mutt     0.000031 CALL  open(0x7fffffff8160,0x100000<O_CLOEXEC>,<unused>0x3)
  7476 100106 mutt     0.000025 NAMI  "/usr/share/i18n/csmapper/charset.alias.db"
  7476 100106 mutt     0.000063 RET   open -1 errno 2 No such file or directory
  7476 100106 mutt     0.000021 CALL  open(0x801ebf1e9,0x100000<O_CLOEXEC>,<unused>0xffffff01)
  7476 100106 mutt     0.000021 NAMI  "/usr/share/i18n/csmapper/charset.alias"
  7476 100106 mutt     0.000058 RET   open -1 errno 2 No such file or directory
  7476 100106 mutt     0.000023 CALL  open(0x7fffffff8160,0x100000<O_CLOEXEC>,<unused>0x3)
  7476 100106 mutt     0.000023 NAMI  "/usr/share/i18n/csmapper/charset.alias.db"
  7476 100106 mutt     0.000057 RET   open -1 errno 2 No such file or directory
  7476 100106 mutt     0.000019 CALL  open(0x801ebf1e9,0x100000<O_CLOEXEC>,<unused>0xffffff01)
  7476 100106 mutt     0.000023 NAMI  "/usr/share/i18n/csmapper/charset.alias"
  7476 100106 mutt     0.000057 RET   open -1 errno 2 No such file or directory
  7476 100106 mutt     0.000109 CALL  open(0x7fffffffa350,0x100000<O_CLOEXEC>,<unused>0x3)
  7476 100106 mutt     0.000030 NAMI  "H<AA><FF><FF><FF>^?.db"
  7476 100106 mutt     0.000030 RET   open -1 errno 2 No such file or directory
  7476 100106 mutt     0.000019 CALL  open(0x7fffffffa7f0,0x100000<O_CLOEXEC>,<unused>0xffffff01)
  7476 100106 mutt     0.000022 NAMI  "H<AA><FF><FF><FF>^?"
  7476 100106 mutt     0.000026 RET   open -1 errno 2 No such file or directory
  7476 100106 mutt     0.000023 CALL  open(0x7fffffffa350,0x100000<O_CLOEXEC>,<unused>0x3)
  7476 100106 mutt     0.000022 NAMI  "H<AA><FF><FF><FF>^?.db"
  7476 100106 mutt     0.000027 RET   open -1 errno 2 No such file or directory

...............

  7476 100106 mutt     0.000008 RET   open -1 errno 2 No such file or directory
  7476 100106 mutt     0.000006 CALL  open(0x7fffffff84b0,0x100000<O_CLOEXEC>,<unused>0xffffff01)
  7476 100106 mutt     0.000007 RET   open -1 errno 2 No such file or directory
  7476 100106 mutt     0.000006 CALL  open(0x7fffffff8010,0x100000<O_CLOEXEC>,<unused>0x3)
  7476 100106 mutt     0.000007 NAMI  ".db"
  7476 100106 mutt     0.000007 RET   open -1 errno 2 No such file or directory
  7476 100106 mutt     0.000006 CALL  open(0x7fffffff84b0,0x100000<O_CLOEXEC>,<unused>0xffffff01)
  7476 100106 mutt     0.000007 RET   open -1 errno 2 No such file or directory
  7476 100106 mutt     0.000016 CALL  open(0x7fffffff8010,0x100000<O_CLOEXEC>,<unused>0x3)
  7476 100106 mutt     0.000007 NAMI  ".db"
  7476 100106 mutt     0.000008 RET   open -1 errno 2 No such file or directory
  7476 100106 mutt     0.000006 CALL  open(0x7fffffff84b0,0x100000<O_CLOEXEC>,<unused>0xffffff01)
  7476 100106 mutt     0.000007 RET   open -1 errno 2 No such file or directory
  7476 100106 mutt     0.000006 CALL  open(0x7fffffff8010,0x100000<O_CLOEXEC>,<unused>0x3)
  7476 100106 mutt     0.000006 NAMI  ".db"
  7476 100106 mutt     0.000008 RET   open -1 errno 2 No such file or directory
  7476 100106 mutt     0.000005 CALL  open(0x7fffffff84b0,0x100000<O_CLOEXEC>,<unused>0xffffff01)
  7476 100106 mutt     0.000007 RET   open -1 errno 2 No such file or directory
  7476 100106 mutt     0.000176 CALL  read(0x3,0x802953000,0x8000)
  7476 100106 mutt     0.000021 GIO   fd 3 read 4096 bytes
       "d: from mx2.freebsd.org (mx2.freebsd.org [69.147.83.53]) by
         mx."
  7476 100106 mutt     0.000009 RET   read 32768/0x8000

so often that the cooler spins at the maximum speed :)
Comment 1 Bugzilla Automation freebsd_committer freebsd_triage 2014-10-28 16:34:57 UTC
Maintainer CC'd
Comment 2 Udo.Schweigert 2014-10-28 17:47:39 UTC
Not reproducable here. Could you provide the FreeBSD version and the .muttrc?

Udo (maintainer)
Comment 3 Dmitry Chagin freebsd_committer freebsd_triage 2014-10-28 18:24:58 UTC
ouch, sure:
FreeBSD dchagin.static.corbina.net 11.0-CURRENT FreeBSD 11.0-CURRENT #93 r273708+3ca71ce(lemul)-dirty: Sun Oct 26 23:38:47 MSK 2014     root@dchagin.static.corbina.net:/home/rootobj/home/dchagin/head/sys/YOY  amd64

.muttrc:
#
set folder = "~/.mail"
set record = "~/.mail/sent-mail"
set delete=yes
set fast_reply=yes
set reply_to=yes
set markers=no
set mark_old=no
set pager_stop=yes

set confirmappend=no
set include=yes
set editor="vim"

mailboxes =inbox
mailboxes =FreeBSD-arch
mailboxes =FreeBSD-acpi
mailboxes =FreeBSD-hackers
mailboxes =FreeBSD-current
mailboxes =FreeBSD-drivers
mailboxes =FreeBSD-bugs
mailboxes =FreeBSD-stable
mailboxes =FreeBSD-amd64
mailboxes =FreeBSD-i386
mailboxes =FreeBSD-fs
mailboxes =FreeBSD-x11
mailboxes =FreeBSD-net
mailboxes =FreeBSD-smp
mailboxes =FreeBSD-emulation
mailboxes =FreeBSD-announce
mailboxes =FreeBSD-threads
mailboxes =FreeBSD-cvs-src
mailboxes =FreeBSD-svn-src-all
mailboxes =FreeBSD-src-committers
mailboxes =FreeBSD-ru-committers
mailboxes =FreeBSD-all-developers
mailboxes =FreeBSD-wireless
mailboxes =FreeBSD-usb
mailboxes =FreeBSD-toolchain
mailboxes =sent-mail
mailboxes =linux-kernel
mailboxes =glibc

set sort=threads
set realname="Chagin Dmitry"

ignore *
unignore        from: subject to cc date hdr_order

set send_charset="us-ascii:koi8-r:utf-8"

macro index P "!grab_mail"
macro pager P "!grab_mail"


# Binding
bind pager <backspace> previous-page
bind pager - previous-line
bind pager \eOm previous-line
bind pager + next-line
bind pager \eOk next-line
bind pager \eOM next-line
bind pager \e[1~ top
bind pager \e[4~ bottom
bind pager <up> previous-line
bind pager <down> next-line

bind index <backspace> previous-entry
bind index - previous-entry
bind index \eOm previous-entry
bind index + next-entry
bind index \eOk next-entry
bind index \eOM display-message
bind index \e[H first-entry
bind index \e[F last-entry
bind index \e[1~ first-entry
bind index \e[4~ last-entry

bind alias <space> select-entry
bind alias x exit
bind attach x exit
bind browser x exit

# What order to show them
unhdr_order *
hdr_order Date: From: To: Reply-To: Cc: Subject:

# On to the colors
color attachment white default
color header green default "^message-id:"
color header green default "^x-mailer:"
color header green default "^user-agent:"
color header blue default "^date: "
color header brightblue default "^from: "
color header green default "^subject: "
color header brightblue default "^to: "
color header brightblue default "^cc: "
color header brightblue default "^reply-to: "
color index green default ~F
color index red default ~D
color index blue default ~T
color index brightblue default ~N
color indicator brightwhite blue
color markers red default
color quoted magenta default
color signature brightblue default
color status brightwhite green
color tilde cyan default
color tree blue default
color body black default "(^| )_[-a-z0-9_]+_[,.?]?[ \n]"

set folder_format="%3C %F %N %12s %u %t %d %f"
set index_format="%4C %Z %{%b %d} %-15.15F (%4l) %s"


# decode application/pgp
set pgp_decode_command="/usr/local/bin/gpg --charset utf-8 %?p?--passphrase-fd 0? --no-verbose --quiet --batch --output - %f"

# verify a pgp/mime signature
set pgp_verify_command="/usr/local/bin/gpg --no-verbose --quiet --batch --output - --verify %s %f"

# decrypt a pgp/mime attachment
set pgp_decrypt_command="/usr/local/bin/gpg --passphrase-fd 0 --no-verbose --quiet --batch --output - %f"

# create a pgp/mime signed attachment
# set pgp_sign_command="/usr/local/bin/gpg-2comp --comment '' --no-verbose --batch --output - --passphrase-fd 0 --armor --detach-sign --textmode %?a?-u %a? %f"
set pgp_sign_command="/usr/local/bin/gpg --no-verbose --batch --quiet --output - --passphrase-fd 0 --armor --detach-sign --textmode %?a?-u %a? %f"


# create a application/pgp signed (old-style) message
# set pgp_clearsign_command="/usr/local/bin/gpg-2comp --comment '' --no-verbose --batch --output - --passphrase-fd 0 --armor --textmode --clearsign %?a?-u %a? %f"
set pgp_clearsign_command="/usr/local/bin/gpg --charset utf-8 --no-verbose --batch --quiet --output - --passphrase-fd 0 --armor --textmode --clearsign %?a?-u %a? %f"

# create a pgp/mime encrypted attachment
# set pgp_encrypt_only_command="pgpewrap gpg-2comp -v --batch --output - --encrypt --textmode --armor --always-trust -- -r %r -- %f"
set pgp_encrypt_only_command="pgpewrap /usr/local/bin/gpg --charset utf-8 --batch --quiet --no-verbose --output - --encrypt --textmode --armor --always-trust -- -r %r -- %f"

# import a key into the public key ring
set pgp_import_command="/usr/local/bin/gpg --no-verbose --import -v %f"

# export a key from the public key ring
set pgp_export_command="/usr/local/bin/gpg --no-verbose --export --armor %r"

# verify a key
set pgp_verify_key_command="/usr/local/bin/gpg --verbose --batch --fingerprint --check-sigs %r"

# read in the public key ring
set pgp_list_pubring_command="/usr/local/bin/gpg --no-verbose --batch --quiet --with-colons --list-keys %r"


# read in the secret key ring
set pgp_list_secring_command="/usr/local/bin/gpg --no-verbose --batch --quiet --with-colons --list-secret-keys %r"

set pgp_good_sign="^gpg: Good signature from"

set pgp_autosign=yes
Comment 4 John Marino freebsd_committer freebsd_triage 2014-11-14 10:37:43 UTC
Udo, what's the verdict?
Comment 5 Udo.Schweigert 2014-11-14 12:37:29 UTC
It is not reprosucable on 9.x and 10.x, but i will check on a recent 11.0 over the weekend (i have no working 11.x system in place and will set up a VM for this).


At the moment I would say this is an issue due to local problems/setup.

Udo
Comment 6 Thierry Thomas freebsd_committer freebsd_triage 2014-11-15 14:51:35 UTC
I'm running mutt, usually built from ports with some options, and everything is fine.

But after accidentally letting pkg upgrade it from packages, it was not really freezing, but terribly slow and unusable. Rebuilding it from ports solved the problem.

FYI, my options are listed hereunder, but I have not tested every combination to find the culprit:

$ make showconfig
===> The following configuration options are available for mutt-1.5.23_5:
     COMPRESSED_FOLDERS=on: Compressed folders
     DEBUG=off: Debugging capabilities
     DOCS=on: Build and/or install documentation
     EXAMPLES=on: Build and/or install examples
     FLOCK=off: flock() usage
     GPGME=off: Gpgme interface
     GREETING_PATCH=off: Greeting support
     GSSAPI=off: Use the gss API
     HTML=on: HTML documentation
     ICONV=on: Encoding conversion support via iconv
     IDN=off: International Domain Names support
     IFDEF_PATCH=off: ifdef feature
     IMAP_HEADER_CACHE=off: IMAP header cache
     LOCALES_FIX=on: Locales fix
     MAILBOX_MANPAGES=on: Install mbox.5/mmdf.5 manpages
     MAILDIR_HEADER_CACHE=off: Maildir header cache
     MAILDIR_MTIME_PATCH=off: Maildir mtime patch
     NLS=on: Native language support
     NNTP=off: NNTP (News) support
     PARENT_CHILD_MATCH_PATCH=off: Parent/child match
     QUOTE_PATCH=on: Extended quoting
     REVERSE_REPLY_PATCH=off: Reverse_reply
     SASL=off: SASL authentication
     SIDEBAR_PATCH=off: Sidebar support
     SIGNATURE_MENU=off: Signature menu
     SMART_DATE=off: Dynamic date formatting with "%@"
     SMIME_OUTLOOK_COMPAT=on: SMIME outlook compatibility
     SMTP=off: SMTP relay support
     TOKYOCABINET=off: Use tokyocabinet instead of Berkley DB
     TRASH_PATCH=off: Trash folder support
     XML=on: Use XML tools for rebuilding documentation
====> Options available for the single SCREEN: you have to select exactly one of them
     NCURSES=off: Ncurses support
     SLANG=on: SLANG support
====> Options available for the radio SPELL: you can only select none or one of them
     ASPELL=on: Spell checking support via GNU Aspell
     ISPELL=off: Spell checking support via Ispell
Comment 7 Dmitry Chagin freebsd_committer freebsd_triage 2014-11-16 15:19:48 UTC
I have determined that the problem is due to the SIDEBAR_PATCH option. Without  SIDEBAR_PATCH option mutt works as expected.
Comment 8 Udo.Schweigert 2014-11-16 18:55:42 UTC
I submitted an update which should resolve the issue (PR 195076). Thus this one here could be closed.

Udo
Comment 9 Thierry Thomas freebsd_committer freebsd_triage 2014-11-16 19:48:34 UTC
Closed at maintainer's request: should be resolved by PR ports/195076.