Compare commits

...

7 commits

Author SHA1 Message Date
Ali Razmjoo
8c84ae3baf
Merge 4e667c9adb into 8a432ac937 2024-11-12 18:00:25 +00:00
Ionys
8a432ac937
fix(status page): Make sure the group deletion is correctly handled when groupIDList is empty (#5340)
Some checks failed
Auto Test / check-linters (push) Has been cancelled
Auto Test / armv7-simple-test (18, ARMv7) (push) Has been cancelled
Auto Test / armv7-simple-test (20, ARMv7) (push) Has been cancelled
Auto Test / e2e-test (push) Has been cancelled
CodeQL / Analyze (push) Has been cancelled
Merge Conflict Labeler / Labeling (push) Has been cancelled
validate / json-yaml-validate (push) Has been cancelled
validate / validate (push) Has been cancelled
Auto Test / auto-test (18, ARM64) (push) Has been cancelled
Auto Test / auto-test (18, macos-latest) (push) Has been cancelled
Auto Test / auto-test (18, ubuntu-latest) (push) Has been cancelled
Auto Test / auto-test (18, windows-latest) (push) Has been cancelled
Auto Test / auto-test (20, ARM64) (push) Has been cancelled
Auto Test / auto-test (20, macos-latest) (push) Has been cancelled
Auto Test / auto-test (20, ubuntu-latest) (push) Has been cancelled
Auto Test / auto-test (20, windows-latest) (push) Has been cancelled
2024-11-12 19:00:09 +01:00
Ali Razmjoo
4e667c9adb
close the current page context 2024-06-11 13:20:00 +02:00
Ali Razmjoo
617634f2af
Update real-browser-monitor-type.js 2024-06-10 16:45:56 +02:00
Ali Razmjoo
124f5a471a
Merge branch 'louislam:master' into fix-browser-high-cpu-issue 2024-06-10 16:31:50 +02:00
Ali Razmjoo
a87b833a5a
Merge branch 'master' into fix-browser-high-cpu-issue 2023-09-23 13:17:51 +02:00
Ali Razmjoo
caa8dd8ec2 close the browser after getBrowser() 2023-09-23 13:11:02 +02:00
2 changed files with 25 additions and 7 deletions

View file

@ -228,6 +228,20 @@ async function testRemoteBrowser(remoteBrowserURL) {
throw new Error(e.message); throw new Error(e.message);
} }
} }
/**
* Cleanup function to terminate all browser processes and clear cache after each monitoring check.
* @param {import ("playwright-core").Page} page The page to close
* @returns {Promise<void>}
*/
async function cleanupBrowser(page) {
if (page) {
await page.context().clearCookies();
await page.context().clearPermissions();
await page.close();
}
}
class RealBrowserMonitorType extends MonitorType { class RealBrowserMonitorType extends MonitorType {
name = "real-browser"; name = "real-browser";
@ -251,7 +265,7 @@ class RealBrowserMonitorType extends MonitorType {
path: path.join(Database.screenshotDir, filename), path: path.join(Database.screenshotDir, filename),
}); });
await context.close(); await cleanupBrowser(page); // Ensure cleanup is called after each monitoring check
if (res.status() >= 200 && res.status() < 400) { if (res.status() >= 200 && res.status() < 400) {
heartbeat.status = UP; heartbeat.status = UP;

View file

@ -220,13 +220,17 @@ module.exports.statusPageSocketHandler = (socket) => {
// Delete groups that are not in the list // Delete groups that are not in the list
log.debug("socket", "Delete groups that are not in the list"); log.debug("socket", "Delete groups that are not in the list");
const slots = groupIDList.map(() => "?").join(","); if (groupIDList.length === 0) {
await R.exec("DELETE FROM `group` WHERE status_page_id = ?", [ statusPage.id ]);
} else {
const slots = groupIDList.map(() => "?").join(",");
const data = [ const data = [
...groupIDList, ...groupIDList,
statusPage.id statusPage.id
]; ];
await R.exec(`DELETE FROM \`group\` WHERE id NOT IN (${slots}) AND status_page_id = ?`, data); await R.exec(`DELETE FROM \`group\` WHERE id NOT IN (${slots}) AND status_page_id = ?`, data);
}
const server = UptimeKumaServer.getInstance(); const server = UptimeKumaServer.getInstance();