mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
embed: fix compaction runtime err
Handle negative value input which currently gives a runtime error.
This commit is contained in:
@@ -178,9 +178,11 @@ func TestAutoCompactionModeParse(t *testing.T) {
|
|||||||
{"revision", "1", false, 1},
|
{"revision", "1", false, 1},
|
||||||
{"revision", "1h", false, time.Hour},
|
{"revision", "1h", false, time.Hour},
|
||||||
{"revision", "a", true, 0},
|
{"revision", "a", true, 0},
|
||||||
|
{"revision", "-1", true, 0},
|
||||||
// periodic
|
// periodic
|
||||||
{"periodic", "1", false, time.Hour},
|
{"periodic", "1", false, time.Hour},
|
||||||
{"periodic", "a", true, 0},
|
{"periodic", "a", true, 0},
|
||||||
|
{"revision", "-1", true, 0},
|
||||||
// err mode
|
// err mode
|
||||||
{"errmode", "1", false, 0},
|
{"errmode", "1", false, 0},
|
||||||
{"errmode", "1h", false, time.Hour},
|
{"errmode", "1h", false, time.Hour},
|
||||||
|
|||||||
@@ -812,7 +812,7 @@ func (e *Etcd) GetLogger() *zap.Logger {
|
|||||||
|
|
||||||
func parseCompactionRetention(mode, retention string) (ret time.Duration, err error) {
|
func parseCompactionRetention(mode, retention string) (ret time.Duration, err error) {
|
||||||
h, err := strconv.Atoi(retention)
|
h, err := strconv.Atoi(retention)
|
||||||
if err == nil {
|
if err == nil && h >= 0 {
|
||||||
switch mode {
|
switch mode {
|
||||||
case CompactorModeRevision:
|
case CompactorModeRevision:
|
||||||
ret = time.Duration(int64(h))
|
ret = time.Duration(int64(h))
|
||||||
|
|||||||
Reference in New Issue
Block a user