[neomutt-devel] Header Cache invalidation

Elimar Riesebieter riesebie at lxtec.de
Fri Sep 8 11:17:59 CEST 2017


* Richard Russon <rich at flatcap.org> [2017-09-07 22:37 +0000]:

> Elimar wrote on the user mailing list:
> > Running 2017-09-07 I have to rebuild hcache
> > I had to rebuild hcache in ... almost every new version
> 
> You're right and unfortunately there's not much we can do about it.
> 
> We've been making a lot of structural changes to the code.  These should
> make it easier to maintain and test.
> 
> The header cache works like this (we think :-)
> 
> The email's header is parsed and lots of objects are created, which store
> the details:
> 
> * struct Address
> * struct Parameter
> * struct Body
> * struct Envelope
> * struct Header
> 
> It's these objects which are stored in the database (they are serialised).
> If any of the objects are changed, then the database values can't be used.
> 
> Clearly, we need to make sure that the structs we used to save the values to
> the database are identical to those we read into.  Mutt's build calculated
> the md5sum of the relevant header files.  This is done by hcache/hcachever.sh
> 
> If this checksum changes, then the existing header cache is invalid.
> 
> We would like to replace this caching with something more reliable, but that
> would mean someone has to, first, understand it fully.

Many thanks for your efforts. It is not a big task to rebuild the
hcache. It takes about 10 minutes per each machine. But I think it
is a big task to rewrite the code. And hey, the neomutt dev's are
doing a great job ;-)

Elimar
-- 
  Alles, was viel bedacht wird, wird bedenklich!;-)
         Friedrich Nietzsche


More information about the neomutt-devel mailing list