-
-
Notifications
You must be signed in to change notification settings - Fork 3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
If we GC while adding, the temporary root will never be unpinned. #4625
Comments
@Stebalien mind adding labels to all these new issues? They're great, it'll just make them more discoverable. |
Speaking about triaging, @forstmeier have reached out and offered us to try out a automatic labeling feature for Github Issues. Might be useful for us. The website for the service is here: https://heupr.io/ Maybe we could try it out with ipfs/go-ipfs and if everything works fine, use it for other repos as well. @forstmeier how does heupr work with lots of repositories? Will the trained models be using information for the entire organization or just one repository? |
I worry about services like that as I'm pretty sure we'll need to give the service write access to the repo (welcome to github's lack of useful permissions...). @lgierth sorry about that. |
@Stebalien Just checked it, it doesn't require access to code: @victorbjelkholm do we have an issue somewhere about this, if not could you open one? |
Ah. So github allows one to give bots fine-grained access but not users? ... |
@Kubuxu sorry for the unrelated comments, we can continue the discussion in https://discuss.ipfs.io/t/ipfs-issue-triage/1548 |
@Stebalien Something like this? (see adder.UnpinRoot()) func (adder *Adder) maybePauseForGC() error {
if adder.unlocker != nil && adder.blockstore.GCRequested() {
//Pin Root
err := adder.PinRoot()
if err != nil {
return err
}
//GC is unlocked
adder.unlocker.Unlock()
//GC is now running...
//GC is locked
adder.unlocker = adder.blockstore.PinLock()
//Unpin Root
err = adder.UnpinRoot() //<-New Method
if err != nil {
return err
}
}
return nil
}
// Unpins the root node of Adder
func (adder *Adder) UnpinRoot() error {
root, err := adder.RootNode()
if err != nil {
return err
}
if !adder.Pin {
return nil
}
rnk := root.Cid()
err = adder.pinning.Unpin(adder.ctx, rnk, true)
if err != nil {
return err
}
return adder.pinning.Flush()
} |
We should pin, unlock, gc, lock, and unpin immediately. This is a bug in
maybePauseForGC
in coreunix/add.go.The text was updated successfully, but these errors were encountered: