@@ -251,15 +251,24 @@ func (p *Provisioner) ResetSession(session *resources.Session, snapshotID string
251251
252252 log .Dbg ("Snapshot ID to reset session: " , snapshot .ID )
253253
254+ newFSManager := fsm
255+
256+ if snapshot .Pool != session .Pool {
257+ newFSManager , err = p .pm .GetFSManager (snapshot .Pool )
258+ if err != nil {
259+ return nil , errors .Wrap (err , "failed to find filesystem manager for a new session" )
260+ }
261+
262+ session .Pool = snapshot .Pool
263+ session .SocketHost = newFSManager .Pool ().SocketCloneDir (name )
264+ }
265+
254266 defer func () {
255267 if err != nil {
256268 p .revertSession (name )
257269 }
258270 }()
259271
260- appConfig := p .getAppConfig (fsm .Pool (), name , session .Port )
261- appConfig .SetExtraConf (session .ExtraConfig )
262-
263272 if err := postgres .Stop (p .runner , fsm .Pool (), name ); err != nil {
264273 return nil , errors .Wrap (err , "failed to stop container" )
265274 }
@@ -268,10 +277,13 @@ func (p *Provisioner) ResetSession(session *resources.Session, snapshotID string
268277 return nil , errors .Wrap (err , "failed to destroy clone" )
269278 }
270279
271- if err := fsm .CreateClone (name , snapshot .ID ); err != nil {
280+ if err := newFSManager .CreateClone (name , snapshot .ID ); err != nil {
272281 return nil , errors .Wrap (err , "failed to create clone" )
273282 }
274283
284+ appConfig := p .getAppConfig (newFSManager .Pool (), name , session .Port )
285+ appConfig .SetExtraConf (session .ExtraConfig )
286+
275287 if err := postgres .Start (p .runner , appConfig ); err != nil {
276288 return nil , errors .Wrap (err , "failed to start container" )
277289 }
@@ -579,7 +591,7 @@ func (p *Provisioner) getAppConfig(pool *resources.Pool, name string, port uint)
579591 Host : pool .SocketCloneDir (name ),
580592 Port : port ,
581593 DB : p .dbCfg ,
582- Pool : pool , // TODO: check copying: it must be read-only struct.
594+ Pool : pool ,
583595 ContainerConf : p .config .ContainerConfig ,
584596 NetworkID : p .networkID ,
585597 }
0 commit comments