Skip to content

Commit 491533a

Browse files
committed
fix: Pass along released server file descriptor to enable correctly closing server file in when switching from leecher to seeder mode
1 parent 0fb279a commit 491533a

File tree

9 files changed

+16
-4
lines changed

9 files changed

+16
-4
lines changed

pkg/migration/file_leecher.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ func (l *FileLeecher) Release() (
9393
chan error,
9494
*sync.WaitGroup,
9595
string,
96+
*os.File,
9697
) {
9798
l.released = true
9899

pkg/migration/file_migrator.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ func (s *FileMigrator) Leech(
196196
*services.SeederService,
197197
error,
198198
) {
199-
releasedDev, releasedErrs, releasedWg, releasedDeviceFile := s.leecher.Release()
199+
releasedDev, releasedErrs, releasedWg, releasedDeviceFile, releasedServerFile := s.leecher.Release()
200200

201201
s.released = true
202202
if err := s.leecher.Close(); err != nil {
@@ -223,6 +223,7 @@ func (s *FileMigrator) Leech(
223223
releasedErrs,
224224
releasedWg,
225225
releasedDeviceFile,
226+
releasedServerFile,
226227

227228
file,
228229
)

pkg/migration/file_seeder.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ func NewFileSeederFromLeecher(
6363
errs chan error,
6464
wg *sync.WaitGroup,
6565
devicePath string,
66+
serverFile *os.File,
6667

6768
deviceFile *os.File,
6869
) *FileSeeder {
@@ -81,6 +82,7 @@ func NewFileSeederFromLeecher(
8182
errs,
8283
wg,
8384
devicePath,
85+
serverFile,
8486
),
8587

8688
hooks: hooks,

pkg/migration/path_leecher.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -321,6 +321,7 @@ func (l *PathLeecher) Release() (
321321
chan error,
322322
*sync.WaitGroup,
323323
string,
324+
*os.File,
324325
) {
325326
l.finalizedCond.L.Lock()
326327
if !l.finalized {
@@ -336,7 +337,7 @@ func (l *PathLeecher) Release() (
336337

337338
l.released = true
338339

339-
return l.dev, l.errs, l.devWg, l.devicePath
340+
return l.dev, l.errs, l.devWg, l.devicePath, l.serverFile
340341
}
341342

342343
func (l *PathLeecher) Close() error {

pkg/migration/path_migrator.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ func (s *PathMigrator) Leech(
222222
*services.SeederService,
223223
error,
224224
) {
225-
releasedDev, releasedErrs, releasedWg, releasedDevicePath := s.leecher.Release()
225+
releasedDev, releasedErrs, releasedWg, releasedDevicePath, releasedServerFile := s.leecher.Release()
226226

227227
s.released = true
228228
if err := s.leecher.Close(); err != nil {
@@ -249,6 +249,7 @@ func (s *PathMigrator) Leech(
249249
releasedErrs,
250250
releasedWg,
251251
releasedDevicePath,
252+
releasedServerFile,
252253
)
253254

254255
go func() {

pkg/migration/path_seeder.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ func NewPathSeederFromLeecher(
9090
errs chan error,
9191
wg *sync.WaitGroup,
9292
devicePath string,
93+
serverFile *os.File,
9394
) *PathSeeder {
9495
if options == nil {
9596
options = &SeederOptions{}
@@ -113,6 +114,7 @@ func NewPathSeederFromLeecher(
113114
errs: errs,
114115
wg: wg,
115116
devicePath: devicePath,
117+
serverFile: serverFile,
116118
}
117119
}
118120

pkg/migration/slice_leecher.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ func (l *SliceLeecher) Release() (
114114
chan error,
115115
*sync.WaitGroup,
116116
string,
117+
*os.File,
117118
) {
118119
l.released = true
119120

pkg/migration/slice_migrator.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ func (s *SliceMigrator) Leech(
195195
*services.SeederService,
196196
error,
197197
) {
198-
releasedDev, releasedErrs, releasedWg, releasedDeviceSlice := s.leecher.Release()
198+
releasedDev, releasedErrs, releasedWg, releasedDeviceSlice, releasedServerFile := s.leecher.Release()
199199

200200
s.released = true
201201
if err := s.leecher.Close(); err != nil {
@@ -222,6 +222,7 @@ func (s *SliceMigrator) Leech(
222222
releasedErrs,
223223
releasedWg,
224224
releasedDeviceSlice,
225+
releasedServerFile,
225226

226227
slice,
227228
)

pkg/migration/slice_seeder.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ func NewSliceSeederFromLeecher(
6767
errs chan error,
6868
wg *sync.WaitGroup,
6969
devicePath string,
70+
releasedServerFile *os.File,
7071

7172
deviceSlice []byte,
7273
) *SliceSeeder {
@@ -85,6 +86,7 @@ func NewSliceSeederFromLeecher(
8586
errs,
8687
wg,
8788
devicePath,
89+
releasedServerFile,
8890
),
8991

9092
hooks: hooks,

0 commit comments

Comments
 (0)