Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
dms3
go-dms3
Commits
34efa3b8
Commit
34efa3b8
authored
Dec 01, 2015
by
Juan Benet
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #2010 from ipfs/hotfix/auto-gc
Fix maybeGC trigger condition
parents
792da9d8
4a1043b2
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
14 additions
and
9 deletions
+14
-9
core/corerepo/gc.go
core/corerepo/gc.go
+14
-9
No files found.
core/corerepo/gc.go
View file @
34efa3b8
...
...
@@ -154,7 +154,7 @@ func PeriodicGC(ctx context.Context, node *core.IpfsNode) error {
case
<-
time
.
After
(
period
)
:
// the private func maybeGC doesn't compute storageMax, storageGC, slackGC so that they are not re-computed for every cycle
if
err
:=
gc
.
maybeGC
(
ctx
,
0
);
err
!=
nil
{
return
err
log
.
Error
(
err
)
}
}
}
...
...
@@ -174,15 +174,13 @@ func (gc *GC) maybeGC(ctx context.Context, offset uint64) error {
return
err
}
if
storage
+
offset
>
gc
.
StorageMax
{
err
:=
ErrMaxStorageExceeded
log
.
Error
(
err
)
return
err
}
if
storage
+
offset
>
gc
.
StorageGC
{
if
storage
+
offset
>
gc
.
StorageMax
{
log
.
Warningf
(
"pre-GC: %s"
,
ErrMaxStorageExceeded
)
}
// Do GC here
log
.
Info
(
"Starting repo GC..."
)
log
.
Info
(
"
Watermark exceeded.
Starting repo GC..."
)
defer
log
.
EventBegin
(
ctx
,
"repoGC"
)
.
Done
()
// 1 minute is sufficient for ~1GB unlink() blocks each of 100kb in SSD
_ctx
,
cancel
:=
context
.
WithTimeout
(
ctx
,
time
.
Duration
(
gc
.
SlackGB
)
*
time
.
Minute
)
...
...
@@ -196,7 +194,14 @@ func (gc *GC) maybeGC(ctx context.Context, offset uint64) error {
return
err
}
log
.
Infof
(
"Repo GC done. Released %s
\n
"
,
humanize
.
Bytes
(
uint64
(
storage
-
newStorage
)))
return
nil
if
newStorage
>
gc
.
StorageGC
{
log
.
Warningf
(
"post-GC: Watermark still exceeded"
)
if
newStorage
>
gc
.
StorageMax
{
err
:=
ErrMaxStorageExceeded
log
.
Error
(
err
)
return
err
}
}
}
return
nil
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment