Skip to content

Commit

Permalink
Fix database deadlock when update issue labels (go-gitea#17649)
Browse files Browse the repository at this point in the history
This fix updates issue labels one by one, and won't cause database deadlock.
In future, we can use a batch API to update all changed labels by one request.
  • Loading branch information
wxiaoguang authored and Stelios Malathouras committed Mar 28, 2022
1 parent 17e3a24 commit 4effcfe
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 26 deletions.
24 changes: 10 additions & 14 deletions web_src/js/features/repo-issue.js
Original file line number Diff line number Diff line change
Expand Up @@ -332,20 +332,16 @@ export function initRepoIssueWipTitle() {
});
}

export function updateIssuesMeta(url, action, issueIds, elementId) {
return new Promise((resolve, reject) => {
$.ajax({
type: 'POST',
url,
data: {
_csrf: csrfToken,
action,
issue_ids: issueIds,
id: elementId,
},
success: resolve,
error: reject,
});
export async function updateIssuesMeta(url, action, issueIds, elementId) {
return $.ajax({
type: 'POST',
url,
data: {
_csrf: csrfToken,
action,
issue_ids: issueIds,
id: elementId,
},
});
}

Expand Down
24 changes: 12 additions & 12 deletions web_src/js/features/repo-legacy.js
Original file line number Diff line number Diff line change
Expand Up @@ -84,18 +84,18 @@ export function initRepoCommentForm() {
$(`.${selector}`).dropdown('setting', 'onHide', () => {
hasUpdateAction = $listMenu.data('action') === 'update'; // Update the var
if (hasUpdateAction) {
const promises = [];
Object.keys(items).forEach((elementId) => {
const item = items[elementId];
const promise = updateIssuesMeta(
item['update-url'],
item.action,
item['issue-id'],
elementId,
);
promises.push(promise);
});
Promise.all(promises).then(() => window.location.reload());
// TODO: Add batch functionality and make this 1 network request.
(async function() {
for (const [elementId, item] of Object.entries(items)) {
await updateIssuesMeta(
item['update-url'],
item.action,
item['issue-id'],
elementId,
);
}
window.location.reload();
})();
}
});

Expand Down

0 comments on commit 4effcfe

Please sign in to comment.