Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 10 of 29 for bitrot (0.03 sec)

  1. cmd/bitrot.go

    		} else {
    			errs[i] = nil
    		}
    	}
    	return errs
    }
    
    // Returns hash sum for whole-bitrot, nil for streaming-bitrot.
    func bitrotWriterSum(w io.Writer) []byte {
    	if bw, ok := w.(*wholeBitrotWriter); ok {
    		return bw.Sum(nil)
    	}
    	return nil
    }
    
    // Returns the size of the file with bitrot protection
    func bitrotShardFileSize(size int64, shardSize int64, algo BitrotAlgorithm) int64 {
    Registered: Sun Dec 28 19:28:13 UTC 2025
    - Last Modified: Sun Sep 28 20:59:21 UTC 2025
    - 7.7K bytes
    - Viewed (0)
  2. cmd/bitrot-streaming.go

    }
    
    func (b *streamingBitrotWriter) Write(p []byte) (int, error) {
    	if len(p) == 0 {
    		return 0, nil
    	}
    	if b.finished {
    		return 0, errors.New("bitrot write not allowed")
    	}
    	if int64(len(p)) > b.shardSize {
    		return 0, errors.New("unexpected bitrot buffer size")
    	}
    	if int64(len(p)) < b.shardSize {
    		b.finished = true
    	}
    	b.h.Reset()
    	b.h.Write(p)
    	hashBytes := b.h.Sum(nil)
    Registered: Sun Dec 28 19:28:13 UTC 2025
    - Last Modified: Fri Jan 17 19:19:30 UTC 2025
    - 6.2K bytes
    - Viewed (0)
  3. cmd/xl-storage_test.go

    		}
    	}
    }
    
    // Test xlStorage.VerifyFile()
    func TestXLStorageVerifyFile(t *testing.T) {
    	// We test 4 cases:
    	// 1) Whole-file bitrot check on proper file
    	// 2) Whole-file bitrot check on corrupted file
    	// 3) Streaming bitrot check on proper file
    	// 4) Streaming bitrot check on corrupted file
    
    	// create xlStorage test setup
    	storage, path, err := newXLStorageTestSetup(t)
    	if err != nil {
    Registered: Sun Dec 28 19:28:13 UTC 2025
    - Last Modified: Fri Aug 29 02:39:48 UTC 2025
    - 66K bytes
    - Viewed (0)
  4. docs/config/README.md

    
    ```
    ~ mc admin config set alias/ heal
    KEY:
    heal  manage object healing frequency and bitrot verification checks
    
    ARGS:
    bitrotscan     (on|off)    perform bitrot scan on drives when checking objects during scanner
    max_sleep      (duration)  maximum sleep duration between objects to slow down heal operation. eg. 2s
    Registered: Sun Dec 28 19:28:13 UTC 2025
    - Last Modified: Tue Aug 12 18:20:36 UTC 2025
    - 18.1K bytes
    - Viewed (1)
  5. docs/debugging/xl-meta/main.go

    			}
    		}
    	}
    	fmt.Println("Reconstructed", reconstructed, "bytes and verified", verified, "bytes of partial shard with config", string(shardConfig))
    }
    
    // bitrot returns a shard beginning at startOffset after doing bitrot checks.
    func bitrot(val []byte, startOffset, shardSize int) ([]byte, error) {
    	var res []byte
    	for len(val) >= 32 {
    		want := val[:32]
    		data := val[32:]
    		if len(data) > shardSize {
    Registered: Sun Dec 28 19:28:13 UTC 2025
    - Last Modified: Sun Sep 28 20:59:21 UTC 2025
    - 40.4K bytes
    - Viewed (0)
  6. cmd/erasure-healing-common_test.go

    					f, err := os.OpenFile(filePath, os.O_WRONLY|os.O_SYNC, 0)
    					if err != nil {
    						t.Fatalf("Failed to open %s: %s\n", filePath, err)
    					}
    					f.WriteString("oops") // Will cause bitrot error
    					f.Close()
    					break
    				}
    			}
    
    			rQuorum := len(errs) - z.serverPools[0].sets[0].defaultParityCount
    			onlineDisks, modTime, _ := listOnlineDisks(erasureDisks, partsMetadata, test.errs, rQuorum)
    Registered: Sun Dec 28 19:28:13 UTC 2025
    - Last Modified: Fri Aug 29 02:39:48 UTC 2025
    - 22.4K bytes
    - Viewed (0)
  7. cmd/erasure-heal_test.go

    			for i := range staleWriters {
    				if staleWriters[i] == nil {
    					continue
    				}
    				if !bytes.Equal(bitrotWriterSum(staleWriters[i]), bitrotWriterSum(writers[i])) {
    					t.Errorf("Test %d: heal returned different bitrot checksums", i)
    				}
    			}
    		}
    	}
    Registered: Sun Dec 28 19:28:13 UTC 2025
    - Last Modified: Fri Aug 29 02:39:48 UTC 2025
    - 7.9K bytes
    - Viewed (0)
  8. cmd/storage-rest-server.go

    	if c.done != nil {
    		xioutil.SafeClose(c.done)
    		c.done = nil
    	}
    	return c.rc.Close()
    }
    
    // keepHTTPReqResponseAlive can be used to avoid timeouts with long storage
    // operations, such as bitrot verification or data usage scanning.
    // Every 10 seconds a space character is sent.
    // keepHTTPReqResponseAlive will wait for the returned body to be read before starting the ticker.
    Registered: Sun Dec 28 19:28:13 UTC 2025
    - Last Modified: Tue May 27 15:19:03 UTC 2025
    - 45.7K bytes
    - Viewed (0)
  9. cmd/data-scanner.go

    				replication: replicationCfg,
    			}
    
    			item.heal.enabled = thisHash.modAlt(f.oldCache.Info.NextCycle/folder.objectHealProbDiv, f.healObjectSelect/folder.objectHealProbDiv) && f.shouldHeal()
    			item.heal.bitrot = f.scanMode == madmin.HealDeepScan
    
    			sz, err := f.getSize(item)
    			if err != nil && err != errIgnoreFileContrib {
    				wait() // wait to proceed to next entry.
    				if err != errSkipFile && f.dataUsageScannerDebug {
    Registered: Sun Dec 28 19:28:13 UTC 2025
    - Last Modified: Fri Aug 29 02:39:48 UTC 2025
    - 45.5K bytes
    - Viewed (0)
  10. cmd/erasure-healing.go

    	hr, err = er.healObject(healCtx, bucket, object, versionID, opts)
    	if errors.Is(err, errFileCorrupt) && opts.ScanMode != madmin.HealDeepScan {
    		// Instead of returning an error when a bitrot error is detected
    		// during a normal heal scan, heal again with bitrot flag enabled.
    		opts.ScanMode = madmin.HealDeepScan
    		hr, err = er.healObject(healCtx, bucket, object, versionID, opts)
    	}
    	return hr, toObjectErr(err, bucket, object, versionID)
    Registered: Sun Dec 28 19:28:13 UTC 2025
    - Last Modified: Sun Sep 28 20:59:21 UTC 2025
    - 34.7K bytes
    - Viewed (0)
Back to top