On file access LDBStore's tryAccessIdx() function created a faulty GC Index Data entry, because not indexing the ikey correctly. That caused the chunk addresses/hashes to start with '00' and the last two digits were dropped. => Incorrect chunk address. Besides the fix, the commit also contains a schema change which will run the CleanGCIndex() function to clean the GC index from erroneous entries. Note: CleanGCIndex() rebuilds the index from scratch which can take a really-really long time with a huge DB (possibly an hour).
		
			
				
	
	
		
			18 lines
		
	
	
		
			665 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			18 lines
		
	
	
		
			665 B
		
	
	
	
		
			Go
		
	
	
	
	
	
package storage
 | 
						|
 | 
						|
// The DB schema we want to use. The actual/current DB schema might differ
 | 
						|
// until migrations are run.
 | 
						|
const CurrentDbSchema = DbSchemaHalloween
 | 
						|
 | 
						|
// There was a time when we had no schema at all.
 | 
						|
const DbSchemaNone = ""
 | 
						|
 | 
						|
// "purity" is the first formal schema of LevelDB we release together with Swarm 0.3.5
 | 
						|
const DbSchemaPurity = "purity"
 | 
						|
 | 
						|
// "halloween" is here because we had a screw in the garbage collector index.
 | 
						|
// Because of that we had to rebuild the GC index to get rid of erroneous
 | 
						|
// entries and that takes a long time. This schema is used for bookkeeping,
 | 
						|
// so rebuild index will run just once.
 | 
						|
const DbSchemaHalloween = "halloween"
 |