diff options
| author | Matthew Sackman <matthew@rabbitmq.com> | 2010-10-26 14:08:37 +0100 |
|---|---|---|
| committer | Matthew Sackman <matthew@rabbitmq.com> | 2010-10-26 14:08:37 +0100 |
| commit | 194606150b3907587a5489737440ca41d1f2d06b (patch) | |
| tree | 1842110bf1985e63472d0251206db269a083b5f9 /scripts/rabbitmq-multi | |
| parent | 53f291c541b355e40a8bec86724b6523ad629eb6 (diff) | |
| download | rabbitmq-server-git-194606150b3907587a5489737440ca41d1f2d06b.tar.gz | |
If Terms differs from Terms1, then it'll be because there was an issue in recovering the msg_store client refs from Terms. Now given that the terms are stored in the clean_file_name, there's a possibility that we crashed _during_ writing the clean_file_name (e.g. ran out of disk space). Thus we could then read in a corrupted terms file, set Terms1 to [], but still think we terminated cleanly (as we could delete the file). However, in that case, qi:recover/1 will detect the error when reading the terms file and will not try and present those terms as client_refs to the msg_store on startup. At which point, the msg_store will record dirty shutdown in its state, and then qi:recover/4, at which point the qi will do a dirty recovery. Thus in conclusion, the structure of the term file essentially forms its own checksum: if it's parsable then the data in it is trustable. Consequently, it doesn't actually matter if we pass in Terms or Terms1 here, but Terms1 is more intuitively correct
Diffstat (limited to 'scripts/rabbitmq-multi')
0 files changed, 0 insertions, 0 deletions
