Skip to content

Commit 9492c8b

Browse files
committed
upgrade fixes for 2.6.1
fix
1 parent 2c95897 commit 9492c8b

File tree

3 files changed

+51
-34
lines changed

3 files changed

+51
-34
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "noobaa-core",
3-
"version": "2.6.0",
3+
"version": "2.6.1",
44
"private": true,
55
"license": "SEE LICENSE IN LICENSE",
66
"description": "",

src/upgrade/upgrade.js

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ async function do_upgrade() {
4040
dbg.log0('failed preparing environment for upgrade_manager', err);
4141
// restart services to stop upgrade
4242
// TODO: better solution than restarting services
43-
supervisor.restart('webserver');
43+
supervisor.restart(['webserver']);
4444
process.exit(1);
4545
}
4646
}
@@ -63,8 +63,15 @@ async function start_upgrade_manager() {
6363
upgrade_prog.priority = '1';
6464
upgrade_prog.stopsignal = 'KILL';
6565
dbg.log0('UPGRADE: adding upgrade manager to supervisor and applying. configuration is', upgrade_prog);
66-
await supervisor.add_program(upgrade_prog);
67-
await supervisor.apply_changes();
66+
try {
67+
await supervisor.add_program(upgrade_prog);
68+
await supervisor.apply_changes();
69+
} catch (err) {
70+
dbg.error(`UPGRADE: failed adding upgrade manager to supervisor.
71+
this probably means that supervisorctl is failing to connect to supervisord. restarting supervisord`, err);
72+
await supervisor.restart_supervisord();
73+
throw err;
74+
}
6875
}
6976

7077
function main() {

src/upgrade/upgrade_utils.js

Lines changed: 40 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -330,49 +330,59 @@ function new_pre_upgrade_checkups(params) {
330330
);
331331
}
332332

333-
function do_yum_update() {
334-
dbg.log0('fix_security_issues: Called');
335-
return promise_utils.exec(`cp -fd /etc/localtime /tmp`, {
336-
ignore_rc: false,
337-
return_stdout: true,
338-
trim_stdout: true
339-
})
340-
.then(() => promise_utils.exec(`yum clean all`, {
333+
async function do_yum_update() {
334+
try {
335+
dbg.log0('UPGRADE: do_yum_update: Called');
336+
dbg.log0('UPGRADE: copying /etc/localtime to tmp');
337+
await promise_utils.exec(`cp -fd /etc/localtime /tmp`, {
341338
ignore_rc: false,
342339
return_stdout: true,
343340
trim_stdout: true
344-
}))
345-
.then(res => {
346-
dbg.log0('fix_security_issues: yum clean', res);
347-
})
348-
.then(() => promise_utils.exec(`yum update -y`, {
341+
});
342+
dbg.log0('UPGRADE: calling yum clean all');
343+
const clean_res = await promise_utils.exec(`yum clean all`, {
349344
ignore_rc: false,
350345
return_stdout: true,
351346
trim_stdout: true
352-
}))
353-
.then(res => {
354-
dbg.log0('fix_security_issues: yum update', res);
355-
})
356-
.then(() => promise_utils.exec(`yum clean all`, {
347+
});
348+
dbg.log0('UPGRADE: yum clean result:', clean_res);
349+
let update_retries = 3;
350+
while (update_retries > 0) {
351+
try {
352+
dbg.log0('UPGRADE: calling yum update -y');
353+
const update_res = await promise_utils.exec(`yum update -y`, {
354+
ignore_rc: false,
355+
return_stdout: true,
356+
trim_stdout: true
357+
});
358+
dbg.log0('UPGRADE: yum update result:', update_res);
359+
// no retires necessary
360+
update_retries = 0;
361+
} catch (err) {
362+
update_retries -= 1;
363+
if (update_retries === 0) throw err;
364+
dbg.error(`yum update failed with error. retrying in 30 seconds`, err);
365+
await P.delay(30000);
366+
}
367+
}
368+
await promise_utils.exec(`yum clean all`, {
357369
ignore_rc: false,
358370
return_stdout: true,
359371
trim_stdout: true
360-
}))
361-
.then(() => {
362-
dbg.log0(`Updated yum packages`);
363-
})
364-
.then(() => promise_utils.exec(`cp -fd /tmp/localtime /etc`, {
372+
});
373+
374+
dbg.log0(`Updated yum packages`);
375+
376+
await promise_utils.exec(`cp -fd /tmp/localtime /etc`, {
365377
ignore_rc: false,
366378
return_stdout: true,
367379
trim_stdout: true
368-
}))
369-
.then(() => {
370-
dbg.log0('fix_security_issues: Success');
371-
})
372-
.catch(function(err) {
373-
dbg.error('fix_security_issues: Failure', err);
374-
throw err;
375380
});
381+
} catch (err) {
382+
dbg.error('do_yum_update: Failure', err);
383+
throw err;
384+
385+
}
376386
}
377387

378388

0 commit comments

Comments
 (0)