Earl & Steve,
Extremely efficient and thoughtful responses both. You hit the
problem on the nose immediately. Excellent work.
The database was originally generated from my user account and
mhonarc runs as daemon, thus the write issue. I'm not keeping
a log of the mhonarc runs, figuring everything was working and
static, but perhaps I should.
Earl Hood writes:
It appears that your .mhonarc.db file is not getting updated. The
highest message number in the db is 889. All message past 889 are
not be recorded in the db which causes the behavior you are getting.
I would guess that mhonarc is failing to write the .mhonarc.db file
when you are adding messages. You did not state how mhonarc is
being invoked, but a warning message should be generated if mhonarc
is unable to write the db. You may want to check the timestamp and
permissions on .mhonarc.db to see if things look okay. The
timestamp should be the same time as the newest written files in the
Steve Pacenka writes:
To supplement Earl's suggestion about timestamps, the code suggests
that there should be a definite order of timestamps on messages,
indices, and .mhonarc.db.
1. messages are written to disk.
2. then two indices are written to disk.
3. then .mhonarc.db is written to disk. (step omitted if only
regenerating indexes with no new messages)
I'd interpret this as follows:
a. If some message files are newer than the indices, then the index
b. If an index file is newer than .mhonarc.db, then .mhonarc.db
Further, since the messages and indices are based on .mhonarc.db's
data as updated in memory, the first failure to write .mhonarc.db
will have its effect on the next launch of mhonarc.
Joseph R. Kiniry A1 F9 C5 8C B3 43 54 20 FA 20 63 80 53 C3 6D 85
California Institute of Technology ID 78860581 ICQ 4344804