Skip to content
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

Move add to hook queue for created repo to outside xorm session. #7675

Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 13 additions & 2 deletions models/repo.go
Original file line number Diff line number Diff line change
Expand Up @@ -1332,7 +1332,6 @@ func createRepository(e *xorm.Session, doer, u *User, repo *Repository) (err err
}); err != nil {
return fmt.Errorf("prepareWebhooks: %v", err)
}
go HookQueue.Add(repo.ID)
} else if err = repo.recalculateAccesses(e); err != nil {
// Organization automatically called this in addRepository method.
return fmt.Errorf("recalculateAccesses: %v", err)
Expand Down Expand Up @@ -1402,7 +1401,14 @@ func CreateRepository(doer, u *User, opts CreateRepoOptions) (_ *Repository, err
}
}

return repo, sess.Commit()
err = sess.Commit()
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
err = sess.Commit()
if err = sess.Commit(); err != nil {

Copy link
Contributor Author

@davidsvantesson davidsvantesson Jul 30, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed.


// Add to hook queue for created repo after session commit.
if u.IsOrganization() {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If commit fails repo won't be created

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Error handling for session commit added.

I do not know why amd64 build is failing after I added this commit.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's arm64, I think that's fail unrelated.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I restarted build, it was amd64 fail first, now arm64. I restarted again, hopefully that fixes things.

go HookQueue.Add(repo.ID)
}

return repo, err
}

func countRepositories(userID int64, private bool) int64 {
Expand Down Expand Up @@ -2462,6 +2468,11 @@ func ForkRepository(doer, u *User, oldRepo *Repository, name, desc string) (_ *R
go HookQueue.Add(oldRepo.ID)
}

// Add to hook queue for created repo after session commit.
if u.IsOrganization() {
go HookQueue.Add(repo.ID)
}

if err = repo.UpdateSize(); err != nil {
log.Error("Failed to update size for repository: %v", err)
}
Expand Down