In my current maildir mailbox, I have some messages[*] with big Cc
(several hundreds of addresses). When I want to move to the page
of the index where these big messages appear, Mutt hangs for a few
seconds (taking CPU time) before displaying this page. The strace
contains something like:

[...]
16:53:19 stat("/home/vlefevre/Mail/Maildir/new", {st_mode=S_IFDIR|0700, 
st_size=61440, ...}) = 0
16:53:19 stat("/home/vlefevre/Mail/Maildir/cur", {st_mode=S_IFDIR|0700, 
st_size=237568, ...}) = 0
16:53:19 write(1, "\33[?25l", 6)        = 6
16:53:19 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:19 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:19 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:19 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:19 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:19 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:19 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:19 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:19 brk(0x55e7954a7000)            = 0x55e7954a7000
16:53:19 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:19 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:19 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:19 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:19 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:19 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:19 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:19 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:19 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:19 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:19 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:19 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:19 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:19 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:19 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:19 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:19 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:19 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:19 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:19 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:19 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:19 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:19 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:19 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:19 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:19 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:19 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:19 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:19 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:19 brk(0x55e7954c8000)            = 0x55e7954c8000
16:53:19 brk(0x55e7954e9000)            = 0x55e7954e9000
16:53:19 brk(0x55e79550a000)            = 0x55e79550a000
16:53:19 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:19 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:19 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:20 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:20 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:20 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:20 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:20 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:21 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:21 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:21 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:21 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:22 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:22 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:22 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:22 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:22 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:22 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:22 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:22 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:22 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2971, ...}) = 0
16:53:22 stat("/home/vlefevre/Mail/postponed", {st_mode=S_IFREG|0600, 
st_size=0, ...}) = 0
[...]

The hangs is due to this big Cc and the "subscribe" / "lists" commands
in my muttrc.

Is this hang expected or could the efficiency be improved?

This may be a corner case, but note also that spammers can send similar
messages.

[*] The cause here is:

  https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=776073;msg=20

(the Cc doesn't appear in this message, but another message has been
is generated by the Debian BTS as a consequence of this one).

-- 
Vincent Lefèvre <vinc...@vinc17.net> - Web: <https://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)

Reply via email to