[exim] exim_dbmbuild : Error -30977 while writing key

Top Page
Delete this message
Reply to this message
Author: Christian Gregoire
Date:  
To: exim users
Subject: [exim] exim_dbmbuild : Error -30977 while writing key
Hi,
 
I have several frontend servers, each one running an instance of Exim. Configuration is stored in files (the configure one of course, but also mailertable, relay_domains, ...) which are located on a distributed filesystem (Lustre).
 
From time to time, when running exim_dbmbuild, at least against the largest one (22500 lines, 570KB) given I only have error logs for this one, I get the following message:
 
    Error -30977 while writing key john@???: errno=2
 
The underlying Exim C code is :
 
  switch(rc = EXIM_DBPUTB(d, key, content))
    {
    case EXIM_DBPUTB_OK:
      [...]
    case EXIM_DBPUTB_DUP:
      [...]
    default:
    fprintf(stderr, "Error %d while writing key %s: errno=%d\n", rc,
      keybuffer, errno);
      [...]
    }
  }
 
with
 
#define EXIM_DBPUTB(db, key, data)  tdb_store(db, key, data, TDB_INSERT)
 
As far as I can see, it first writes to <my_conf_file>.dbmbuild_temp before renaming it to <my_conf_file>.db.
 
I can't really understand why errno #2 is triggered, it seems to apply to the temporary file.
 
Has anyone been in the same situation ? May the distributed filesystem be the reason ?
 
 
Christian