Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit385e5cb

Browse files
committed
fix: prevent panics if a clone snapshot has been deleted manually (#309)
1 parent17e62d1 commit385e5cb

File tree

3 files changed

+10
-3
lines changed

3 files changed

+10
-3
lines changed

‎internal/cloning/base.go‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,10 @@ func (c *Base) DestroyClone(cloneID string) error {
306306
}
307307

308308
c.deleteClone(cloneID)
309-
c.decrementCloneNumber(w.Clone.Snapshot.ID)
309+
310+
ifw.Clone.Snapshot!=nil {
311+
c.decrementCloneNumber(w.Clone.Snapshot.ID)
312+
}
310313
c.observingCh<-cloneID
311314

312315
c.SaveClonesState()

‎internal/cloning/snapshots.go‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@ func (c *Base) fetchSnapshots() error {
3434
numClones:=0
3535

3636
forcloneName:=rangec.clones {
37-
ifc.clones[cloneName]!=nil&&c.clones[cloneName].Clone.Snapshot.ID==entry.ID {
37+
ifc.clones[cloneName]!=nil&&c.clones[cloneName].Clone.Snapshot!=nil&&
38+
c.clones[cloneName].Clone.Snapshot.ID==entry.ID {
3839
numClones++
3940
}
4041
}

‎internal/cloning/storage.go‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,12 @@ func (c *Base) restartCloneContainers(ctx context.Context) {
6262

6363
iferr:=c.provision.ReconnectClone(ctx,cloneName);err!=nil {
6464
log.Err(fmt.Sprintf("Clone container %s cannot be reconnected to the internal network: %s",cloneName,err))
65+
continue
6566
}
6667

6768
iferr:=c.provision.StartCloneContainer(ctx,cloneName);err!=nil {
6869
log.Err(fmt.Sprintf("Clone container %s cannot start: %s",cloneName,err))
70+
continue
6971
}
7072

7173
log.Dbg(fmt.Sprintf("Clone container %s is running",cloneName))
@@ -79,7 +81,8 @@ func (c *Base) filterRunningClones(ctx context.Context) {
7981
snapshotCache:=make(map[string]struct{})
8082

8183
forcloneID,wrapper:=rangec.clones {
82-
ifwrapper.Clone==nil||wrapper.Session==nil||wrapper.Clone.Status.Code==models.StatusFatal {
84+
ifwrapper.Clone==nil||wrapper.Clone.Snapshot==nil||wrapper.Session==nil||
85+
wrapper.Clone.Status.Code==models.StatusFatal {
8386
delete(c.clones,cloneID)
8487
continue
8588
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp