#56 closed defect (fixed)
Files missing in snapshot.
Reported by: | chandlerc@… | Owned by: | cmlenz |
---|---|---|---|
Priority: | major | Milestone: | 0.5 |
Component: | Build master | Version: | dev |
Keywords: | Cc: | ||
Operating System: |
Description
To the best I can tell (which is difficult because i can't manually inspect it), there are several files missing in the snapshot. I have to manually add a step in the recipe to "touch" these files, and then they do appear, although as far as I can tell, still empty.
The files in particular that are missing: AUTHORS and Change Log?
Attachments (0)
Change History (4)
comment:1 Changed 19 years ago by cmlenz
comment:2 Changed 19 years ago by Chandler Carruth <chandlerc@…>
Ok... so for the record, the bug is not in the files being missing. But if bitten-master gets interrupted after only partially creating a revision's tarball, it leaves a partial tarball sitting in the directory. Upon restart, bitten-master sees the partial tarball, and assumes it has already built the partial tarball, sending it out to slaves. The result is that after extraction, the snapshot is "missing" some files.
The solution seems to me to ensure successful creation of the snapshot, or recreate it when bitten-master gets ready to send one to a slave. I propose this process in the construction of a tarball:
- If no existing tarball, go to 6
- If no existing MD5 hash for tarball, go to 6
- Create new MD5 hash for tarball, and compare to existing.
- If MD5 hashes do not match, go to 6
- Finish
- Create new tarball, overwriting any existing tarball.
- Test tarball for integrity.
- Create MD5 hash for tarball, overwriting any existing MD5 hash.
- Finish
I can see no way for this process to be interrupted such that a corrupted tarball is not detected. Even if the MD5 hash generation is interrupted half way through being written out to the disk, the resulting MD5 hash will not be a match for an MD5 hash generated the next time around.
Comments?
comment:3 Changed 19 years ago by cmlenz
- Component changed from General to Build master
- Milestone set to 0.5
- Status changed from new to assigned
Sounds good.
comment:4 Changed 19 years ago by cmlenz
- Resolution set to fixed
- Status changed from assigned to closed
Implemented in [248].
You should be able to manually inspect the snapshot archive(s) on the server side: they are stored in the projenv/snapshots directory.