From 9c121a0620c7a342d4971f6bfae72e21dbeff200 Mon Sep 17 00:00:00 2001 From: Alex Demidoff Date: Thu, 10 Oct 2024 18:55:51 +0300 Subject: [PATCH 1/6] PMM-13409 Fix update:getStatus failure after upgrade --- managed/services/server/server.go | 8 +++++++- managed/services/server/updater.go | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/managed/services/server/server.go b/managed/services/server/server.go index 9573164b66..742de4b6a8 100644 --- a/managed/services/server/server.go +++ b/managed/services/server/server.go @@ -98,7 +98,7 @@ type Params struct { // NewServer returns new server for Server service. func NewServer(params *Params) (*Server, error) { - path := os.TempDir() + path := "/srv" if _, err := os.Stat(path); err != nil { return nil, errors.WithStack(err) } @@ -359,6 +359,12 @@ func (s *Server) StartUpdate(ctx context.Context, req *serverv1.StartUpdateReque // UpdateStatus returns PMM Server update status. func (s *Server) UpdateStatus(ctx context.Context, req *serverv1.UpdateStatusRequest) (*serverv1.UpdateStatusResponse, error) { + if _, err := os.Stat(s.pmmUpdateAuthFile); err != nil && os.IsNotExist(err) { + return &serverv1.UpdateStatusResponse{ + Done: true, + }, nil + } + token, err := s.readUpdateAuthToken() if err != nil { return nil, err diff --git a/managed/services/server/updater.go b/managed/services/server/updater.go index 9c6bc12f33..ee025175de 100644 --- a/managed/services/server/updater.go +++ b/managed/services/server/updater.go @@ -224,7 +224,7 @@ func (up *Updater) latest(ctx context.Context) ([]*version.DockerVersionInfo, *v } func (up *Updater) readFromFile() (*version.DockerVersionInfo, error) { - // Read from file, if it's not exist read from ENV variable, if it's not exist get the latest tag from DockerHub. + // Read from file, if it does not exist read from ENV variable, if it does not exist get the latest tag from DockerHub. content, err := os.ReadFile(fileName) if err != nil && !os.IsNotExist(err) { up.l.WithError(err).Error("Failed to read file") From e462ad688f1689029f1453af05219bcd4ea99bee Mon Sep 17 00:00:00 2001 From: Alex Demidoff Date: Fri, 11 Oct 2024 19:14:52 +0300 Subject: [PATCH 2/6] PMM-13409 remove the token after upgrade --- build/ansible/pmm-docker/update.yml | 5 +++++ build/ansible/roles/initialization/tasks/main.yml | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/build/ansible/pmm-docker/update.yml b/build/ansible/pmm-docker/update.yml index 019dcc8f98..003de6179f 100644 --- a/build/ansible/pmm-docker/update.yml +++ b/build/ansible/pmm-docker/update.yml @@ -170,3 +170,8 @@ file: state: absent path: /usr/share/pmm-server/maintenance/maintenance.html + + - name: Remove the file provisioned by 'getStatus' + file: + state: absent + path: /srv/pmm-update.json diff --git a/build/ansible/roles/initialization/tasks/main.yml b/build/ansible/roles/initialization/tasks/main.yml index 8715815ad3..21ff3f4185 100644 --- a/build/ansible/roles/initialization/tasks/main.yml +++ b/build/ansible/roles/initialization/tasks/main.yml @@ -139,4 +139,9 @@ file: state: absent path: /usr/share/pmm-server/maintenance/maintenance.html + + - name: Remove the file provisioned by 'getStatus' + file: + state: absent + path: /srv/pmm-update.json when: need_initialization or need_upgrade From ad12d498a7fff7295ce81ca724d48ed1c3fc9cdf Mon Sep 17 00:00:00 2001 From: Alex Demidoff Date: Sat, 12 Oct 2024 09:17:25 +0300 Subject: [PATCH 3/6] PMM-13409 fix the system attribute --- build/ansible/roles/initialization/tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/ansible/roles/initialization/tasks/main.yml b/build/ansible/roles/initialization/tasks/main.yml index 21ff3f4185..3b091d8048 100644 --- a/build/ansible/roles/initialization/tasks/main.yml +++ b/build/ansible/roles/initialization/tasks/main.yml @@ -128,7 +128,7 @@ method: GET retries: 20 delay: 5 - ignore_errors: yes + ignore_errors: true - name: init admin password on AMI include_role: From d3c77f74371d03beffa9986fcdd7e811b045115b Mon Sep 17 00:00:00 2001 From: Alex Demidoff Date: Mon, 14 Oct 2024 13:01:19 +0300 Subject: [PATCH 4/6] Update managed/services/server/updater.go Co-authored-by: Michael Okoko <10512379+idoqo@users.noreply.github.com> --- managed/services/server/updater.go | 1 - 1 file changed, 1 deletion(-) diff --git a/managed/services/server/updater.go b/managed/services/server/updater.go index ee025175de..68dd3a007f 100644 --- a/managed/services/server/updater.go +++ b/managed/services/server/updater.go @@ -224,7 +224,6 @@ func (up *Updater) latest(ctx context.Context) ([]*version.DockerVersionInfo, *v } func (up *Updater) readFromFile() (*version.DockerVersionInfo, error) { - // Read from file, if it does not exist read from ENV variable, if it does not exist get the latest tag from DockerHub. content, err := os.ReadFile(fileName) if err != nil && !os.IsNotExist(err) { up.l.WithError(err).Error("Failed to read file") From 8634aa7a16866dc1e5ccc9363834c67a0c4cbf33 Mon Sep 17 00:00:00 2001 From: Alex Demidoff Date: Mon, 14 Oct 2024 17:09:46 +0300 Subject: [PATCH 5/6] PMM-13409 do not depend on `IsRunning` flag to ship the logs --- managed/services/server/server.go | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/managed/services/server/server.go b/managed/services/server/server.go index 742de4b6a8..c218715168 100644 --- a/managed/services/server/server.go +++ b/managed/services/server/server.go @@ -376,12 +376,10 @@ func (s *Server) UpdateStatus(ctx context.Context, req *serverv1.UpdateStatusReq // wait up to 30 seconds for new log lines var lines []string var newOffset uint32 - var done bool ctx, cancel := context.WithTimeout(ctx, 30*time.Second) defer cancel() for ctx.Err() == nil { - done = !s.updater.IsRunning() - if done { + if !s.updater.IsRunning() { // give supervisord a second to flush logs to file time.Sleep(time.Second) } @@ -391,7 +389,7 @@ func (s *Server) UpdateStatus(ctx context.Context, req *serverv1.UpdateStatusReq s.l.Warn(err) } - if len(lines) != 0 || done { + if len(lines) != 0 { break } @@ -401,7 +399,7 @@ func (s *Server) UpdateStatus(ctx context.Context, req *serverv1.UpdateStatusReq return &serverv1.UpdateStatusResponse{ LogLines: lines, LogOffset: newOffset, - Done: done, + Done: false, }, nil } From be02c892a150b5583ce8eb7abbce40c456441f4f Mon Sep 17 00:00:00 2001 From: Alex Demidoff Date: Mon, 14 Oct 2024 17:11:29 +0300 Subject: [PATCH 6/6] PMM-13409 get rid of the redundant task --- build/ansible/pmm-docker/update.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/build/ansible/pmm-docker/update.yml b/build/ansible/pmm-docker/update.yml index 003de6179f..019dcc8f98 100644 --- a/build/ansible/pmm-docker/update.yml +++ b/build/ansible/pmm-docker/update.yml @@ -170,8 +170,3 @@ file: state: absent path: /usr/share/pmm-server/maintenance/maintenance.html - - - name: Remove the file provisioned by 'getStatus' - file: - state: absent - path: /srv/pmm-update.json