Log: /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2287/e2e-tests/logs/pitr-physical.log Warning: version difference between client (1.35) and server (1.32) exceeds the supported minor version skew of +/-1 Warning: version difference between client (1.35) and server (1.32) exceeds the supported minor version skew of +/-1 Warning: version difference between client (1.35) and server (1.32) exceeds the supported minor version skew of +/-1 + main + create_infra pitr-physical-8930 + local ns=pitr-physical-8930 + [[ 1 == 1 ]] + delete_crd + desc 'get and delete old CRDs and RBAC' + set +o xtrace ----------------------------------------------------------------------------------- get and delete old CRDs and RBAC ----------------------------------------------------------------------------------- + kubectl_bin delete -f /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2287/deploy/crd.yaml --ignore-not-found --wait=false ++ mktemp + local LAST_OUT=/tmp/tmp.KndkVBZQx3 ++ mktemp + local LAST_ERR=/tmp/tmp.sYHL725JDW + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl delete -f /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2287/deploy/crd.yaml --ignore-not-found --wait=false + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.KndkVBZQx3 customresourcedefinition.apiextensions.k8s.io "perconaservermongodbbackups.psmdb.percona.com" deleted customresourcedefinition.apiextensions.k8s.io "perconaservermongodbrestores.psmdb.percona.com" deleted customresourcedefinition.apiextensions.k8s.io "perconaservermongodbs.psmdb.percona.com" deleted + cat /tmp/tmp.sYHL725JDW + rm /tmp/tmp.KndkVBZQx3 /tmp/tmp.sYHL725JDW + return 0 ++ yq eval .metadata.name /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2287/deploy/crd.yaml ++ grep -v '\-\-\-' grep: warning: stray \ before - grep: warning: stray \ before - + for crd_name in $(yq eval '.metadata.name' "${src_dir}/deploy/crd.yaml" | grep -v '\-\-\-') + kubectl get perconaservermongodbbackups.psmdb.percona.com --all-namespaces -o wide + grep -v NAMESPACE + xargs -L 1 sh -xc 'kubectl patch perconaservermongodbbackups.psmdb.percona.com -n $0 $1 --type=merge -p "{\"metadata\":{\"finalizers\":[]}}"' error: the server doesn't have a resource type "perconaservermongodbbackups" + kubectl patch perconaservermongodbbackups.psmdb.percona.com -n sh --type=merge -p '{"metadata":{"finalizers":[]}}' error: the server doesn't have a resource type "perconaservermongodbbackups" + : + kubectl_bin wait --for=delete crd perconaservermongodbbackups.psmdb.percona.com ++ mktemp + local LAST_OUT=/tmp/tmp.6hcn7DOeYu ++ mktemp + local LAST_ERR=/tmp/tmp.BUALXB5Iuc + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl wait --for=delete crd perconaservermongodbbackups.psmdb.percona.com + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.6hcn7DOeYu + cat /tmp/tmp.BUALXB5Iuc + rm /tmp/tmp.6hcn7DOeYu /tmp/tmp.BUALXB5Iuc + return 0 + for crd_name in $(yq eval '.metadata.name' "${src_dir}/deploy/crd.yaml" | grep -v '\-\-\-') + kubectl get perconaservermongodbrestores.psmdb.percona.com --all-namespaces -o wide + grep -v NAMESPACE + xargs -L 1 sh -xc 'kubectl patch perconaservermongodbrestores.psmdb.percona.com -n $0 $1 --type=merge -p "{\"metadata\":{\"finalizers\":[]}}"' error: the server doesn't have a resource type "perconaservermongodbrestores" + kubectl patch perconaservermongodbrestores.psmdb.percona.com -n sh --type=merge -p '{"metadata":{"finalizers":[]}}' error: the server doesn't have a resource type "perconaservermongodbrestores" + : + kubectl_bin wait --for=delete crd perconaservermongodbrestores.psmdb.percona.com ++ mktemp + local LAST_OUT=/tmp/tmp.PhkiDfrByZ ++ mktemp + local LAST_ERR=/tmp/tmp.lhKqkkwKFm + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl wait --for=delete crd perconaservermongodbrestores.psmdb.percona.com + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.PhkiDfrByZ + cat /tmp/tmp.lhKqkkwKFm + rm /tmp/tmp.PhkiDfrByZ /tmp/tmp.lhKqkkwKFm + return 0 + for crd_name in $(yq eval '.metadata.name' "${src_dir}/deploy/crd.yaml" | grep -v '\-\-\-') + kubectl get perconaservermongodbs.psmdb.percona.com --all-namespaces -o wide + grep -v NAMESPACE + xargs -L 1 sh -xc 'kubectl patch perconaservermongodbs.psmdb.percona.com -n $0 $1 --type=merge -p "{\"metadata\":{\"finalizers\":[]}}"' error: the server doesn't have a resource type "perconaservermongodbs" + kubectl patch perconaservermongodbs.psmdb.percona.com -n sh --type=merge -p '{"metadata":{"finalizers":[]}}' error: the server doesn't have a resource type "perconaservermongodbs" + : + kubectl_bin wait --for=delete crd perconaservermongodbs.psmdb.percona.com ++ mktemp + local LAST_OUT=/tmp/tmp.xbuvN15Zx4 ++ mktemp + local LAST_ERR=/tmp/tmp.4cPT7ALtON + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl wait --for=delete crd perconaservermongodbs.psmdb.percona.com + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.xbuvN15Zx4 + cat /tmp/tmp.4cPT7ALtON + rm /tmp/tmp.xbuvN15Zx4 /tmp/tmp.4cPT7ALtON + return 0 + local rbac_yaml=rbac.yaml + '[' -n psmdb-operator ']' + rbac_yaml=cw-rbac.yaml + kubectl_bin delete -f /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2287/deploy/cw-rbac.yaml --ignore-not-found ++ mktemp + local LAST_OUT=/tmp/tmp.VIoDtrC6FZ ++ mktemp + local LAST_ERR=/tmp/tmp.fOvbkG0e9J + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl delete -f /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2287/deploy/cw-rbac.yaml --ignore-not-found + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.VIoDtrC6FZ clusterrole.rbac.authorization.k8s.io "percona-server-mongodb-operator" deleted clusterrolebinding.rbac.authorization.k8s.io "service-account-percona-server-mongodb-operator" deleted + cat /tmp/tmp.fOvbkG0e9J + rm /tmp/tmp.VIoDtrC6FZ /tmp/tmp.fOvbkG0e9J + return 0 + check_crd_for_deletion PR-2287-ee944353 + local git_tag=PR-2287-ee944353 ++ curl -s https://raw.githubusercontent.com/percona/percona-server-mongodb-operator/PR-2287-ee944353/deploy/crd.yaml ++ yq eval .metadata.name ++ /usr/sbin/sed ':a;N;$!ba;s/\n/ /g' ++ /usr/sbin/sed s/---//g + for crd_name in $(curl -s https://raw.githubusercontent.com/percona/percona-server-mongodb-operator/${git_tag}/deploy/crd.yaml | yq eval '.metadata.name' | $sed 's/---//g' | $sed ':a;N;$!ba;s/\n/ /g') ++ kubectl_bin get crd/null -o 'jsonpath={.status.conditions[-1].type}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.GylFNyFQX1 +++ mktemp ++ local LAST_ERR=/tmp/tmp.COGjvGFpgd ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get crd/null -o 'jsonpath={.status.conditions[-1].type}' ++ exit_status=1 ++ set -e ++ '[' 1 '!=' 0 -a -n 1 ']' ++ cat /tmp/tmp.GylFNyFQX1 ++ cat /tmp/tmp.COGjvGFpgd Error from server (NotFound): customresourcedefinitions.apiextensions.k8s.io "null" not found ++ sleep 0 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get crd/null -o 'jsonpath={.status.conditions[-1].type}' ++ exit_status=1 ++ set -e ++ '[' 1 '!=' 0 -a -n 1 ']' ++ cat /tmp/tmp.GylFNyFQX1 ++ cat /tmp/tmp.COGjvGFpgd Error from server (NotFound): customresourcedefinitions.apiextensions.k8s.io "null" not found ++ sleep 4 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get crd/null -o 'jsonpath={.status.conditions[-1].type}' ++ exit_status=1 ++ set -e ++ '[' 1 '!=' 0 -a -n 1 ']' ++ cat /tmp/tmp.GylFNyFQX1 ++ cat /tmp/tmp.COGjvGFpgd Error from server (NotFound): customresourcedefinitions.apiextensions.k8s.io "null" not found ++ sleep 8 ++ cat /tmp/tmp.GylFNyFQX1 ++ cat /tmp/tmp.COGjvGFpgd Error from server (NotFound): customresourcedefinitions.apiextensions.k8s.io "null" not found ++ rm /tmp/tmp.GylFNyFQX1 /tmp/tmp.COGjvGFpgd ++ return 1 + [[ '' == \T\e\r\m\i\n\a\t\i\n\g ]] + '[' -n psmdb-operator ']' + create_namespace psmdb-operator + local namespace=psmdb-operator + local skip_clean_namespace= + [[ 1 == 1 ]] + [[ -z '' ]] + destroy_chaos_mesh ++ helm list --all-namespaces --filter chaos-mesh ++ awk '-F ' '{print $2}' ++ tail -n1 ++ sed s/NAMESPACE// + local chaos_mesh_ns= + desc 'destroy chaos-mesh' + set +o xtrace ----------------------------------------------------------------------------------- destroy chaos-mesh ----------------------------------------------------------------------------------- + '[' -n '' ']' ++ kubectl get MutatingWebhookConfiguration ++ grep chaos-mesh ++ awk '{print $1}' + timeout 30 kubectl delete MutatingWebhookConfiguration error: resource(s) were provided, but no name was specified + : ++ kubectl get ValidatingWebhookConfiguration ++ awk '{print $1}' ++ grep chaos-mesh + timeout 30 kubectl delete ValidatingWebhookConfiguration error: resource(s) were provided, but no name was specified + : ++ kubectl get ValidatingWebhookConfiguration ++ grep validate-auth ++ awk '{print $1}' + timeout 30 kubectl delete ValidatingWebhookConfiguration error: resource(s) were provided, but no name was specified + : ++ kubectl api-resources ++ grep chaos-mesh ++ awk '{print $1}' ++ kubectl get crd ++ grep chaos-mesh.org ++ awk '{print $1}' + timeout 30 kubectl delete crd error: resource(s) were provided, but no name was specified + : ++ grep chaos-mesh ++ awk '{print $1}' ++ kubectl get clusterrolebinding + timeout 30 kubectl delete clusterrolebinding error: resource(s) were provided, but no name was specified + : ++ kubectl get clusterrole ++ grep chaos-mesh ++ awk '{print $1}' + timeout 30 kubectl delete clusterrole error: resource(s) were provided, but no name was specified + : + desc 'cleaned up all old namespaces' + set +o xtrace ----------------------------------------------------------------------------------- cleaned up all old namespaces ----------------------------------------------------------------------------------- + grep -E -v '^kube-|^default|Terminating|psmdb-operator|openshift|^gke-|^gmp-|^NAME' + '[' -n '' ']' + awk '{print$1}' + xargs kubectl delete ns + desc 'cleaned up old namespaces psmdb-operator' + set +o xtrace ----------------------------------------------------------------------------------- + kubectl_bin get ns cleaned up old namespaces psmdb-operator ----------------------------------------------------------------------------------- + kubectl_bin delete namespace psmdb-operator --ignore-not-found ++ mktemp ++ mktemp + local LAST_OUT=/tmp/tmp.grmihF2Ydw ++ mktemp + local LAST_OUT=/tmp/tmp.nwCfjLHvow ++ mktemp + local LAST_ERR=/tmp/tmp.eGe80SWVFC + local exit_status=0 + local timeout=4 ++ seq 0 2 + local LAST_ERR=/tmp/tmp.WDBS7eP3Cp + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl get ns + for i in $(seq 0 2) + set +e + kubectl delete namespace psmdb-operator --ignore-not-found + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.grmihF2Ydw + cat /tmp/tmp.eGe80SWVFC + rm /tmp/tmp.grmihF2Ydw /tmp/tmp.eGe80SWVFC + return 0 namespace "pitr-physical-8008" deleted + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.nwCfjLHvow namespace "psmdb-operator" deleted + cat /tmp/tmp.WDBS7eP3Cp + rm /tmp/tmp.nwCfjLHvow /tmp/tmp.WDBS7eP3Cp + return 0 + kubectl_bin wait --for=delete namespace psmdb-operator ++ mktemp + local LAST_OUT=/tmp/tmp.6ltwEbq6hV ++ mktemp + local LAST_ERR=/tmp/tmp.jXwO7rsc9s + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl wait --for=delete namespace psmdb-operator + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.6ltwEbq6hV + cat /tmp/tmp.jXwO7rsc9s + rm /tmp/tmp.6ltwEbq6hV /tmp/tmp.jXwO7rsc9s + return 0 + desc 'create namespace psmdb-operator' + set +o xtrace ----------------------------------------------------------------------------------- create namespace psmdb-operator ----------------------------------------------------------------------------------- + kubectl_bin create namespace psmdb-operator ++ mktemp + local LAST_OUT=/tmp/tmp.LLIj0X9lYI ++ mktemp + local LAST_ERR=/tmp/tmp.TFKC3SociO + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl create namespace psmdb-operator + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.LLIj0X9lYI namespace/psmdb-operator created + cat /tmp/tmp.TFKC3SociO + rm /tmp/tmp.LLIj0X9lYI /tmp/tmp.TFKC3SociO + return 0 + set_kube_ctx psmdb-operator + local namespace=psmdb-operator ++ kubectl_bin config current-context +++ mktemp ++ local LAST_OUT=/tmp/tmp.askqSPAbJ6 +++ mktemp ++ local LAST_ERR=/tmp/tmp.I8MZRUlY74 ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl config current-context ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.askqSPAbJ6 ++ cat /tmp/tmp.I8MZRUlY74 ++ rm /tmp/tmp.askqSPAbJ6 /tmp/tmp.I8MZRUlY74 ++ return 0 + kubectl_bin config set-context gke_cloud-dev-112233_us-central1-a_jen-psmdb-2287-ee944353-4-cluster14 --namespace=psmdb-operator ++ mktemp + local LAST_OUT=/tmp/tmp.hdEjntolra ++ mktemp + local LAST_ERR=/tmp/tmp.VoGFDszozy + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl config set-context gke_cloud-dev-112233_us-central1-a_jen-psmdb-2287-ee944353-4-cluster14 --namespace=psmdb-operator + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.hdEjntolra Context "gke_cloud-dev-112233_us-central1-a_jen-psmdb-2287-ee944353-4-cluster14" modified. + cat /tmp/tmp.VoGFDszozy + rm /tmp/tmp.hdEjntolra /tmp/tmp.VoGFDszozy + return 0 + deploy_operator + desc 'start PSMDB operator: docker.io/perconalab/percona-server-mongodb-operator:PR-2287-ee944353' + set +o xtrace ----------------------------------------------------------------------------------- start PSMDB operator: docker.io/perconalab/percona-server-mongodb-operator:PR-2287-ee944353 ----------------------------------------------------------------------------------- + local cr_file + '[' -f /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2287/e2e-tests/pitr-physical/conf/crd.yaml ']' + cr_file=/mnt/jenkins/workspace/cloud-psmdb-operator_PR-2287/deploy/crd.yaml + kubectl_bin apply --server-side --force-conflicts -f /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2287/deploy/crd.yaml ++ mktemp + local LAST_OUT=/tmp/tmp.N9xPiVKwxv ++ mktemp + local LAST_ERR=/tmp/tmp.muL7s2HP70 + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl apply --server-side --force-conflicts -f /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2287/deploy/crd.yaml + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.N9xPiVKwxv customresourcedefinition.apiextensions.k8s.io/perconaservermongodbbackups.psmdb.percona.com serverside-applied customresourcedefinition.apiextensions.k8s.io/perconaservermongodbrestores.psmdb.percona.com serverside-applied customresourcedefinition.apiextensions.k8s.io/perconaservermongodbs.psmdb.percona.com serverside-applied + cat /tmp/tmp.muL7s2HP70 + rm /tmp/tmp.N9xPiVKwxv /tmp/tmp.muL7s2HP70 + return 0 + '[' -n psmdb-operator ']' + apply_rbac cw-rbac + local operator_namespace=psmdb-operator + local rbac=cw-rbac + cat /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2287/deploy/cw-rbac.yaml + sed -e 's^namespace: .*^namespace: psmdb-operator^' + kubectl_bin apply -n psmdb-operator -f - ++ mktemp + local LAST_OUT=/tmp/tmp.8LM8Bd590w ++ mktemp + local LAST_ERR=/tmp/tmp.seoeAWQaag + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl apply -n psmdb-operator -f - + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.8LM8Bd590w clusterrole.rbac.authorization.k8s.io/percona-server-mongodb-operator created serviceaccount/percona-server-mongodb-operator created clusterrolebinding.rbac.authorization.k8s.io/service-account-percona-server-mongodb-operator created + cat /tmp/tmp.seoeAWQaag + rm /tmp/tmp.8LM8Bd590w /tmp/tmp.seoeAWQaag + return 0 + yq eval ' (.spec.template.spec.containers[].image = "docker.io/perconalab/percona-server-mongodb-operator:PR-2287-ee944353") | ((.. | select(.[] == "DISABLE_TELEMETRY")) |= .value="true") | ((.. | select(.[] == "LOG_LEVEL")) |= .value="DEBUG")' /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2287/deploy/cw-operator.yaml + kubectl_bin apply -n psmdb-operator -f - ++ mktemp + local LAST_OUT=/tmp/tmp.jw3GSDTesn ++ mktemp + local LAST_ERR=/tmp/tmp.SeyldE6nw3 + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl apply -n psmdb-operator -f - + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.jw3GSDTesn deployment.apps/percona-server-mongodb-operator created + cat /tmp/tmp.SeyldE6nw3 + rm /tmp/tmp.jw3GSDTesn /tmp/tmp.SeyldE6nw3 + return 0 + sleep 20 ++ get_operator_pod ++ kubectl_bin get pods --selector=name=percona-server-mongodb-operator -o 'jsonpath={.items[].metadata.name}' -n psmdb-operator +++ mktemp ++ local LAST_OUT=/tmp/tmp.Unz17m1Bn7 +++ mktemp ++ local LAST_ERR=/tmp/tmp.FeNKkXqcqQ ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get pods --selector=name=percona-server-mongodb-operator -o 'jsonpath={.items[].metadata.name}' -n psmdb-operator ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.Unz17m1Bn7 ++ cat /tmp/tmp.FeNKkXqcqQ ++ rm /tmp/tmp.Unz17m1Bn7 /tmp/tmp.FeNKkXqcqQ ++ return 0 + wait_operator_pod percona-server-mongodb-operator-5467dbf546-k2tks + local pod=percona-server-mongodb-operator-5467dbf546-k2tks + set +o xtrace waiting for pod/percona-server-mongodb-operator-5467dbf546-k2tks to be ready.OK + echo 'Print operator info from log' Print operator info from log ++ get_operator_pod + grep 'Manager starting up' ++ kubectl_bin get pods --selector=name=percona-server-mongodb-operator -o 'jsonpath={.items[].metadata.name}' -n psmdb-operator +++ mktemp ++ local LAST_OUT=/tmp/tmp.l9jhSRfw0v +++ mktemp ++ local LAST_ERR=/tmp/tmp.CfJzO5g08v ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get pods --selector=name=percona-server-mongodb-operator -o 'jsonpath={.items[].metadata.name}' -n psmdb-operator ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.l9jhSRfw0v ++ cat /tmp/tmp.CfJzO5g08v ++ rm /tmp/tmp.l9jhSRfw0v /tmp/tmp.CfJzO5g08v ++ return 0 + kubectl_bin logs -n psmdb-operator percona-server-mongodb-operator-5467dbf546-k2tks ++ mktemp + local LAST_OUT=/tmp/tmp.Vgn79s0vfu ++ mktemp + local LAST_ERR=/tmp/tmp.ox2euX70Up + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl logs -n psmdb-operator percona-server-mongodb-operator-5467dbf546-k2tks + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.Vgn79s0vfu + cat /tmp/tmp.ox2euX70Up + rm /tmp/tmp.Vgn79s0vfu /tmp/tmp.ox2euX70Up + return 0 2026-03-26T09:34:57.801Z INFO setup Manager starting up {"gitCommit": "ee94435304adb1efd9e68c7306fd5cf40176592e", "gitBranch": "PR-2287-ee944353", "buildTime": "", "goVersion": "go1.25.8", "os": "linux", "arch": "amd64"} + create_namespace pitr-physical-8930 + local namespace=pitr-physical-8930 + local skip_clean_namespace= + [[ 1 == 1 ]] + [[ -z '' ]] + destroy_chaos_mesh ++ tail -n1 ++ helm list --all-namespaces --filter chaos-mesh ++ sed s/NAMESPACE// ++ awk '-F ' '{print $2}' + local chaos_mesh_ns= + desc 'destroy chaos-mesh' + set +o xtrace ----------------------------------------------------------------------------------- destroy chaos-mesh ----------------------------------------------------------------------------------- + '[' -n '' ']' ++ kubectl get MutatingWebhookConfiguration ++ grep chaos-mesh ++ awk '{print $1}' + timeout 30 kubectl delete MutatingWebhookConfiguration error: resource(s) were provided, but no name was specified + : ++ awk '{print $1}' ++ grep chaos-mesh ++ kubectl get ValidatingWebhookConfiguration + timeout 30 kubectl delete ValidatingWebhookConfiguration error: resource(s) were provided, but no name was specified + : ++ kubectl get ValidatingWebhookConfiguration ++ grep validate-auth ++ awk '{print $1}' + timeout 30 kubectl delete ValidatingWebhookConfiguration error: resource(s) were provided, but no name was specified + : ++ kubectl api-resources ++ grep chaos-mesh ++ awk '{print $1}' ++ awk '{print $1}' ++ grep chaos-mesh.org ++ kubectl get crd + timeout 30 kubectl delete crd error: resource(s) were provided, but no name was specified + : ++ kubectl get clusterrolebinding ++ grep chaos-mesh ++ awk '{print $1}' + timeout 30 kubectl delete clusterrolebinding error: resource(s) were provided, but no name was specified + : ++ kubectl get clusterrole ++ grep chaos-mesh ++ awk '{print $1}' + timeout 30 kubectl delete clusterrole error: resource(s) were provided, but no name was specified + : + desc 'cleaned up all old namespaces' + set +o xtrace ----------------------------------------------------------------------------------- cleaned up all old namespaces ----------------------------------------------------------------------------------- + kubectl_bin get ns + grep -E -v '^kube-|^default|Terminating|psmdb-operator|openshift|^gke-|^gmp-|^NAME' ++ mktemp + awk '{print$1}' + xargs kubectl delete ns + local LAST_OUT=/tmp/tmp.BawKilOVzp + '[' -n '' ']' + desc 'cleaned up old namespaces pitr-physical-8930' + set +o xtrace ++ mktemp ----------------------------------------------------------------------------------- cleaned up old namespaces pitr-physical-8930 ----------------------------------------------------------------------------------- + kubectl_bin delete namespace pitr-physical-8930 --ignore-not-found ++ mktemp + local LAST_ERR=/tmp/tmp.d4yuygWPjn + local exit_status=0 + local timeout=4 ++ seq 0 2 + local LAST_OUT=/tmp/tmp.KbZ4TR6WVM ++ mktemp + local LAST_ERR=/tmp/tmp.CLr9FY0D0O + local exit_status=0 + local timeout=4 + for i in $(seq 0 2) + set +e + kubectl get ns ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl delete namespace pitr-physical-8930 --ignore-not-found + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.BawKilOVzp + cat /tmp/tmp.d4yuygWPjn + rm /tmp/tmp.BawKilOVzp /tmp/tmp.d4yuygWPjn + return 0 error: resource(s) were provided, but no name was specified + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.KbZ4TR6WVM + cat /tmp/tmp.CLr9FY0D0O + rm /tmp/tmp.KbZ4TR6WVM /tmp/tmp.CLr9FY0D0O + return 0 + kubectl_bin wait --for=delete namespace pitr-physical-8930 ++ mktemp + local LAST_OUT=/tmp/tmp.kWHtoKKLXS ++ mktemp + local LAST_ERR=/tmp/tmp.eZUffeHuYN + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl wait --for=delete namespace pitr-physical-8930 + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.kWHtoKKLXS + cat /tmp/tmp.eZUffeHuYN + rm /tmp/tmp.kWHtoKKLXS /tmp/tmp.eZUffeHuYN + return 0 + desc 'create namespace pitr-physical-8930' + set +o xtrace ----------------------------------------------------------------------------------- create namespace pitr-physical-8930 ----------------------------------------------------------------------------------- + kubectl_bin create namespace pitr-physical-8930 ++ mktemp + local LAST_OUT=/tmp/tmp.jSZ1AlpCvM ++ mktemp + local LAST_ERR=/tmp/tmp.JUZvFWAZNI + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl create namespace pitr-physical-8930 + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.jSZ1AlpCvM namespace/pitr-physical-8930 created + cat /tmp/tmp.JUZvFWAZNI + rm /tmp/tmp.jSZ1AlpCvM /tmp/tmp.JUZvFWAZNI + return 0 + set_kube_ctx pitr-physical-8930 + local namespace=pitr-physical-8930 ++ kubectl_bin config current-context +++ mktemp ++ local LAST_OUT=/tmp/tmp.xI14tLL4ZV +++ mktemp ++ local LAST_ERR=/tmp/tmp.PC0XFHNJCe ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl config current-context ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.xI14tLL4ZV ++ cat /tmp/tmp.PC0XFHNJCe ++ rm /tmp/tmp.xI14tLL4ZV /tmp/tmp.PC0XFHNJCe ++ return 0 + kubectl_bin config set-context gke_cloud-dev-112233_us-central1-a_jen-psmdb-2287-ee944353-4-cluster14 --namespace=pitr-physical-8930 ++ mktemp + local LAST_OUT=/tmp/tmp.P1zbLz4Lci ++ mktemp + local LAST_ERR=/tmp/tmp.Vm0jEsTCF9 + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl config set-context gke_cloud-dev-112233_us-central1-a_jen-psmdb-2287-ee944353-4-cluster14 --namespace=pitr-physical-8930 + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.P1zbLz4Lci Context "gke_cloud-dev-112233_us-central1-a_jen-psmdb-2287-ee944353-4-cluster14" modified. + cat /tmp/tmp.Vm0jEsTCF9 + rm /tmp/tmp.P1zbLz4Lci /tmp/tmp.Vm0jEsTCF9 + return 0 + deploy_minio + local cert_secret= + local service_name=minio-service + desc 'install MinIO: minio-service' + set +o xtrace ----------------------------------------------------------------------------------- install MinIO: minio-service ----------------------------------------------------------------------------------- + helm uninstall minio-service + : + helm repo remove minio "minio" has been removed from your repositories + helm repo add minio https://charts.min.io/ "minio" has been added to your repositories + local endpoint=http://minio-service:9000 + minio_args=('--version' '5.4.0' '--set' 'replicas=1' '--set' 'mode=standalone' '--set' 'resources.requests.memory=256Mi' '--set' 'rootUser=rootuser' '--set' 'rootPassword=rootpass123' '--set' 'users[0].accessKey=some-access-key' '--set' 'users[0].secretKey=some-secret-key' '--set' 'users[0].policy=consoleAdmin' '--set' 'service.type=ClusterIP' '--set' 'configPathmc=/tmp/' '--set' 'securityContext.enabled=false' '--set' 'persistence.size=2G' '--set' 'fullnameOverride=minio-service' '--set' 'serviceAccount.create=true' '--set' 'serviceAccount.name=minio-service-sa') + local minio_args + [[ -n '' ]] + retry 10 60 helm install minio-service --version 5.4.0 --set replicas=1 --set mode=standalone --set resources.requests.memory=256Mi --set rootUser=rootuser --set rootPassword=rootpass123 --set 'users[0].accessKey=some-access-key' --set 'users[0].secretKey=some-secret-key' --set 'users[0].policy=consoleAdmin' --set service.type=ClusterIP --set configPathmc=/tmp/ --set securityContext.enabled=false --set persistence.size=2G --set fullnameOverride=minio-service --set serviceAccount.create=true --set serviceAccount.name=minio-service-sa minio/minio + local max=10 + local delay=60 + shift 2 + local n=1 + helm install minio-service --version 5.4.0 --set replicas=1 --set mode=standalone --set resources.requests.memory=256Mi --set rootUser=rootuser --set rootPassword=rootpass123 --set 'users[0].accessKey=some-access-key' --set 'users[0].secretKey=some-secret-key' --set 'users[0].policy=consoleAdmin' --set service.type=ClusterIP --set configPathmc=/tmp/ --set securityContext.enabled=false --set persistence.size=2G --set fullnameOverride=minio-service --set serviceAccount.create=true --set serviceAccount.name=minio-service-sa minio/minio NAME: minio-service LAST DEPLOYED: Thu Mar 26 09:35:36 2026 NAMESPACE: pitr-physical-8930 STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: MinIO can be accessed via port 9000 on the following DNS name from within your cluster: minio-service.pitr-physical-8930.cluster.local To access MinIO from localhost, run the below commands: 1. export POD_NAME=$(kubectl get pods --namespace pitr-physical-8930 -l "release=minio-service" -o jsonpath="{.items[0].metadata.name}") 2. kubectl port-forward $POD_NAME 9000 --namespace pitr-physical-8930 Read more about port forwarding here: http://kubernetes.io/docs/user-guide/kubectl/kubectl_port-forward/ You can now access MinIO server on http://localhost:9000. Follow the below steps to connect to MinIO server with mc client: 1. Download the MinIO mc client - https://min.io/docs/minio/linux/reference/minio-mc.html#quickstart 2. export MC_HOST_minio-service-local=http://$(kubectl get secret --namespace pitr-physical-8930 minio-service -o jsonpath="{.data.rootUser}" | base64 --decode):$(kubectl get secret --namespace pitr-physical-8930 minio-service -o jsonpath="{.data.rootPassword}" | base64 --decode)@localhost:9000 3. mc ls minio-service-local ++ kubectl_bin get pods --selector=release=minio-service -o 'jsonpath={.items[].metadata.name}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.cpq22KBH11 +++ mktemp ++ local LAST_ERR=/tmp/tmp.jh8xiihWCR ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get pods --selector=release=minio-service -o 'jsonpath={.items[].metadata.name}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.cpq22KBH11 ++ cat /tmp/tmp.jh8xiihWCR ++ rm /tmp/tmp.cpq22KBH11 /tmp/tmp.jh8xiihWCR ++ return 0 + local MINIO_POD=minio-service-6d5f646cdc-hmnrz + wait_pod minio-service-6d5f646cdc-hmnrz + local pod=minio-service-6d5f646cdc-hmnrz + set +o xtrace waiting for pod/minio-service-6d5f646cdc-hmnrz to be ready.OK + '[' -n psmdb-operator ']' + kubectl_bin create svc -n psmdb-operator externalname minio-service --external-name=minio-service.pitr-physical-8930.svc.cluster.local --tcp=9000 service/minio-service created + create_minio_bucket operator-testing http://minio-service:9000 + local bucket=operator-testing + local endpoint=http://minio-service:9000 + kubectl_bin run -i --rm aws-cli --image=docker.io/perconalab/awscli --restart=Never -- bash -c 'AWS_ACCESS_KEY_ID=some-access-key AWS_SECRET_ACCESS_KEY=some-secret-key AWS_DEFAULT_REGION=us-east-1 /usr/bin/aws --no-verify-ssl --endpoint-url http://minio-service:9000 s3 mb s3://operator-testing' ++ mktemp + local LAST_OUT=/tmp/tmp.qqX7aaTmbg ++ mktemp + local LAST_ERR=/tmp/tmp.sLw8GZ05mB + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl run -i --rm aws-cli --image=docker.io/perconalab/awscli --restart=Never -- bash -c 'AWS_ACCESS_KEY_ID=some-access-key AWS_SECRET_ACCESS_KEY=some-secret-key AWS_DEFAULT_REGION=us-east-1 /usr/bin/aws --no-verify-ssl --endpoint-url http://minio-service:9000 s3 mb s3://operator-testing' + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.qqX7aaTmbg make_bucket: operator-testing pod "aws-cli" deleted from pitr-physical-8930 namespace + cat /tmp/tmp.sLw8GZ05mB All commands and output from this session will be recorded in container logs, including credentials and sensitive information passed through the command prompt. If you don't see a command prompt, try pressing enter. warning: couldn't attach to pod/aws-cli, falling back to streaming logs: Internal error occurred: unable to upgrade connection: container aws-cli not found in pod aws-cli_pitr-physical-8930 + rm /tmp/tmp.qqX7aaTmbg /tmp/tmp.sLw8GZ05mB + return 0 + desc 'create secrets and start client' + set +o xtrace ----------------------------------------------------------------------------------- create secrets and start client ----------------------------------------------------------------------------------- + kubectl_bin apply -f /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2287/e2e-tests/conf/secrets.yml -f /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2287/e2e-tests/conf/client.yml -f /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2287/e2e-tests/conf/minio-secret.yml ++ mktemp + local LAST_OUT=/tmp/tmp.RmtOgKFHDY ++ mktemp + local LAST_ERR=/tmp/tmp.QY2lIvhvDP + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl apply -f /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2287/e2e-tests/conf/secrets.yml -f /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2287/e2e-tests/conf/client.yml -f /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2287/e2e-tests/conf/minio-secret.yml + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.RmtOgKFHDY secret/some-users created deployment.apps/psmdb-client created secret/minio-secret created + cat /tmp/tmp.QY2lIvhvDP + rm /tmp/tmp.RmtOgKFHDY /tmp/tmp.QY2lIvhvDP + return 0 + cluster=some-name + desc 'create first PSMDB cluster some-name' + set +o xtrace ----------------------------------------------------------------------------------- create first PSMDB cluster some-name ----------------------------------------------------------------------------------- + apply_cluster /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2287/e2e-tests/pitr-physical/conf/some-name-rs0.yml + '[' -z '' ']' + cat_config /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2287/e2e-tests/pitr-physical/conf/some-name-rs0.yml + kubectl_bin apply -f - ++ mktemp + cat /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2287/e2e-tests/pitr-physical/conf/some-name-rs0.yml + yq eval '(.spec | select(.image == null)).image = "docker.io/perconalab/percona-server-mongodb-operator:main-mongod8.0"' + local LAST_OUT=/tmp/tmp.xRzCg6hvcc + yq eval '(.spec | select(has("pmm"))).pmm.image = "docker.io/percona/pmm-client:2.44.1-1"' + yq eval '(.spec | select(has("initImage"))).initImage = "docker.io/perconalab/percona-server-mongodb-operator:PR-2287-ee944353"' ++ mktemp + yq eval '(.spec | select(has("backup"))).backup.image = "docker.io/perconalab/percona-server-mongodb-operator:main-backup"' + /usr/sbin/sed -e s/NAME_SPACE/pitr-physical-8930/g + yq eval '.spec.upgradeOptions.apply="Never"' + local LAST_ERR=/tmp/tmp.73EgoIw1Cm + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl apply -f - + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.xRzCg6hvcc perconaservermongodb.psmdb.percona.com/some-name created + cat /tmp/tmp.73EgoIw1Cm + rm /tmp/tmp.xRzCg6hvcc /tmp/tmp.73EgoIw1Cm + return 0 + desc 'check if all 3 Pods started' + set +o xtrace ----------------------------------------------------------------------------------- check if all 3 Pods started ----------------------------------------------------------------------------------- + wait_for_running some-name-rs0 3 + local name=some-name-rs0 + let last_pod=2 + local check_cluster_readyness=true + set_debug + [[ 1 == 1 ]] + set -o xtrace + local rs_name=rs0 + local cluster_name=some-name ++ seq 0 2 + for i in $(seq 0 $last_pod) + [[ 0 -eq 2 ]] + wait_pod some-name-rs0-0 + local pod=some-name-rs0-0 + set +o xtrace waiting for pod/some-name-rs0-0 to be ready.....OK + for i in $(seq 0 $last_pod) + [[ 1 -eq 2 ]] + wait_pod some-name-rs0-1 + local pod=some-name-rs0-1 + set +o xtrace waiting for pod/some-name-rs0-1 to be ready.......OK + for i in $(seq 0 $last_pod) + [[ 2 -eq 2 ]] ++ kubectl_bin get psmdb some-name -o 'jsonpath={.spec.replsets[?(@.name=="rs0")].arbiter.enabled}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.MuSACsLK7r +++ mktemp ++ local LAST_ERR=/tmp/tmp.nxcVN2Gcwq ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb some-name -o 'jsonpath={.spec.replsets[?(@.name=="rs0")].arbiter.enabled}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.MuSACsLK7r ++ cat /tmp/tmp.nxcVN2Gcwq ++ rm /tmp/tmp.MuSACsLK7r /tmp/tmp.nxcVN2Gcwq ++ return 0 + [[ '' == \t\r\u\e ]] + wait_pod some-name-rs0-2 + local pod=some-name-rs0-2 + set +o xtrace waiting for pod/some-name-rs0-2 to be ready.....OK ++ kubectl_bin get psmdb some-name -o 'jsonpath={.spec.replsets[?(@.name=="rs0")].nonvoting.enabled}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.6qntHyohS6 +++ mktemp ++ local LAST_ERR=/tmp/tmp.5tfjmgbPXB ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb some-name -o 'jsonpath={.spec.replsets[?(@.name=="rs0")].nonvoting.enabled}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.6qntHyohS6 ++ cat /tmp/tmp.5tfjmgbPXB ++ rm /tmp/tmp.6qntHyohS6 /tmp/tmp.5tfjmgbPXB ++ return 0 + [[ '' == \t\r\u\e ]] ++ kubectl_bin get psmdb some-name -o 'jsonpath={.spec.replsets[?(@.name=="rs0")].hidden.enabled}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.b6tnGIJGM1 +++ mktemp ++ local LAST_ERR=/tmp/tmp.s0UHoOmLQA ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb some-name -o 'jsonpath={.spec.replsets[?(@.name=="rs0")].hidden.enabled}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.b6tnGIJGM1 ++ cat /tmp/tmp.s0UHoOmLQA ++ rm /tmp/tmp.b6tnGIJGM1 /tmp/tmp.s0UHoOmLQA ++ return 0 + [[ '' == \t\r\u\e ]] + sleep 10 + [[ true == \t\r\u\e ]] + set +x Waiting for cluster readyness................................................................................................................. + wait_for_running some-name-cfg 3 false + local name=some-name-cfg + let last_pod=2 + local check_cluster_readyness=false + set_debug + [[ 1 == 1 ]] + set -o xtrace + local rs_name=cfg + local cluster_name=some-name ++ seq 0 2 + for i in $(seq 0 $last_pod) + [[ 0 -eq 2 ]] + wait_pod some-name-cfg-0 + local pod=some-name-cfg-0 + set +o xtrace waiting for pod/some-name-cfg-0 to be ready.OK + for i in $(seq 0 $last_pod) + [[ 1 -eq 2 ]] + wait_pod some-name-cfg-1 + local pod=some-name-cfg-1 + set +o xtrace waiting for pod/some-name-cfg-1 to be ready.OK + for i in $(seq 0 $last_pod) + [[ 2 -eq 2 ]] ++ kubectl_bin get psmdb some-name -o 'jsonpath={.spec.replsets[?(@.name=="cfg")].arbiter.enabled}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.7EdHDZzUul +++ mktemp ++ local LAST_ERR=/tmp/tmp.VMPa8VD6FM ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb some-name -o 'jsonpath={.spec.replsets[?(@.name=="cfg")].arbiter.enabled}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.7EdHDZzUul ++ cat /tmp/tmp.VMPa8VD6FM ++ rm /tmp/tmp.7EdHDZzUul /tmp/tmp.VMPa8VD6FM ++ return 0 + [[ '' == \t\r\u\e ]] + wait_pod some-name-cfg-2 + local pod=some-name-cfg-2 + set +o xtrace waiting for pod/some-name-cfg-2 to be ready.OK ++ kubectl_bin get psmdb some-name -o 'jsonpath={.spec.replsets[?(@.name=="cfg")].nonvoting.enabled}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.oJ3eQ0W4Ab +++ mktemp ++ local LAST_ERR=/tmp/tmp.K1VMU656Xv ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb some-name -o 'jsonpath={.spec.replsets[?(@.name=="cfg")].nonvoting.enabled}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.oJ3eQ0W4Ab ++ cat /tmp/tmp.K1VMU656Xv ++ rm /tmp/tmp.oJ3eQ0W4Ab /tmp/tmp.K1VMU656Xv ++ return 0 + [[ '' == \t\r\u\e ]] ++ kubectl_bin get psmdb some-name -o 'jsonpath={.spec.replsets[?(@.name=="cfg")].hidden.enabled}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.nMDlGUU7Bl +++ mktemp ++ local LAST_ERR=/tmp/tmp.Y5NrlwZSYd ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb some-name -o 'jsonpath={.spec.replsets[?(@.name=="cfg")].hidden.enabled}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.nMDlGUU7Bl ++ cat /tmp/tmp.Y5NrlwZSYd ++ rm /tmp/tmp.nMDlGUU7Bl /tmp/tmp.Y5NrlwZSYd ++ return 0 + [[ '' == \t\r\u\e ]] + sleep 10 + [[ false == \t\r\u\e ]] + sleep 10 + desc 'write data' + set +o xtrace ----------------------------------------------------------------------------------- write data ----------------------------------------------------------------------------------- + write_initial_data + desc 'create user myApp' + set +o xtrace ----------------------------------------------------------------------------------- create user myApp ----------------------------------------------------------------------------------- + run_mongos 'db.createUser({user:"myApp",pwd:"myPass",roles:[{db:"myApp",role:"readWrite"}]})' userAdmin:userAdmin123456@some-name-mongos.pitr-physical-8930 + local 'command=db.createUser({user:"myApp",pwd:"myPass",roles:[{db:"myApp",role:"readWrite"}]})' + local uri=userAdmin:userAdmin123456@some-name-mongos.pitr-physical-8930 + local driver=mongodb + local suffix=.svc.cluster.local + local mongo_flag= + local port=27017 + local mongo_bin=mongo ++ echo .svc.cluster.local ++ awk -F: '{print $2}' + suffix_port= + [[ -z '' ]] + suffix=.svc.cluster.local:27017 ++ kubectl_bin get pods --selector=name=psmdb-client -o 'jsonpath={.items[].metadata.name}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.tKTfhu5pHb +++ mktemp ++ local LAST_ERR=/tmp/tmp.BBMt7l2dwW ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get pods --selector=name=psmdb-client -o 'jsonpath={.items[].metadata.name}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.tKTfhu5pHb ++ cat /tmp/tmp.BBMt7l2dwW ++ rm /tmp/tmp.tKTfhu5pHb /tmp/tmp.BBMt7l2dwW ++ return 0 + local client_container=psmdb-client-bb8b97679-ddvkv + kubectl_bin exec psmdb-client-bb8b97679-ddvkv -- bash -c 'printf '\''db.createUser({user:"myApp",pwd:"myPass",roles:[{db:"myApp",role:"readWrite"}]})\n'\'' | mongo mongodb://userAdmin:userAdmin123456@some-name-mongos.pitr-physical-8930.svc.cluster.local:27017/admin ' ++ mktemp + local LAST_OUT=/tmp/tmp.fOPsBfnVUI ++ mktemp + local LAST_ERR=/tmp/tmp.20AAujqDVy + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl exec psmdb-client-bb8b97679-ddvkv -- bash -c 'printf '\''db.createUser({user:"myApp",pwd:"myPass",roles:[{db:"myApp",role:"readWrite"}]})\n'\'' | mongo mongodb://userAdmin:userAdmin123456@some-name-mongos.pitr-physical-8930.svc.cluster.local:27017/admin ' + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.fOPsBfnVUI Percona Server for MongoDB shell version v4.4.29-28 connecting to: mongodb://some-name-mongos.pitr-physical-8930.svc.cluster.local:27017/admin?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("6796f6dc-67c6-4ae1-8150-78c7aa1a515d") } Percona Server for MongoDB server version: v8.0.19-7 WARNING: shell and server versions do not match Successfully added user: { "user" : "myApp", "roles" : [ { "db" : "myApp", "role" : "readWrite" } ] } bye + cat /tmp/tmp.20AAujqDVy + rm /tmp/tmp.fOPsBfnVUI /tmp/tmp.20AAujqDVy + return 0 + sleep 2 + write_document + local cmp_postfix= + local sleep_value=0 + log 'write initial data, read from all' + set +o xtrace [2026-03-26T09:42:08+0000] write initial data, read from all + run_mongos 'use myApp\n db.test.insert({ x: 100500 })' myApp:myPass@some-name-mongos.pitr-physical-8930 + local 'command=use myApp\n db.test.insert({ x: 100500 })' + local uri=myApp:myPass@some-name-mongos.pitr-physical-8930 + local driver=mongodb + local suffix=.svc.cluster.local + local mongo_flag= + local port=27017 + local mongo_bin=mongo ++ echo .svc.cluster.local ++ awk -F: '{print $2}' + suffix_port= + [[ -z '' ]] + suffix=.svc.cluster.local:27017 ++ kubectl_bin get pods --selector=name=psmdb-client -o 'jsonpath={.items[].metadata.name}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.I4TA1fQbS0 +++ mktemp ++ local LAST_ERR=/tmp/tmp.Ukvv6xKSiM ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get pods --selector=name=psmdb-client -o 'jsonpath={.items[].metadata.name}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.I4TA1fQbS0 ++ cat /tmp/tmp.Ukvv6xKSiM ++ rm /tmp/tmp.I4TA1fQbS0 /tmp/tmp.Ukvv6xKSiM ++ return 0 + local client_container=psmdb-client-bb8b97679-ddvkv + kubectl_bin exec psmdb-client-bb8b97679-ddvkv -- bash -c 'printf '\''use myApp\n db.test.insert({ x: 100500 })\n'\'' | mongo mongodb://myApp:myPass@some-name-mongos.pitr-physical-8930.svc.cluster.local:27017/admin ' ++ mktemp + local LAST_OUT=/tmp/tmp.7ChxyJbySD ++ mktemp + local LAST_ERR=/tmp/tmp.lcggo7PS4v + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl exec psmdb-client-bb8b97679-ddvkv -- bash -c 'printf '\''use myApp\n db.test.insert({ x: 100500 })\n'\'' | mongo mongodb://myApp:myPass@some-name-mongos.pitr-physical-8930.svc.cluster.local:27017/admin ' + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.7ChxyJbySD Percona Server for MongoDB shell version v4.4.29-28 connecting to: mongodb://some-name-mongos.pitr-physical-8930.svc.cluster.local:27017/admin?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("954176fd-3a98-4a52-9759-228a5b2e3b9c") } Percona Server for MongoDB server version: v8.0.19-7 WARNING: shell and server versions do not match switched to db myApp WriteResult({ "nInserted" : 1 }) bye + cat /tmp/tmp.lcggo7PS4v + rm /tmp/tmp.7ChxyJbySD /tmp/tmp.lcggo7PS4v + return 0 + sleep 0 + compare_mongos_cmd find myApp:myPass@some-name-mongos.pitr-physical-8930 + local command=find + local uri=myApp:myPass@some-name-mongos.pitr-physical-8930 + local postfix= + local suffix= + local database=myApp + local collection=test + local port=27017 + local tls=false + [[ false == \t\r\u\e ]] + mongos_command=run_mongos + log 'running db.test.command() in myApp' + set +o xtrace [2026-03-26T09:42:11+0000] running db.test.command() in myApp + run_mongos 'use myApp\n db.test.find()' myApp:myPass@some-name-mongos.pitr-physical-8930 mongodb '' '' 27017 + local 'command=use myApp\n db.test.find()' + local uri=myApp:myPass@some-name-mongos.pitr-physical-8930 + local driver=mongodb + local suffix=.svc.cluster.local + local mongo_flag= + local port=27017 + local mongo_bin=mongo + grep -E -v 'I NETWORK|W NETWORK|Error saving history file|Percona Server for MongoDB|connecting to:|Unable to reach primary for set|Implicit session:|versions do not match|Error saving history file:|Started a new thread for the timer service' + /usr/sbin/sed -re 's/ObjectId\("[0-9a-f]+"\)//; s/-[0-9]+.svc/-xxx.svc/' ++ echo .svc.cluster.local ++ awk -F: '{print $2}' + suffix_port= + [[ -z '' ]] + suffix=.svc.cluster.local:27017 ++ kubectl_bin get pods --selector=name=psmdb-client -o 'jsonpath={.items[].metadata.name}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.zv4vnhicu8 +++ mktemp ++ local LAST_ERR=/tmp/tmp.IONbh5aFDS ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get pods --selector=name=psmdb-client -o 'jsonpath={.items[].metadata.name}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.zv4vnhicu8 ++ cat /tmp/tmp.IONbh5aFDS ++ rm /tmp/tmp.zv4vnhicu8 /tmp/tmp.IONbh5aFDS ++ return 0 + local client_container=psmdb-client-bb8b97679-ddvkv + kubectl_bin exec psmdb-client-bb8b97679-ddvkv -- bash -c 'printf '\''use myApp\n db.test.find()\n'\'' | mongo mongodb://myApp:myPass@some-name-mongos.pitr-physical-8930.svc.cluster.local:27017/admin ' ++ mktemp + local LAST_OUT=/tmp/tmp.uRMmBAcda6 ++ mktemp + local LAST_ERR=/tmp/tmp.gUIpcxJhBw + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl exec psmdb-client-bb8b97679-ddvkv -- bash -c 'printf '\''use myApp\n db.test.find()\n'\'' | mongo mongodb://myApp:myPass@some-name-mongos.pitr-physical-8930.svc.cluster.local:27017/admin ' + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.uRMmBAcda6 + cat /tmp/tmp.gUIpcxJhBw + rm /tmp/tmp.uRMmBAcda6 /tmp/tmp.gUIpcxJhBw + return 0 + [[ 0 -eq 0 ]] + diff /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2287/e2e-tests/pitr-physical/compare/find.json /tmp/tmp.FoAr9ScJJ8/find + desc 'wait for pbm agents to start' + set +o xtrace ----------------------------------------------------------------------------------- wait for pbm agents to start ----------------------------------------------------------------------------------- + wait_backup_agent some-name-rs0-0 + local agent_pod=some-name-rs0-0 + set +o xtrace waiting for pbm-agent to be ready in some-name-rs0-0...2026-03-26T09:41:17.000+0000 I listening for the commands + wait_backup_agent some-name-rs0-1 + local agent_pod=some-name-rs0-1 + set +o xtrace waiting for pbm-agent to be ready in some-name-rs0-1...2026-03-26T09:41:18.000+0000 I listening for the commands + wait_backup_agent some-name-rs0-2 + local agent_pod=some-name-rs0-2 + set +o xtrace waiting for pbm-agent to be ready in some-name-rs0-2...2026-03-26T09:41:28.000+0000 I listening for the commands + wait_backup_agent some-name-rs1-0 + local agent_pod=some-name-rs1-0 + set +o xtrace waiting for pbm-agent to be ready in some-name-rs1-0...2026-03-26T09:41:18.000+0000 I listening for the commands + wait_backup_agent some-name-rs1-1 + local agent_pod=some-name-rs1-1 + set +o xtrace waiting for pbm-agent to be ready in some-name-rs1-1...2026-03-26T09:41:19.000+0000 I listening for the commands + wait_backup_agent some-name-rs1-2 + local agent_pod=some-name-rs1-2 + set +o xtrace waiting for pbm-agent to be ready in some-name-rs1-2...2026-03-26T09:41:29.000+0000 I listening for the commands + wait_backup_agent some-name-rs2-0 + local agent_pod=some-name-rs2-0 + set +o xtrace waiting for pbm-agent to be ready in some-name-rs2-0...2026-03-26T09:41:16.000+0000 I listening for the commands + wait_backup_agent some-name-rs2-1 + local agent_pod=some-name-rs2-1 + set +o xtrace waiting for pbm-agent to be ready in some-name-rs2-1...2026-03-26T09:41:20.000+0000 I listening for the commands + wait_backup_agent some-name-rs2-2 + local agent_pod=some-name-rs2-2 + set +o xtrace waiting for pbm-agent to be ready in some-name-rs2-2...2026-03-26T09:41:30.000+0000 I listening for the commands + log 'Sleeping for 360 seconds to avoid PBM-1265' + set +o xtrace [2026-03-26T09:42:25+0000] Sleeping for 360 seconds to avoid PBM-1265 + sleep 360 + backup_name_minio=backup-minio + run_backup backup-minio 2 physical + local name=backup-minio + local idx=2 + local type=physical + desc 'run backup backup-minio-2' + set +o xtrace ----------------------------------------------------------------------------------- run backup backup-minio-2 ----------------------------------------------------------------------------------- + cat /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2287/e2e-tests/pitr-physical/conf/backup-minio.yml + /usr/sbin/sed -e 's/name:/name: backup-minio-2/' + /usr/sbin/sed -e 's/type:/type: physical/' + kubectl_bin apply -f - ++ mktemp + local LAST_OUT=/tmp/tmp.Sectccjfay ++ mktemp + local LAST_ERR=/tmp/tmp.nY6xC2LnT8 + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl apply -f - + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.Sectccjfay perconaservermongodbbackup.psmdb.percona.com/backup-minio-2 created + cat /tmp/tmp.nY6xC2LnT8 + rm /tmp/tmp.Sectccjfay /tmp/tmp.nY6xC2LnT8 + return 0 + wait_backup backup-minio-2 + local backup_name=backup-minio-2 + local target_state=ready + set +o xtrace waiting for backup-minio-2 to reach ready state..........OK + sleep 5 + write_document -2nd 130 + local cmp_postfix=-2nd + local sleep_value=130 + log 'write initial data, read from all' + set +o xtrace [2026-03-26T09:48:50+0000] write initial data, read from all + run_mongos 'use myApp\n db.test.insert({ x: 100500 })' myApp:myPass@some-name-mongos.pitr-physical-8930 + local 'command=use myApp\n db.test.insert({ x: 100500 })' + local uri=myApp:myPass@some-name-mongos.pitr-physical-8930 + local driver=mongodb + local suffix=.svc.cluster.local + local mongo_flag= + local port=27017 + local mongo_bin=mongo ++ echo .svc.cluster.local ++ awk -F: '{print $2}' + suffix_port= + [[ -z '' ]] + suffix=.svc.cluster.local:27017 ++ kubectl_bin get pods --selector=name=psmdb-client -o 'jsonpath={.items[].metadata.name}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.bu9fq9L8Py +++ mktemp ++ local LAST_ERR=/tmp/tmp.vNV8DFpFz4 ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get pods --selector=name=psmdb-client -o 'jsonpath={.items[].metadata.name}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.bu9fq9L8Py ++ cat /tmp/tmp.vNV8DFpFz4 ++ rm /tmp/tmp.bu9fq9L8Py /tmp/tmp.vNV8DFpFz4 ++ return 0 + local client_container=psmdb-client-bb8b97679-ddvkv + kubectl_bin exec psmdb-client-bb8b97679-ddvkv -- bash -c 'printf '\''use myApp\n db.test.insert({ x: 100500 })\n'\'' | mongo mongodb://myApp:myPass@some-name-mongos.pitr-physical-8930.svc.cluster.local:27017/admin ' ++ mktemp + local LAST_OUT=/tmp/tmp.zxmVHte0D4 ++ mktemp + local LAST_ERR=/tmp/tmp.6bIhniARpl + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl exec psmdb-client-bb8b97679-ddvkv -- bash -c 'printf '\''use myApp\n db.test.insert({ x: 100500 })\n'\'' | mongo mongodb://myApp:myPass@some-name-mongos.pitr-physical-8930.svc.cluster.local:27017/admin ' + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.zxmVHte0D4 Percona Server for MongoDB shell version v4.4.29-28 connecting to: mongodb://some-name-mongos.pitr-physical-8930.svc.cluster.local:27017/admin?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("11752ba5-ba9a-48d4-8e98-8764d01c0af4") } Percona Server for MongoDB server version: v8.0.19-7 WARNING: shell and server versions do not match switched to db myApp WriteResult({ "nInserted" : 1 }) bye + cat /tmp/tmp.6bIhniARpl + rm /tmp/tmp.zxmVHte0D4 /tmp/tmp.6bIhniARpl + return 0 + sleep 130 + compare_mongos_cmd find myApp:myPass@some-name-mongos.pitr-physical-8930 -2nd + local command=find + local uri=myApp:myPass@some-name-mongos.pitr-physical-8930 + local postfix=-2nd + local suffix= + local database=myApp + local collection=test + local port=27017 + local tls=false + [[ false == \t\r\u\e ]] + mongos_command=run_mongos + log 'running db.test.command() in myApp' + set +o xtrace [2026-03-26T09:51:03+0000] running db.test.command() in myApp + run_mongos 'use myApp\n db.test.find()' myApp:myPass@some-name-mongos.pitr-physical-8930 mongodb '' '' 27017 + local 'command=use myApp\n db.test.find()' + local uri=myApp:myPass@some-name-mongos.pitr-physical-8930 + local driver=mongodb + local suffix=.svc.cluster.local + local mongo_flag= + local port=27017 + local mongo_bin=mongo + grep -E -v 'I NETWORK|W NETWORK|Error saving history file|Percona Server for MongoDB|connecting to:|Unable to reach primary for set|Implicit session:|versions do not match|Error saving history file:|Started a new thread for the timer service' + /usr/sbin/sed -re 's/ObjectId\("[0-9a-f]+"\)//; s/-[0-9]+.svc/-xxx.svc/' ++ echo .svc.cluster.local ++ awk -F: '{print $2}' + suffix_port= + [[ -z '' ]] + suffix=.svc.cluster.local:27017 ++ kubectl_bin get pods --selector=name=psmdb-client -o 'jsonpath={.items[].metadata.name}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.wvYjPAWzst +++ mktemp ++ local LAST_ERR=/tmp/tmp.ujjW94e5Au ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get pods --selector=name=psmdb-client -o 'jsonpath={.items[].metadata.name}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.wvYjPAWzst ++ cat /tmp/tmp.ujjW94e5Au ++ rm /tmp/tmp.wvYjPAWzst /tmp/tmp.ujjW94e5Au ++ return 0 + local client_container=psmdb-client-bb8b97679-ddvkv + kubectl_bin exec psmdb-client-bb8b97679-ddvkv -- bash -c 'printf '\''use myApp\n db.test.find()\n'\'' | mongo mongodb://myApp:myPass@some-name-mongos.pitr-physical-8930.svc.cluster.local:27017/admin ' ++ mktemp + local LAST_OUT=/tmp/tmp.wXuKDVnOjU ++ mktemp + local LAST_ERR=/tmp/tmp.5K3qYCiqoJ + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl exec psmdb-client-bb8b97679-ddvkv -- bash -c 'printf '\''use myApp\n db.test.find()\n'\'' | mongo mongodb://myApp:myPass@some-name-mongos.pitr-physical-8930.svc.cluster.local:27017/admin ' + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.wXuKDVnOjU + cat /tmp/tmp.5K3qYCiqoJ + rm /tmp/tmp.wXuKDVnOjU /tmp/tmp.5K3qYCiqoJ + return 0 + [[ 0 -eq 0 ]] + diff /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2287/e2e-tests/pitr-physical/compare/find-2nd.json /tmp/tmp.FoAr9ScJJ8/find-2nd ++ date +%s + last_write=1774518665 ++ get_latest_oplog_chunk_ts some-name ++ local cluster=some-name +++ kubectl_bin exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ jq '.backups.pitrChunks.pitrChunks | last | .range.end' ++++ mktemp +++ local LAST_OUT=/tmp/tmp.iFRyi8dJ1K ++++ mktemp +++ local LAST_ERR=/tmp/tmp.brCGmr4Jyl +++ local exit_status=0 +++ local timeout=4 ++++ seq 0 2 +++ for i in $(seq 0 2) +++ set +e +++ kubectl exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ exit_status=0 +++ set -e +++ '[' 0 '!=' 0 -a -n 1 ']' +++ break +++ cat /tmp/tmp.iFRyi8dJ1K +++ cat /tmp/tmp.brCGmr4Jyl +++ rm /tmp/tmp.iFRyi8dJ1K /tmp/tmp.brCGmr4Jyl +++ return 0 ++ echo 1774518554 + last_chunk=1774518554 + log 'last write: 1774518665' + set +o xtrace [2026-03-26T09:51:07+0000] last write: 1774518665 + log 'last chunk: 1774518554' + set +o xtrace [2026-03-26T09:51:07+0000] last chunk: 1774518554 + retries=0 + [[ 1774518554 -gt 1774518665 ]] + [[ 0 -gt 30 ]] ++ get_latest_oplog_chunk_ts some-name ++ local cluster=some-name +++ kubectl_bin exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ jq '.backups.pitrChunks.pitrChunks | last | .range.end' ++++ mktemp +++ local LAST_OUT=/tmp/tmp.VNgTl1y7Zm ++++ mktemp +++ local LAST_ERR=/tmp/tmp.M59lpHqBNw +++ local exit_status=0 +++ local timeout=4 ++++ seq 0 2 +++ for i in $(seq 0 2) +++ set +e +++ kubectl exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ exit_status=0 +++ set -e +++ '[' 0 '!=' 0 -a -n 1 ']' +++ break +++ cat /tmp/tmp.VNgTl1y7Zm +++ cat /tmp/tmp.M59lpHqBNw +++ rm /tmp/tmp.VNgTl1y7Zm /tmp/tmp.M59lpHqBNw +++ return 0 ++ echo 1774518554 + last_chunk=1774518554 + retries=1 ++ format_date 1774518554 ++ local timestamp=1774518554 +++ TZ=UTC +++ /usr/sbin/date -d@1774518554 '+%Y-%m-%d %H:%M:%S' ++ echo 2026-03-26 09:49:14 ++ format_date 1774518665 ++ local timestamp=1774518665 +++ TZ=UTC +++ /usr/sbin/date -d@1774518665 '+%Y-%m-%d %H:%M:%S' ++ echo 2026-03-26 09:51:05 + log 'Waiting for last oplog chunk (2026-03-26 09:49:14) to be greater than last write (2026-03-26 09:51:05)' + set +o xtrace [2026-03-26T09:51:10+0000] Waiting for last oplog chunk (2026-03-26 09:49:14) to be greater than last write (2026-03-26 09:51:05) + sleep 10 + [[ 1774518554 -gt 1774518665 ]] + [[ 1 -gt 30 ]] ++ get_latest_oplog_chunk_ts some-name ++ local cluster=some-name +++ kubectl_bin exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ jq '.backups.pitrChunks.pitrChunks | last | .range.end' ++++ mktemp +++ local LAST_OUT=/tmp/tmp.pGQYOIf1TB ++++ mktemp +++ local LAST_ERR=/tmp/tmp.mChvTZH7TF +++ local exit_status=0 +++ local timeout=4 ++++ seq 0 2 +++ for i in $(seq 0 2) +++ set +e +++ kubectl exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ exit_status=0 +++ set -e +++ '[' 0 '!=' 0 -a -n 1 ']' +++ break +++ cat /tmp/tmp.pGQYOIf1TB +++ cat /tmp/tmp.mChvTZH7TF +++ rm /tmp/tmp.pGQYOIf1TB /tmp/tmp.mChvTZH7TF +++ return 0 ++ echo 1774518554 + last_chunk=1774518554 + retries=2 ++ format_date 1774518554 ++ local timestamp=1774518554 +++ TZ=UTC +++ /usr/sbin/date -d@1774518554 '+%Y-%m-%d %H:%M:%S' ++ echo 2026-03-26 09:49:14 ++ format_date 1774518665 ++ local timestamp=1774518665 +++ TZ=UTC +++ /usr/sbin/date -d@1774518665 '+%Y-%m-%d %H:%M:%S' ++ echo 2026-03-26 09:51:05 + log 'Waiting for last oplog chunk (2026-03-26 09:49:14) to be greater than last write (2026-03-26 09:51:05)' + set +o xtrace [2026-03-26T09:51:22+0000] Waiting for last oplog chunk (2026-03-26 09:49:14) to be greater than last write (2026-03-26 09:51:05) + sleep 10 + [[ 1774518554 -gt 1774518665 ]] + [[ 2 -gt 30 ]] ++ get_latest_oplog_chunk_ts some-name ++ local cluster=some-name +++ kubectl_bin exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ jq '.backups.pitrChunks.pitrChunks | last | .range.end' ++++ mktemp +++ local LAST_OUT=/tmp/tmp.LHJYzJo5Xm ++++ mktemp +++ local LAST_ERR=/tmp/tmp.3T8RKu08wY +++ local exit_status=0 +++ local timeout=4 ++++ seq 0 2 +++ for i in $(seq 0 2) +++ set +e +++ kubectl exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ exit_status=0 +++ set -e +++ '[' 0 '!=' 0 -a -n 1 ']' +++ break +++ cat /tmp/tmp.LHJYzJo5Xm +++ cat /tmp/tmp.3T8RKu08wY +++ rm /tmp/tmp.LHJYzJo5Xm /tmp/tmp.3T8RKu08wY +++ return 0 ++ echo 1774518554 + last_chunk=1774518554 + retries=3 ++ format_date 1774518554 ++ local timestamp=1774518554 +++ TZ=UTC +++ /usr/sbin/date -d@1774518554 '+%Y-%m-%d %H:%M:%S' ++ echo 2026-03-26 09:49:14 ++ format_date 1774518665 ++ local timestamp=1774518665 +++ TZ=UTC +++ /usr/sbin/date -d@1774518665 '+%Y-%m-%d %H:%M:%S' ++ echo 2026-03-26 09:51:05 + log 'Waiting for last oplog chunk (2026-03-26 09:49:14) to be greater than last write (2026-03-26 09:51:05)' + set +o xtrace [2026-03-26T09:51:34+0000] Waiting for last oplog chunk (2026-03-26 09:49:14) to be greater than last write (2026-03-26 09:51:05) + sleep 10 + [[ 1774518554 -gt 1774518665 ]] + [[ 3 -gt 30 ]] ++ get_latest_oplog_chunk_ts some-name ++ local cluster=some-name +++ kubectl_bin exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ jq '.backups.pitrChunks.pitrChunks | last | .range.end' ++++ mktemp +++ local LAST_OUT=/tmp/tmp.dSkedlKq96 ++++ mktemp +++ local LAST_ERR=/tmp/tmp.O7nBeEk4uo +++ local exit_status=0 +++ local timeout=4 ++++ seq 0 2 +++ for i in $(seq 0 2) +++ set +e +++ kubectl exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ exit_status=0 +++ set -e +++ '[' 0 '!=' 0 -a -n 1 ']' +++ break +++ cat /tmp/tmp.dSkedlKq96 +++ cat /tmp/tmp.O7nBeEk4uo +++ rm /tmp/tmp.dSkedlKq96 /tmp/tmp.O7nBeEk4uo +++ return 0 ++ echo 1774518681 + last_chunk=1774518681 + retries=4 ++ format_date 1774518681 ++ local timestamp=1774518681 +++ TZ=UTC +++ /usr/sbin/date -d@1774518681 '+%Y-%m-%d %H:%M:%S' ++ echo 2026-03-26 09:51:21 ++ format_date 1774518665 ++ local timestamp=1774518665 +++ TZ=UTC +++ /usr/sbin/date -d@1774518665 '+%Y-%m-%d %H:%M:%S' ++ echo 2026-03-26 09:51:05 + log 'Waiting for last oplog chunk (2026-03-26 09:51:21) to be greater than last write (2026-03-26 09:51:05)' + set +o xtrace [2026-03-26T09:51:46+0000] Waiting for last oplog chunk (2026-03-26 09:51:21) to be greater than last write (2026-03-26 09:51:05) + sleep 10 + [[ 1774518681 -gt 1774518665 ]] + sleep 10 + check_recovery backup-minio-2 date 1774518681 -2nd some-name + local backup_name=backup-minio-2 + local restore_type=date + local restore_date=1774518681 + local cmp_postfix=-2nd + local cluster_name=some-name + local backupSource= ++ get_latest_oplog_chunk_ts some-name ++ local cluster=some-name +++ kubectl_bin exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ jq '.backups.pitrChunks.pitrChunks | last | .range.end' ++++ mktemp +++ local LAST_OUT=/tmp/tmp.BDvirQ1LH2 ++++ mktemp +++ local LAST_ERR=/tmp/tmp.Sq6tbYVs4e +++ local exit_status=0 +++ local timeout=4 ++++ seq 0 2 +++ for i in $(seq 0 2) +++ set +e +++ kubectl exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ exit_status=0 +++ set -e +++ '[' 0 '!=' 0 -a -n 1 ']' +++ break +++ cat /tmp/tmp.BDvirQ1LH2 +++ cat /tmp/tmp.Sq6tbYVs4e +++ rm /tmp/tmp.BDvirQ1LH2 /tmp/tmp.Sq6tbYVs4e +++ return 0 ++ echo 1774518681 + local latest_ts=1774518681 + desc 'write more data before restore by date' + set +o xtrace ----------------------------------------------------------------------------------- write more data before restore by date ----------------------------------------------------------------------------------- + run_mongos 'use myApp\n db.test.insert({ x: 100501 })' myApp:myPass@some-name-mongos.pitr-physical-8930 + local 'command=use myApp\n db.test.insert({ x: 100501 })' + local uri=myApp:myPass@some-name-mongos.pitr-physical-8930 + local driver=mongodb + local suffix=.svc.cluster.local + local mongo_flag= + local port=27017 + local mongo_bin=mongo ++ echo .svc.cluster.local ++ awk -F: '{print $2}' + suffix_port= + [[ -z '' ]] + suffix=.svc.cluster.local:27017 ++ kubectl_bin get pods --selector=name=psmdb-client -o 'jsonpath={.items[].metadata.name}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.TN7v48ihhw +++ mktemp ++ local LAST_ERR=/tmp/tmp.fJpoqOcbxo ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get pods --selector=name=psmdb-client -o 'jsonpath={.items[].metadata.name}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.TN7v48ihhw ++ cat /tmp/tmp.fJpoqOcbxo ++ rm /tmp/tmp.TN7v48ihhw /tmp/tmp.fJpoqOcbxo ++ return 0 + local client_container=psmdb-client-bb8b97679-ddvkv + kubectl_bin exec psmdb-client-bb8b97679-ddvkv -- bash -c 'printf '\''use myApp\n db.test.insert({ x: 100501 })\n'\'' | mongo mongodb://myApp:myPass@some-name-mongos.pitr-physical-8930.svc.cluster.local:27017/admin ' ++ mktemp + local LAST_OUT=/tmp/tmp.0hBuHfqgAp ++ mktemp + local LAST_ERR=/tmp/tmp.ZD5xtxGSab + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl exec psmdb-client-bb8b97679-ddvkv -- bash -c 'printf '\''use myApp\n db.test.insert({ x: 100501 })\n'\'' | mongo mongodb://myApp:myPass@some-name-mongos.pitr-physical-8930.svc.cluster.local:27017/admin ' + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.0hBuHfqgAp Percona Server for MongoDB shell version v4.4.29-28 connecting to: mongodb://some-name-mongos.pitr-physical-8930.svc.cluster.local:27017/admin?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("bb71da44-8fb3-43ff-b931-42db0ba9fa2d") } Percona Server for MongoDB server version: v8.0.19-7 WARNING: shell and server versions do not match switched to db myApp WriteResult({ "nInserted" : 1 }) bye + cat /tmp/tmp.ZD5xtxGSab + rm /tmp/tmp.0hBuHfqgAp /tmp/tmp.ZD5xtxGSab + return 0 + [[ -n 1774518681 ]] ++ format_date 1774518681 ++ local timestamp=1774518681 +++ TZ=UTC +++ /usr/sbin/date -d@1774518681 '+%Y-%m-%d %H:%M:%S' ++ echo 2026-03-26 09:51:21 + desc 'Restoring to time 2026-03-26 09:51:21' + set +o xtrace ----------------------------------------------------------------------------------- Restoring to time 2026-03-26 09:51:21 ----------------------------------------------------------------------------------- + retries=0 + [[ 1774518681 -gt 1774518681 ]] + [[ 0 -gt 30 ]] ++ get_latest_oplog_chunk_ts some-name ++ local cluster=some-name +++ kubectl_bin exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ jq '.backups.pitrChunks.pitrChunks | last | .range.end' ++++ mktemp +++ local LAST_OUT=/tmp/tmp.1VmsRPCXt7 ++++ mktemp +++ local LAST_ERR=/tmp/tmp.vZUjIkyp5m +++ local exit_status=0 +++ local timeout=4 ++++ seq 0 2 +++ for i in $(seq 0 2) +++ set +e +++ kubectl exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ exit_status=0 +++ set -e +++ '[' 0 '!=' 0 -a -n 1 ']' +++ break +++ cat /tmp/tmp.1VmsRPCXt7 +++ cat /tmp/tmp.vZUjIkyp5m +++ rm /tmp/tmp.1VmsRPCXt7 /tmp/tmp.vZUjIkyp5m +++ return 0 ++ echo 1774518681 + latest_ts=1774518681 + retries=1 ++ format_date 1774518681 ++ local timestamp=1774518681 +++ TZ=UTC +++ /usr/sbin/date -d@1774518681 '+%Y-%m-%d %H:%M:%S' ++ echo 2026-03-26 09:51:21 ++ format_date 1774518681 ++ local timestamp=1774518681 +++ TZ=UTC +++ /usr/sbin/date -d@1774518681 '+%Y-%m-%d %H:%M:%S' ++ echo 2026-03-26 09:51:21 + echo 'Waiting for last oplog chunk (2026-03-26 09:51:21) to be greater than restore target (2026-03-26 09:51:21)' Waiting for last oplog chunk (2026-03-26 09:51:21) to be greater than restore target (2026-03-26 09:51:21) + sleep 10 + [[ 1774518681 -gt 1774518681 ]] + [[ 1 -gt 30 ]] ++ get_latest_oplog_chunk_ts some-name ++ local cluster=some-name +++ kubectl_bin exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ jq '.backups.pitrChunks.pitrChunks | last | .range.end' ++++ mktemp +++ local LAST_OUT=/tmp/tmp.PQ5gT2xx8M ++++ mktemp +++ local LAST_ERR=/tmp/tmp.4Q26VLnupq +++ local exit_status=0 +++ local timeout=4 ++++ seq 0 2 +++ for i in $(seq 0 2) +++ set +e +++ kubectl exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ exit_status=0 +++ set -e +++ '[' 0 '!=' 0 -a -n 1 ']' +++ break +++ cat /tmp/tmp.PQ5gT2xx8M +++ cat /tmp/tmp.4Q26VLnupq +++ rm /tmp/tmp.PQ5gT2xx8M /tmp/tmp.4Q26VLnupq +++ return 0 ++ echo 1774518681 + latest_ts=1774518681 + retries=2 ++ format_date 1774518681 ++ local timestamp=1774518681 +++ TZ=UTC +++ /usr/sbin/date -d@1774518681 '+%Y-%m-%d %H:%M:%S' ++ echo 2026-03-26 09:51:21 ++ format_date 1774518681 ++ local timestamp=1774518681 +++ TZ=UTC +++ /usr/sbin/date -d@1774518681 '+%Y-%m-%d %H:%M:%S' ++ echo 2026-03-26 09:51:21 + echo 'Waiting for last oplog chunk (2026-03-26 09:51:21) to be greater than restore target (2026-03-26 09:51:21)' Waiting for last oplog chunk (2026-03-26 09:51:21) to be greater than restore target (2026-03-26 09:51:21) + sleep 10 + [[ 1774518681 -gt 1774518681 ]] + [[ 2 -gt 30 ]] ++ get_latest_oplog_chunk_ts some-name ++ local cluster=some-name +++ kubectl_bin exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ jq '.backups.pitrChunks.pitrChunks | last | .range.end' ++++ mktemp +++ local LAST_OUT=/tmp/tmp.6XowuAz2OG ++++ mktemp +++ local LAST_ERR=/tmp/tmp.K2svLkHJt1 +++ local exit_status=0 +++ local timeout=4 ++++ seq 0 2 +++ for i in $(seq 0 2) +++ set +e +++ kubectl exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ exit_status=0 +++ set -e +++ '[' 0 '!=' 0 -a -n 1 ']' +++ break +++ cat /tmp/tmp.6XowuAz2OG +++ cat /tmp/tmp.K2svLkHJt1 +++ rm /tmp/tmp.6XowuAz2OG /tmp/tmp.K2svLkHJt1 +++ return 0 ++ echo 1774518681 + latest_ts=1774518681 + retries=3 ++ format_date 1774518681 ++ local timestamp=1774518681 +++ TZ=UTC +++ /usr/sbin/date -d@1774518681 '+%Y-%m-%d %H:%M:%S' ++ echo 2026-03-26 09:51:21 ++ format_date 1774518681 ++ local timestamp=1774518681 +++ TZ=UTC +++ /usr/sbin/date -d@1774518681 '+%Y-%m-%d %H:%M:%S' ++ echo 2026-03-26 09:51:21 + echo 'Waiting for last oplog chunk (2026-03-26 09:51:21) to be greater than restore target (2026-03-26 09:51:21)' Waiting for last oplog chunk (2026-03-26 09:51:21) to be greater than restore target (2026-03-26 09:51:21) + sleep 10 + [[ 1774518681 -gt 1774518681 ]] + [[ 3 -gt 30 ]] ++ get_latest_oplog_chunk_ts some-name ++ local cluster=some-name +++ kubectl_bin exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ jq '.backups.pitrChunks.pitrChunks | last | .range.end' ++++ mktemp +++ local LAST_OUT=/tmp/tmp.g6yw1mXZ7C ++++ mktemp +++ local LAST_ERR=/tmp/tmp.BDKcANWuhd +++ local exit_status=0 +++ local timeout=4 ++++ seq 0 2 +++ for i in $(seq 0 2) +++ set +e +++ kubectl exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ exit_status=0 +++ set -e +++ '[' 0 '!=' 0 -a -n 1 ']' +++ break +++ cat /tmp/tmp.g6yw1mXZ7C +++ cat /tmp/tmp.BDKcANWuhd +++ rm /tmp/tmp.g6yw1mXZ7C /tmp/tmp.BDKcANWuhd +++ return 0 ++ echo 1774518681 + latest_ts=1774518681 + retries=4 ++ format_date 1774518681 ++ local timestamp=1774518681 +++ TZ=UTC +++ /usr/sbin/date -d@1774518681 '+%Y-%m-%d %H:%M:%S' ++ echo 2026-03-26 09:51:21 ++ format_date 1774518681 ++ local timestamp=1774518681 +++ TZ=UTC +++ /usr/sbin/date -d@1774518681 '+%Y-%m-%d %H:%M:%S' ++ echo 2026-03-26 09:51:21 + echo 'Waiting for last oplog chunk (2026-03-26 09:51:21) to be greater than restore target (2026-03-26 09:51:21)' Waiting for last oplog chunk (2026-03-26 09:51:21) to be greater than restore target (2026-03-26 09:51:21) + sleep 10 + [[ 1774518681 -gt 1774518681 ]] + [[ 4 -gt 30 ]] ++ get_latest_oplog_chunk_ts some-name ++ local cluster=some-name +++ kubectl_bin exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ jq '.backups.pitrChunks.pitrChunks | last | .range.end' ++++ mktemp +++ local LAST_OUT=/tmp/tmp.G6xCbhgG7p ++++ mktemp +++ local LAST_ERR=/tmp/tmp.DhHooqMqnu +++ local exit_status=0 +++ local timeout=4 ++++ seq 0 2 +++ for i in $(seq 0 2) +++ set +e +++ kubectl exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ exit_status=0 +++ set -e +++ '[' 0 '!=' 0 -a -n 1 ']' +++ break +++ cat /tmp/tmp.G6xCbhgG7p +++ cat /tmp/tmp.DhHooqMqnu +++ rm /tmp/tmp.G6xCbhgG7p /tmp/tmp.DhHooqMqnu +++ return 0 ++ echo 1774518681 + latest_ts=1774518681 + retries=5 ++ format_date 1774518681 ++ local timestamp=1774518681 +++ TZ=UTC +++ /usr/sbin/date -d@1774518681 '+%Y-%m-%d %H:%M:%S' ++ echo 2026-03-26 09:51:21 ++ format_date 1774518681 ++ local timestamp=1774518681 +++ TZ=UTC +++ /usr/sbin/date -d@1774518681 '+%Y-%m-%d %H:%M:%S' ++ echo 2026-03-26 09:51:21 + echo 'Waiting for last oplog chunk (2026-03-26 09:51:21) to be greater than restore target (2026-03-26 09:51:21)' Waiting for last oplog chunk (2026-03-26 09:51:21) to be greater than restore target (2026-03-26 09:51:21) + sleep 10 + [[ 1774518681 -gt 1774518681 ]] + [[ 5 -gt 30 ]] ++ get_latest_oplog_chunk_ts some-name ++ local cluster=some-name +++ kubectl_bin exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ jq '.backups.pitrChunks.pitrChunks | last | .range.end' ++++ mktemp +++ local LAST_OUT=/tmp/tmp.cBLkSIPOUL ++++ mktemp +++ local LAST_ERR=/tmp/tmp.VElbR0k87G +++ local exit_status=0 +++ local timeout=4 ++++ seq 0 2 +++ for i in $(seq 0 2) +++ set +e +++ kubectl exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ exit_status=0 +++ set -e +++ '[' 0 '!=' 0 -a -n 1 ']' +++ break +++ cat /tmp/tmp.cBLkSIPOUL +++ cat /tmp/tmp.VElbR0k87G +++ rm /tmp/tmp.cBLkSIPOUL /tmp/tmp.VElbR0k87G +++ return 0 ++ echo 1774518681 + latest_ts=1774518681 + retries=6 ++ format_date 1774518681 ++ local timestamp=1774518681 +++ TZ=UTC +++ /usr/sbin/date -d@1774518681 '+%Y-%m-%d %H:%M:%S' ++ echo 2026-03-26 09:51:21 ++ format_date 1774518681 ++ local timestamp=1774518681 +++ TZ=UTC +++ /usr/sbin/date -d@1774518681 '+%Y-%m-%d %H:%M:%S' ++ echo 2026-03-26 09:51:21 + echo 'Waiting for last oplog chunk (2026-03-26 09:51:21) to be greater than restore target (2026-03-26 09:51:21)' Waiting for last oplog chunk (2026-03-26 09:51:21) to be greater than restore target (2026-03-26 09:51:21) + sleep 10 + [[ 1774518681 -gt 1774518681 ]] + [[ 6 -gt 30 ]] ++ get_latest_oplog_chunk_ts some-name ++ local cluster=some-name +++ kubectl_bin exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ jq '.backups.pitrChunks.pitrChunks | last | .range.end' ++++ mktemp +++ local LAST_OUT=/tmp/tmp.7kncfAEVAq ++++ mktemp +++ local LAST_ERR=/tmp/tmp.HIvmQNpAhP +++ local exit_status=0 +++ local timeout=4 ++++ seq 0 2 +++ for i in $(seq 0 2) +++ set +e +++ kubectl exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ exit_status=0 +++ set -e +++ '[' 0 '!=' 0 -a -n 1 ']' +++ break +++ cat /tmp/tmp.7kncfAEVAq +++ cat /tmp/tmp.HIvmQNpAhP +++ rm /tmp/tmp.7kncfAEVAq /tmp/tmp.HIvmQNpAhP +++ return 0 ++ echo 1774518684 + latest_ts=1774518684 + retries=7 ++ format_date 1774518684 ++ local timestamp=1774518684 +++ TZ=UTC +++ /usr/sbin/date -d@1774518684 '+%Y-%m-%d %H:%M:%S' ++ echo 2026-03-26 09:51:24 ++ format_date 1774518681 ++ local timestamp=1774518681 +++ TZ=UTC +++ /usr/sbin/date -d@1774518681 '+%Y-%m-%d %H:%M:%S' ++ echo 2026-03-26 09:51:21 + echo 'Waiting for last oplog chunk (2026-03-26 09:51:24) to be greater than restore target (2026-03-26 09:51:21)' Waiting for last oplog chunk (2026-03-26 09:51:24) to be greater than restore target (2026-03-26 09:51:21) + sleep 10 + [[ 1774518684 -gt 1774518681 ]] + '[' -z '' ']' + desc 'check restore by date' + set +o xtrace ----------------------------------------------------------------------------------- check restore by date ----------------------------------------------------------------------------------- + cat /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2287/e2e-tests/pitr-physical/conf/restore.yml + /usr/sbin/sed -e 's/name:/name: restore-backup-minio-2/' + /usr/sbin/sed -e 's/backupName:/backupName: backup-minio-2/' + /usr/sbin/sed -e /backupSource/,+8d + /usr/sbin/sed -e 's/pitrType:/type: date/' + '[' -z 1774518681 ']' ++ format_date 1774518681 ++ local timestamp=1774518681 + kubectl_bin apply -f - +++ TZ=UTC ++ mktemp +++ /usr/sbin/date -d@1774518681 '+%Y-%m-%d %H:%M:%S' ++ echo 2026-03-26 09:51:21 + local LAST_OUT=/tmp/tmp.shOgICAcMD + /usr/sbin/sed -e 's/date:/date: 2026-03-26 09:51:21/' ++ mktemp + local LAST_ERR=/tmp/tmp.VVbYIRB0j5 + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl apply -f - + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.shOgICAcMD perconaservermongodbrestore.psmdb.percona.com/restore-backup-minio-2 created + cat /tmp/tmp.VVbYIRB0j5 + rm /tmp/tmp.shOgICAcMD /tmp/tmp.VVbYIRB0j5 + return 0 + wait_restore backup-minio-2 some-name requested 0 1200 + local backup_name=backup-minio-2 + local cluster_name=some-name + local target_state=requested + local wait_cluster_consistency=0 + local wait_time=1200 + local ok_if_ready=0 + set +o xtrace Waiting for the psmdb-restore/restore-backup-minio-2 object to be created.OK Waiting psmdb-restore/restore-backup-minio-2 to reach state "requested" ...............OK after 14 minutes + [[ 0 -eq 1 ]] + echo + wait_restore backup-minio-2 some-name ready 0 1600 + local backup_name=backup-minio-2 + local cluster_name=some-name + local target_state=ready + local wait_cluster_consistency=0 + local wait_time=1600 + local ok_if_ready=0 + set +o xtrace Waiting for the psmdb-restore/restore-backup-minio-2 object to be created.OK Waiting psmdb-restore/restore-backup-minio-2 to reach state "ready" ...OK after 2 minutes + [[ 0 -eq 1 ]] + echo + set -o xtrace + wait_for_running some-name-rs0 3 + local name=some-name-rs0 + let last_pod=2 + local check_cluster_readyness=true + set_debug + [[ 1 == 1 ]] + set -o xtrace + local rs_name=rs0 + local cluster_name=some-name ++ seq 0 2 + for i in $(seq 0 $last_pod) + [[ 0 -eq 2 ]] + wait_pod some-name-rs0-0 + local pod=some-name-rs0-0 + set +o xtrace waiting for pod/some-name-rs0-0 to be ready.OK + for i in $(seq 0 $last_pod) + [[ 1 -eq 2 ]] + wait_pod some-name-rs0-1 + local pod=some-name-rs0-1 + set +o xtrace waiting for pod/some-name-rs0-1 to be ready.OK + for i in $(seq 0 $last_pod) + [[ 2 -eq 2 ]] ++ kubectl_bin get psmdb some-name -o 'jsonpath={.spec.replsets[?(@.name=="rs0")].arbiter.enabled}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.qQ3b3R4gG8 +++ mktemp ++ local LAST_ERR=/tmp/tmp.FYIz0GSoKn ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb some-name -o 'jsonpath={.spec.replsets[?(@.name=="rs0")].arbiter.enabled}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.qQ3b3R4gG8 ++ cat /tmp/tmp.FYIz0GSoKn ++ rm /tmp/tmp.qQ3b3R4gG8 /tmp/tmp.FYIz0GSoKn ++ return 0 + [[ '' == \t\r\u\e ]] + wait_pod some-name-rs0-2 + local pod=some-name-rs0-2 + set +o xtrace waiting for pod/some-name-rs0-2 to be ready.OK ++ kubectl_bin get psmdb some-name -o 'jsonpath={.spec.replsets[?(@.name=="rs0")].nonvoting.enabled}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.RNBcb4m2Oi +++ mktemp ++ local LAST_ERR=/tmp/tmp.xiQ5UaMbTm ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb some-name -o 'jsonpath={.spec.replsets[?(@.name=="rs0")].nonvoting.enabled}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.RNBcb4m2Oi ++ cat /tmp/tmp.xiQ5UaMbTm ++ rm /tmp/tmp.RNBcb4m2Oi /tmp/tmp.xiQ5UaMbTm ++ return 0 + [[ '' == \t\r\u\e ]] ++ kubectl_bin get psmdb some-name -o 'jsonpath={.spec.replsets[?(@.name=="rs0")].hidden.enabled}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.nUK7zEcIGQ +++ mktemp ++ local LAST_ERR=/tmp/tmp.KWXGdk9DFa ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb some-name -o 'jsonpath={.spec.replsets[?(@.name=="rs0")].hidden.enabled}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.nUK7zEcIGQ ++ cat /tmp/tmp.KWXGdk9DFa ++ rm /tmp/tmp.nUK7zEcIGQ /tmp/tmp.KWXGdk9DFa ++ return 0 + [[ '' == \t\r\u\e ]] + sleep 10 + [[ true == \t\r\u\e ]] + set +x Waiting for cluster readyness......................................................................................................................................................... + wait_for_running some-name-cfg 3 + local name=some-name-cfg + let last_pod=2 + local check_cluster_readyness=true + set_debug + [[ 1 == 1 ]] + set -o xtrace + local rs_name=cfg + local cluster_name=some-name ++ seq 0 2 + for i in $(seq 0 $last_pod) + [[ 0 -eq 2 ]] + wait_pod some-name-cfg-0 + local pod=some-name-cfg-0 + set +o xtrace waiting for pod/some-name-cfg-0 to be ready.OK + for i in $(seq 0 $last_pod) + [[ 1 -eq 2 ]] + wait_pod some-name-cfg-1 + local pod=some-name-cfg-1 + set +o xtrace waiting for pod/some-name-cfg-1 to be ready.OK + for i in $(seq 0 $last_pod) + [[ 2 -eq 2 ]] ++ kubectl_bin get psmdb some-name -o 'jsonpath={.spec.replsets[?(@.name=="cfg")].arbiter.enabled}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.p0IUtWCjaU +++ mktemp ++ local LAST_ERR=/tmp/tmp.DwzHlzV0SI ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb some-name -o 'jsonpath={.spec.replsets[?(@.name=="cfg")].arbiter.enabled}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.p0IUtWCjaU ++ cat /tmp/tmp.DwzHlzV0SI ++ rm /tmp/tmp.p0IUtWCjaU /tmp/tmp.DwzHlzV0SI ++ return 0 + [[ '' == \t\r\u\e ]] + wait_pod some-name-cfg-2 + local pod=some-name-cfg-2 + set +o xtrace waiting for pod/some-name-cfg-2 to be ready.OK ++ kubectl_bin get psmdb some-name -o 'jsonpath={.spec.replsets[?(@.name=="cfg")].nonvoting.enabled}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.nHWS3yODVB +++ mktemp ++ local LAST_ERR=/tmp/tmp.oCAMFVHsIL ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb some-name -o 'jsonpath={.spec.replsets[?(@.name=="cfg")].nonvoting.enabled}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.nHWS3yODVB ++ cat /tmp/tmp.oCAMFVHsIL ++ rm /tmp/tmp.nHWS3yODVB /tmp/tmp.oCAMFVHsIL ++ return 0 + [[ '' == \t\r\u\e ]] ++ kubectl_bin get psmdb some-name -o 'jsonpath={.spec.replsets[?(@.name=="cfg")].hidden.enabled}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.eaXCq9wHCj +++ mktemp ++ local LAST_ERR=/tmp/tmp.OLhJIp2eLZ ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb some-name -o 'jsonpath={.spec.replsets[?(@.name=="cfg")].hidden.enabled}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.eaXCq9wHCj ++ cat /tmp/tmp.OLhJIp2eLZ ++ rm /tmp/tmp.eaXCq9wHCj /tmp/tmp.OLhJIp2eLZ ++ return 0 + [[ '' == \t\r\u\e ]] + sleep 10 + [[ true == \t\r\u\e ]] + set +x Waiting for cluster readyness + wait_for_running some-name-mongos 3 + local name=some-name-mongos + let last_pod=2 + local check_cluster_readyness=true + set_debug + [[ 1 == 1 ]] + set -o xtrace + local rs_name=mongos + local cluster_name=some-name ++ seq 0 2 + for i in $(seq 0 $last_pod) + [[ 0 -eq 2 ]] + wait_pod some-name-mongos-0 + local pod=some-name-mongos-0 + set +o xtrace waiting for pod/some-name-mongos-0 to be ready.OK + for i in $(seq 0 $last_pod) + [[ 1 -eq 2 ]] + wait_pod some-name-mongos-1 + local pod=some-name-mongos-1 + set +o xtrace waiting for pod/some-name-mongos-1 to be ready.OK + for i in $(seq 0 $last_pod) + [[ 2 -eq 2 ]] ++ kubectl_bin get psmdb some-name -o 'jsonpath={.spec.replsets[?(@.name=="mongos")].arbiter.enabled}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.OqgsE0GErQ +++ mktemp ++ local LAST_ERR=/tmp/tmp.y5gpAM2IPx ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb some-name -o 'jsonpath={.spec.replsets[?(@.name=="mongos")].arbiter.enabled}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.OqgsE0GErQ ++ cat /tmp/tmp.y5gpAM2IPx ++ rm /tmp/tmp.OqgsE0GErQ /tmp/tmp.y5gpAM2IPx ++ return 0 + [[ '' == \t\r\u\e ]] + wait_pod some-name-mongos-2 + local pod=some-name-mongos-2 + set +o xtrace waiting for pod/some-name-mongos-2 to be ready.OK ++ kubectl_bin get psmdb some-name -o 'jsonpath={.spec.replsets[?(@.name=="mongos")].nonvoting.enabled}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.NrOBNE2AuC +++ mktemp ++ local LAST_ERR=/tmp/tmp.ROjKGnqum8 ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb some-name -o 'jsonpath={.spec.replsets[?(@.name=="mongos")].nonvoting.enabled}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.NrOBNE2AuC ++ cat /tmp/tmp.ROjKGnqum8 ++ rm /tmp/tmp.NrOBNE2AuC /tmp/tmp.ROjKGnqum8 ++ return 0 + [[ '' == \t\r\u\e ]] ++ kubectl_bin get psmdb some-name -o 'jsonpath={.spec.replsets[?(@.name=="mongos")].hidden.enabled}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.NoFR3rzJGg +++ mktemp ++ local LAST_ERR=/tmp/tmp.LT8xBv0CWz ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb some-name -o 'jsonpath={.spec.replsets[?(@.name=="mongos")].hidden.enabled}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.NoFR3rzJGg ++ cat /tmp/tmp.LT8xBv0CWz ++ rm /tmp/tmp.NoFR3rzJGg /tmp/tmp.LT8xBv0CWz ++ return 0 + [[ '' == \t\r\u\e ]] + sleep 10 + [[ true == \t\r\u\e ]] + set +x Waiting for cluster readyness + sleep 10 + compare_mongos_cmd find myApp:myPass@some-name-mongos.pitr-physical-8930 -2nd + local command=find + local uri=myApp:myPass@some-name-mongos.pitr-physical-8930 + local postfix=-2nd + local suffix= + local database=myApp + local collection=test + local port=27017 + local tls=false + [[ false == \t\r\u\e ]] + mongos_command=run_mongos + log 'running db.test.command() in myApp' + set +o xtrace [2026-03-26T10:17:22+0000] running db.test.command() in myApp + run_mongos 'use myApp\n db.test.find()' myApp:myPass@some-name-mongos.pitr-physical-8930 mongodb '' '' 27017 + local 'command=use myApp\n db.test.find()' + local uri=myApp:myPass@some-name-mongos.pitr-physical-8930 + local driver=mongodb + local suffix=.svc.cluster.local + local mongo_flag= + local port=27017 + local mongo_bin=mongo + grep -E -v 'I NETWORK|W NETWORK|Error saving history file|Percona Server for MongoDB|connecting to:|Unable to reach primary for set|Implicit session:|versions do not match|Error saving history file:|Started a new thread for the timer service' + /usr/sbin/sed -re 's/ObjectId\("[0-9a-f]+"\)//; s/-[0-9]+.svc/-xxx.svc/' ++ echo .svc.cluster.local ++ awk -F: '{print $2}' + suffix_port= + [[ -z '' ]] + suffix=.svc.cluster.local:27017 ++ kubectl_bin get pods --selector=name=psmdb-client -o 'jsonpath={.items[].metadata.name}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.STXkzsPXCO +++ mktemp ++ local LAST_ERR=/tmp/tmp.4GfzLNEYbX ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get pods --selector=name=psmdb-client -o 'jsonpath={.items[].metadata.name}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.STXkzsPXCO ++ cat /tmp/tmp.4GfzLNEYbX ++ rm /tmp/tmp.STXkzsPXCO /tmp/tmp.4GfzLNEYbX ++ return 0 + local client_container=psmdb-client-bb8b97679-ddvkv + kubectl_bin exec psmdb-client-bb8b97679-ddvkv -- bash -c 'printf '\''use myApp\n db.test.find()\n'\'' | mongo mongodb://myApp:myPass@some-name-mongos.pitr-physical-8930.svc.cluster.local:27017/admin ' ++ mktemp + local LAST_OUT=/tmp/tmp.yMxXnIQQxt ++ mktemp + local LAST_ERR=/tmp/tmp.DD0dAUB36y + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl exec psmdb-client-bb8b97679-ddvkv -- bash -c 'printf '\''use myApp\n db.test.find()\n'\'' | mongo mongodb://myApp:myPass@some-name-mongos.pitr-physical-8930.svc.cluster.local:27017/admin ' + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.yMxXnIQQxt + cat /tmp/tmp.DD0dAUB36y + rm /tmp/tmp.yMxXnIQQxt /tmp/tmp.DD0dAUB36y + return 0 + [[ 0 -eq 0 ]] + diff /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2287/e2e-tests/pitr-physical/compare/find-2nd.json /tmp/tmp.FoAr9ScJJ8/find-2nd + run_backup backup-minio 3 physical + local name=backup-minio + local idx=3 + local type=physical + desc 'run backup backup-minio-3' + set +o xtrace ----------------------------------------------------------------------------------- run backup backup-minio-3 ----------------------------------------------------------------------------------- + cat /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2287/e2e-tests/pitr-physical/conf/backup-minio.yml + /usr/sbin/sed -e 's/name:/name: backup-minio-3/' + /usr/sbin/sed -e 's/type:/type: physical/' + kubectl_bin apply -f - ++ mktemp + local LAST_OUT=/tmp/tmp.AtzrL5pHlS ++ mktemp + local LAST_ERR=/tmp/tmp.1GIjEQjSUR + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl apply -f - + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.AtzrL5pHlS perconaservermongodbbackup.psmdb.percona.com/backup-minio-3 created + cat /tmp/tmp.1GIjEQjSUR + rm /tmp/tmp.AtzrL5pHlS /tmp/tmp.1GIjEQjSUR + return 0 + wait_backup backup-minio-3 + local backup_name=backup-minio-3 + local target_state=ready + set +o xtrace waiting for backup-minio-3 to reach ready state.............OK + sleep 5 + compare_latest_restorable_time some-name-rs0 backup-minio-3 + local cluster=some-name-rs0 + local backup_name=backup-minio-3 + local latest_restorable_time + local backup_time ++ get_latest_restorable_time some-name-rs0 ++ local cluster=some-name-rs0 ++ local first_timestamp ++ local second_timestamp ++ local retry=0 ++ [[ '' != '' ]] +++ kubectl_bin exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ jq '.backups.pitrChunks.pitrChunks | last | .range.end' ++++ mktemp +++ local LAST_OUT=/tmp/tmp.PSYRBhMpRP ++++ mktemp +++ local LAST_ERR=/tmp/tmp.aMnUlOBOCy +++ local exit_status=0 +++ local timeout=4 ++++ seq 0 2 +++ for i in $(seq 0 2) +++ set +e +++ kubectl exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ exit_status=0 +++ set -e +++ '[' 0 '!=' 0 -a -n 1 ']' +++ break +++ cat /tmp/tmp.PSYRBhMpRP +++ cat /tmp/tmp.aMnUlOBOCy +++ rm /tmp/tmp.PSYRBhMpRP /tmp/tmp.aMnUlOBOCy +++ return 0 ++ first_timestamp=1774518884 ++ sleep 5 ++ [[ 1774518884 != '' ]] ++ [[ 1774518884 != \n\u\l\l ]] +++ kubectl_bin exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ jq '.backups.pitrChunks.pitrChunks | last | .range.end' ++++ mktemp +++ local LAST_OUT=/tmp/tmp.Q63VkvZJWs ++++ mktemp +++ local LAST_ERR=/tmp/tmp.2OJhMSu5wo +++ local exit_status=0 +++ local timeout=4 ++++ seq 0 2 +++ for i in $(seq 0 2) +++ set +e +++ kubectl exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ exit_status=0 +++ set -e +++ '[' 0 '!=' 0 -a -n 1 ']' +++ break +++ cat /tmp/tmp.Q63VkvZJWs +++ cat /tmp/tmp.2OJhMSu5wo +++ rm /tmp/tmp.Q63VkvZJWs /tmp/tmp.2OJhMSu5wo +++ return 0 ++ second_timestamp=1774518884 ++ let retry+=1 ++ [[ 1 -gt 30 ]] ++ [[ 1774518884 != '' ]] ++ [[ 1774518884 != \n\u\l\l ]] ++ [[ 1774518884 == 1774518884 ]] ++ /usr/sbin/date -u -d @1774518884 +%Y-%m-%dT%H:%M:%SZ + latest_restorable_time=2026-03-26T09:54:44Z ++ get_latest_restorable_time_from_backup_object backup-minio-3 ++ local backup_name=backup-minio-3 ++ local latestRestorableTime ++ local retry=0 ++ [[ '' != '' ]] ++ sleep 5 +++ kubectl_bin get psmdb-backup backup-minio-3 -o 'jsonpath={.status.latestRestorableTime}' ++++ mktemp +++ local LAST_OUT=/tmp/tmp.TOzU5BDxJR ++++ mktemp +++ local LAST_ERR=/tmp/tmp.8RKnpQCbLp +++ local exit_status=0 +++ local timeout=4 ++++ seq 0 2 +++ for i in $(seq 0 2) +++ set +e +++ kubectl get psmdb-backup backup-minio-3 -o 'jsonpath={.status.latestRestorableTime}' +++ exit_status=0 +++ set -e +++ '[' 0 '!=' 0 -a -n 1 ']' +++ break +++ cat /tmp/tmp.TOzU5BDxJR +++ cat /tmp/tmp.8RKnpQCbLp +++ rm /tmp/tmp.TOzU5BDxJR /tmp/tmp.8RKnpQCbLp +++ return 0 ++ latestRestorableTime=2026-03-26T09:54:44Z ++ let retry+=1 ++ [[ 1 -gt 30 ]] ++ [[ 2026-03-26T09:54:44Z != '' ]] ++ [[ 2026-03-26T09:54:44Z != \n\u\l\l ]] ++ echo 2026-03-26T09:54:44Z + backup_time=2026-03-26T09:54:44Z + [[ 2026-03-26T09:54:44Z != \2\0\2\6\-\0\3\-\2\6\T\0\9\:\5\4\:\4\4\Z ]] + check_recovery backup-minio-3 latest '' -3rd some-name + local backup_name=backup-minio-3 + local restore_type=latest + local restore_date= + local cmp_postfix=-3rd + local cluster_name=some-name + local backupSource= ++ get_latest_oplog_chunk_ts some-name ++ local cluster=some-name +++ kubectl_bin exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ jq '.backups.pitrChunks.pitrChunks | last | .range.end' ++++ mktemp +++ local LAST_OUT=/tmp/tmp.CbsZ7YaBf5 ++++ mktemp +++ local LAST_ERR=/tmp/tmp.4iZ5EYWdFG +++ local exit_status=0 +++ local timeout=4 ++++ seq 0 2 +++ for i in $(seq 0 2) +++ set +e +++ kubectl exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ exit_status=0 +++ set -e +++ '[' 0 '!=' 0 -a -n 1 ']' +++ break +++ cat /tmp/tmp.CbsZ7YaBf5 +++ cat /tmp/tmp.4iZ5EYWdFG +++ rm /tmp/tmp.CbsZ7YaBf5 /tmp/tmp.4iZ5EYWdFG +++ return 0 ++ echo 1774518884 + local latest_ts=1774518884 + desc 'write more data before restore by latest' + set +o xtrace ----------------------------------------------------------------------------------- write more data before restore by latest ----------------------------------------------------------------------------------- + run_mongos 'use myApp\n db.test.insert({ x: 100501 })' myApp:myPass@some-name-mongos.pitr-physical-8930 + local 'command=use myApp\n db.test.insert({ x: 100501 })' + local uri=myApp:myPass@some-name-mongos.pitr-physical-8930 + local driver=mongodb + local suffix=.svc.cluster.local + local mongo_flag= + local port=27017 + local mongo_bin=mongo ++ echo .svc.cluster.local ++ awk -F: '{print $2}' + suffix_port= + [[ -z '' ]] + suffix=.svc.cluster.local:27017 ++ kubectl_bin get pods --selector=name=psmdb-client -o 'jsonpath={.items[].metadata.name}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.ZEVxDwSiR5 +++ mktemp ++ local LAST_ERR=/tmp/tmp.3gSr4x9i05 ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get pods --selector=name=psmdb-client -o 'jsonpath={.items[].metadata.name}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.ZEVxDwSiR5 ++ cat /tmp/tmp.3gSr4x9i05 ++ rm /tmp/tmp.ZEVxDwSiR5 /tmp/tmp.3gSr4x9i05 ++ return 0 + local client_container=psmdb-client-bb8b97679-ddvkv + kubectl_bin exec psmdb-client-bb8b97679-ddvkv -- bash -c 'printf '\''use myApp\n db.test.insert({ x: 100501 })\n'\'' | mongo mongodb://myApp:myPass@some-name-mongos.pitr-physical-8930.svc.cluster.local:27017/admin ' ++ mktemp + local LAST_OUT=/tmp/tmp.JMkuVoTbPk ++ mktemp + local LAST_ERR=/tmp/tmp.gkrrtZaslD + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl exec psmdb-client-bb8b97679-ddvkv -- bash -c 'printf '\''use myApp\n db.test.insert({ x: 100501 })\n'\'' | mongo mongodb://myApp:myPass@some-name-mongos.pitr-physical-8930.svc.cluster.local:27017/admin ' + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.JMkuVoTbPk Percona Server for MongoDB shell version v4.4.29-28 connecting to: mongodb://some-name-mongos.pitr-physical-8930.svc.cluster.local:27017/admin?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("2c882b04-3b6c-42b1-ba87-0ef2a81fb065") } Percona Server for MongoDB server version: v8.0.19-7 WARNING: shell and server versions do not match switched to db myApp WriteResult({ "nInserted" : 1 }) bye + cat /tmp/tmp.gkrrtZaslD + rm /tmp/tmp.JMkuVoTbPk /tmp/tmp.gkrrtZaslD + return 0 + [[ -n '' ]] + desc 'Restoring to latest' + set +o xtrace ----------------------------------------------------------------------------------- Restoring to latest ----------------------------------------------------------------------------------- ++ get_latest_oplog_chunk_ts some-name ++ local cluster=some-name +++ kubectl_bin exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ jq '.backups.pitrChunks.pitrChunks | last | .range.end' ++++ mktemp +++ local LAST_OUT=/tmp/tmp.WVUlP4Olkc ++++ mktemp +++ local LAST_ERR=/tmp/tmp.vndy0fkhov +++ local exit_status=0 +++ local timeout=4 ++++ seq 0 2 +++ for i in $(seq 0 2) +++ set +e +++ kubectl exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ exit_status=0 +++ set -e +++ '[' 0 '!=' 0 -a -n 1 ']' +++ break +++ cat /tmp/tmp.WVUlP4Olkc +++ cat /tmp/tmp.vndy0fkhov +++ rm /tmp/tmp.WVUlP4Olkc /tmp/tmp.vndy0fkhov +++ return 0 ++ echo 1774518884 + local current_ts=1774518884 + retries=0 + [[ 1774518884 -gt 1774518884 ]] + [[ 0 -gt 30 ]] ++ get_latest_oplog_chunk_ts some-name ++ local cluster=some-name +++ kubectl_bin exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ jq '.backups.pitrChunks.pitrChunks | last | .range.end' ++++ mktemp +++ local LAST_OUT=/tmp/tmp.2iOVpI2Gaj ++++ mktemp +++ local LAST_ERR=/tmp/tmp.PLZ43JAAsp +++ local exit_status=0 +++ local timeout=4 ++++ seq 0 2 +++ for i in $(seq 0 2) +++ set +e +++ kubectl exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ exit_status=0 +++ set -e +++ '[' 0 '!=' 0 -a -n 1 ']' +++ break +++ cat /tmp/tmp.2iOVpI2Gaj +++ cat /tmp/tmp.PLZ43JAAsp +++ rm /tmp/tmp.2iOVpI2Gaj /tmp/tmp.PLZ43JAAsp +++ return 0 ++ echo 1774518884 + latest_ts=1774518884 + retries=1 ++ format_date 1774518884 ++ local timestamp=1774518884 +++ TZ=UTC +++ /usr/sbin/date -d@1774518884 '+%Y-%m-%d %H:%M:%S' ++ echo 2026-03-26 09:54:44 ++ format_date 1774518884 ++ local timestamp=1774518884 +++ TZ=UTC +++ /usr/sbin/date -d@1774518884 '+%Y-%m-%d %H:%M:%S' ++ echo 2026-03-26 09:54:44 + echo 'Waiting for last oplog chunk (2026-03-26 09:54:44) to be 120 seconds older than starting chunk (2026-03-26 09:54:44)' Waiting for last oplog chunk (2026-03-26 09:54:44) to be 120 seconds older than starting chunk (2026-03-26 09:54:44) + sleep 10 + [[ 1774518884 -gt 1774518884 ]] + [[ 1 -gt 30 ]] ++ get_latest_oplog_chunk_ts some-name ++ local cluster=some-name +++ kubectl_bin exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ jq '.backups.pitrChunks.pitrChunks | last | .range.end' ++++ mktemp +++ local LAST_OUT=/tmp/tmp.zooHXUusLT ++++ mktemp +++ local LAST_ERR=/tmp/tmp.J1d8GMEivx +++ local exit_status=0 +++ local timeout=4 ++++ seq 0 2 +++ for i in $(seq 0 2) +++ set +e +++ kubectl exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ exit_status=0 +++ set -e +++ '[' 0 '!=' 0 -a -n 1 ']' +++ break +++ cat /tmp/tmp.zooHXUusLT +++ cat /tmp/tmp.J1d8GMEivx +++ rm /tmp/tmp.zooHXUusLT /tmp/tmp.J1d8GMEivx +++ return 0 ++ echo 1774518884 + latest_ts=1774518884 + retries=2 ++ format_date 1774518884 ++ local timestamp=1774518884 +++ TZ=UTC +++ /usr/sbin/date -d@1774518884 '+%Y-%m-%d %H:%M:%S' ++ echo 2026-03-26 09:54:44 ++ format_date 1774518884 ++ local timestamp=1774518884 +++ TZ=UTC +++ /usr/sbin/date -d@1774518884 '+%Y-%m-%d %H:%M:%S' ++ echo 2026-03-26 09:54:44 + echo 'Waiting for last oplog chunk (2026-03-26 09:54:44) to be 120 seconds older than starting chunk (2026-03-26 09:54:44)' Waiting for last oplog chunk (2026-03-26 09:54:44) to be 120 seconds older than starting chunk (2026-03-26 09:54:44) + sleep 10 + [[ 1774518884 -gt 1774518884 ]] + [[ 2 -gt 30 ]] ++ get_latest_oplog_chunk_ts some-name ++ local cluster=some-name +++ kubectl_bin exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ jq '.backups.pitrChunks.pitrChunks | last | .range.end' ++++ mktemp +++ local LAST_OUT=/tmp/tmp.5chSoK9OOt ++++ mktemp +++ local LAST_ERR=/tmp/tmp.BifuZGMZPx +++ local exit_status=0 +++ local timeout=4 ++++ seq 0 2 +++ for i in $(seq 0 2) +++ set +e +++ kubectl exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ exit_status=0 +++ set -e +++ '[' 0 '!=' 0 -a -n 1 ']' +++ break +++ cat /tmp/tmp.5chSoK9OOt +++ cat /tmp/tmp.BifuZGMZPx +++ rm /tmp/tmp.5chSoK9OOt /tmp/tmp.BifuZGMZPx +++ return 0 ++ echo 1774518884 + latest_ts=1774518884 + retries=3 ++ format_date 1774518884 ++ local timestamp=1774518884 +++ TZ=UTC +++ /usr/sbin/date -d@1774518884 '+%Y-%m-%d %H:%M:%S' ++ echo 2026-03-26 09:54:44 ++ format_date 1774518884 ++ local timestamp=1774518884 +++ TZ=UTC +++ /usr/sbin/date -d@1774518884 '+%Y-%m-%d %H:%M:%S' ++ echo 2026-03-26 09:54:44 + echo 'Waiting for last oplog chunk (2026-03-26 09:54:44) to be 120 seconds older than starting chunk (2026-03-26 09:54:44)' Waiting for last oplog chunk (2026-03-26 09:54:44) to be 120 seconds older than starting chunk (2026-03-26 09:54:44) + sleep 10 + [[ 1774518884 -gt 1774518884 ]] + [[ 3 -gt 30 ]] ++ get_latest_oplog_chunk_ts some-name ++ local cluster=some-name +++ kubectl_bin exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ jq '.backups.pitrChunks.pitrChunks | last | .range.end' ++++ mktemp +++ local LAST_OUT=/tmp/tmp.H9RN3Db9vg ++++ mktemp +++ local LAST_ERR=/tmp/tmp.8EYzP5Q36M +++ local exit_status=0 +++ local timeout=4 ++++ seq 0 2 +++ for i in $(seq 0 2) +++ set +e +++ kubectl exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ exit_status=0 +++ set -e +++ '[' 0 '!=' 0 -a -n 1 ']' +++ break +++ cat /tmp/tmp.H9RN3Db9vg +++ cat /tmp/tmp.8EYzP5Q36M +++ rm /tmp/tmp.H9RN3Db9vg /tmp/tmp.8EYzP5Q36M +++ return 0 ++ echo 1774518884 + latest_ts=1774518884 + retries=4 ++ format_date 1774518884 ++ local timestamp=1774518884 +++ TZ=UTC +++ /usr/sbin/date -d@1774518884 '+%Y-%m-%d %H:%M:%S' ++ echo 2026-03-26 09:54:44 ++ format_date 1774518884 ++ local timestamp=1774518884 +++ TZ=UTC +++ /usr/sbin/date -d@1774518884 '+%Y-%m-%d %H:%M:%S' ++ echo 2026-03-26 09:54:44 + echo 'Waiting for last oplog chunk (2026-03-26 09:54:44) to be 120 seconds older than starting chunk (2026-03-26 09:54:44)' Waiting for last oplog chunk (2026-03-26 09:54:44) to be 120 seconds older than starting chunk (2026-03-26 09:54:44) + sleep 10 + [[ 1774518884 -gt 1774518884 ]] + [[ 4 -gt 30 ]] ++ get_latest_oplog_chunk_ts some-name ++ local cluster=some-name +++ kubectl_bin exec some-name-rs0-0 -c backup-agent -- pbm status -o json ++++ mktemp +++ jq '.backups.pitrChunks.pitrChunks | last | .range.end' +++ local LAST_OUT=/tmp/tmp.0v6ztvl6rq ++++ mktemp +++ local LAST_ERR=/tmp/tmp.63XqD6Smxj +++ local exit_status=0 +++ local timeout=4 ++++ seq 0 2 +++ for i in $(seq 0 2) +++ set +e +++ kubectl exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ exit_status=0 +++ set -e +++ '[' 0 '!=' 0 -a -n 1 ']' +++ break +++ cat /tmp/tmp.0v6ztvl6rq +++ cat /tmp/tmp.63XqD6Smxj +++ rm /tmp/tmp.0v6ztvl6rq /tmp/tmp.63XqD6Smxj +++ return 0 ++ echo 1774518884 + latest_ts=1774518884 + retries=5 ++ format_date 1774518884 ++ local timestamp=1774518884 +++ TZ=UTC +++ /usr/sbin/date -d@1774518884 '+%Y-%m-%d %H:%M:%S' ++ echo 2026-03-26 09:54:44 ++ format_date 1774518884 ++ local timestamp=1774518884 +++ TZ=UTC +++ /usr/sbin/date -d@1774518884 '+%Y-%m-%d %H:%M:%S' ++ echo 2026-03-26 09:54:44 + echo 'Waiting for last oplog chunk (2026-03-26 09:54:44) to be 120 seconds older than starting chunk (2026-03-26 09:54:44)' Waiting for last oplog chunk (2026-03-26 09:54:44) to be 120 seconds older than starting chunk (2026-03-26 09:54:44) + sleep 10 + [[ 1774518884 -gt 1774518884 ]] + [[ 5 -gt 30 ]] ++ get_latest_oplog_chunk_ts some-name ++ local cluster=some-name +++ kubectl_bin exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ jq '.backups.pitrChunks.pitrChunks | last | .range.end' ++++ mktemp +++ local LAST_OUT=/tmp/tmp.cGR8IM1MoF ++++ mktemp +++ local LAST_ERR=/tmp/tmp.Fw6ycGxQzF +++ local exit_status=0 +++ local timeout=4 ++++ seq 0 2 +++ for i in $(seq 0 2) +++ set +e +++ kubectl exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ exit_status=0 +++ set -e +++ '[' 0 '!=' 0 -a -n 1 ']' +++ break +++ cat /tmp/tmp.cGR8IM1MoF +++ cat /tmp/tmp.Fw6ycGxQzF +++ rm /tmp/tmp.cGR8IM1MoF /tmp/tmp.Fw6ycGxQzF +++ return 0 ++ echo 1774518884 + latest_ts=1774518884 + retries=6 ++ format_date 1774518884 ++ local timestamp=1774518884 +++ TZ=UTC +++ /usr/sbin/date -d@1774518884 '+%Y-%m-%d %H:%M:%S' ++ echo 2026-03-26 09:54:44 ++ format_date 1774518884 ++ local timestamp=1774518884 +++ TZ=UTC +++ /usr/sbin/date -d@1774518884 '+%Y-%m-%d %H:%M:%S' ++ echo 2026-03-26 09:54:44 + echo 'Waiting for last oplog chunk (2026-03-26 09:54:44) to be 120 seconds older than starting chunk (2026-03-26 09:54:44)' Waiting for last oplog chunk (2026-03-26 09:54:44) to be 120 seconds older than starting chunk (2026-03-26 09:54:44) + sleep 10 + [[ 1774518884 -gt 1774518884 ]] + [[ 6 -gt 30 ]] ++ get_latest_oplog_chunk_ts some-name ++ local cluster=some-name +++ kubectl_bin exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ jq '.backups.pitrChunks.pitrChunks | last | .range.end' ++++ mktemp +++ local LAST_OUT=/tmp/tmp.3tf1L2a6Hi ++++ mktemp +++ local LAST_ERR=/tmp/tmp.kkuF7UijM4 +++ local exit_status=0 +++ local timeout=4 ++++ seq 0 2 +++ for i in $(seq 0 2) +++ set +e +++ kubectl exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ exit_status=0 +++ set -e +++ '[' 0 '!=' 0 -a -n 1 ']' +++ break +++ cat /tmp/tmp.3tf1L2a6Hi +++ cat /tmp/tmp.kkuF7UijM4 +++ rm /tmp/tmp.3tf1L2a6Hi /tmp/tmp.kkuF7UijM4 +++ return 0 ++ echo 1774518884 + latest_ts=1774518884 + retries=7 ++ format_date 1774518884 ++ local timestamp=1774518884 +++ TZ=UTC +++ /usr/sbin/date -d@1774518884 '+%Y-%m-%d %H:%M:%S' ++ echo 2026-03-26 09:54:44 ++ format_date 1774518884 ++ local timestamp=1774518884 +++ TZ=UTC +++ /usr/sbin/date -d@1774518884 '+%Y-%m-%d %H:%M:%S' ++ echo 2026-03-26 09:54:44 + echo 'Waiting for last oplog chunk (2026-03-26 09:54:44) to be 120 seconds older than starting chunk (2026-03-26 09:54:44)' Waiting for last oplog chunk (2026-03-26 09:54:44) to be 120 seconds older than starting chunk (2026-03-26 09:54:44) + sleep 10 + [[ 1774518884 -gt 1774518884 ]] + [[ 7 -gt 30 ]] ++ get_latest_oplog_chunk_ts some-name ++ local cluster=some-name +++ kubectl_bin exec some-name-rs0-0 -c backup-agent -- pbm status -o json ++++ mktemp +++ jq '.backups.pitrChunks.pitrChunks | last | .range.end' +++ local LAST_OUT=/tmp/tmp.lWtghsaGWl ++++ mktemp +++ local LAST_ERR=/tmp/tmp.eHTmRPQL4E +++ local exit_status=0 +++ local timeout=4 ++++ seq 0 2 +++ for i in $(seq 0 2) +++ set +e +++ kubectl exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ exit_status=0 +++ set -e +++ '[' 0 '!=' 0 -a -n 1 ']' +++ break +++ cat /tmp/tmp.lWtghsaGWl +++ cat /tmp/tmp.eHTmRPQL4E +++ rm /tmp/tmp.lWtghsaGWl /tmp/tmp.eHTmRPQL4E +++ return 0 ++ echo 1774518884 + latest_ts=1774518884 + retries=8 ++ format_date 1774518884 ++ local timestamp=1774518884 +++ TZ=UTC +++ /usr/sbin/date -d@1774518884 '+%Y-%m-%d %H:%M:%S' ++ echo 2026-03-26 09:54:44 ++ format_date 1774518884 ++ local timestamp=1774518884 +++ TZ=UTC +++ /usr/sbin/date -d@1774518884 '+%Y-%m-%d %H:%M:%S' ++ echo 2026-03-26 09:54:44 + echo 'Waiting for last oplog chunk (2026-03-26 09:54:44) to be 120 seconds older than starting chunk (2026-03-26 09:54:44)' Waiting for last oplog chunk (2026-03-26 09:54:44) to be 120 seconds older than starting chunk (2026-03-26 09:54:44) + sleep 10 + [[ 1774518884 -gt 1774518884 ]] + [[ 8 -gt 30 ]] ++ get_latest_oplog_chunk_ts some-name ++ local cluster=some-name +++ kubectl_bin exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ jq '.backups.pitrChunks.pitrChunks | last | .range.end' ++++ mktemp +++ local LAST_OUT=/tmp/tmp.KiT8RQ0SU5 ++++ mktemp +++ local LAST_ERR=/tmp/tmp.BA7Q0ExgEQ +++ local exit_status=0 +++ local timeout=4 ++++ seq 0 2 +++ for i in $(seq 0 2) +++ set +e +++ kubectl exec some-name-rs0-0 -c backup-agent -- pbm status -o json +++ exit_status=0 +++ set -e +++ '[' 0 '!=' 0 -a -n 1 ']' +++ break +++ cat /tmp/tmp.KiT8RQ0SU5 +++ cat /tmp/tmp.BA7Q0ExgEQ +++ rm /tmp/tmp.KiT8RQ0SU5 /tmp/tmp.BA7Q0ExgEQ +++ return 0 ++ echo 1774520341 + latest_ts=1774520341 + retries=9 ++ format_date 1774520341 ++ local timestamp=1774520341 +++ TZ=UTC +++ /usr/sbin/date -d@1774520341 '+%Y-%m-%d %H:%M:%S' ++ echo 2026-03-26 10:19:01 ++ format_date 1774518884 ++ local timestamp=1774518884 +++ TZ=UTC +++ /usr/sbin/date -d@1774518884 '+%Y-%m-%d %H:%M:%S' ++ echo 2026-03-26 09:54:44 + echo 'Waiting for last oplog chunk (2026-03-26 10:19:01) to be 120 seconds older than starting chunk (2026-03-26 09:54:44)' Waiting for last oplog chunk (2026-03-26 10:19:01) to be 120 seconds older than starting chunk (2026-03-26 09:54:44) + sleep 10 + [[ 1774520341 -gt 1774518884 ]] + '[' -z '' ']' + desc 'check restore by latest' + set +o xtrace ----------------------------------------------------------------------------------- check restore by latest ----------------------------------------------------------------------------------- + cat /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2287/e2e-tests/pitr-physical/conf/restore.yml + /usr/sbin/sed -e 's/name:/name: restore-backup-minio-3/' + /usr/sbin/sed -e 's/backupName:/backupName: backup-minio-3/' + /usr/sbin/sed -e /backupSource/,+8d + /usr/sbin/sed -e 's/pitrType:/type: latest/' + '[' -z '' ']' + /usr/sbin/sed -e /date:/d + kubectl_bin apply -f - ++ mktemp + local LAST_OUT=/tmp/tmp.FLrKHrkjJd ++ mktemp + local LAST_ERR=/tmp/tmp.x9pTpgK4mI + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl apply -f - + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.FLrKHrkjJd perconaservermongodbrestore.psmdb.percona.com/restore-backup-minio-3 created + cat /tmp/tmp.x9pTpgK4mI + rm /tmp/tmp.FLrKHrkjJd /tmp/tmp.x9pTpgK4mI + return 0 + wait_restore backup-minio-3 some-name requested 0 1200 + local backup_name=backup-minio-3 + local cluster_name=some-name + local target_state=requested + local wait_cluster_consistency=0 + local wait_time=1200 + local ok_if_ready=0 + set +o xtrace Waiting for the psmdb-restore/restore-backup-minio-3 object to be created.OK Waiting psmdb-restore/restore-backup-minio-3 to reach state "requested" . ----------------------------------------------------------------------------------- pbm-agent logs from some-name-rs0-0 ----------------------------------------------------------------------------------- + kubectl_bin exec some-name-rs0-0 -- cat /tmp/pbm-agent.log ++ mktemp + local LAST_OUT=/tmp/tmp.d6yRnaL3x0 ++ mktemp + local LAST_ERR=/tmp/tmp.hsMf73cdnt + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl exec some-name-rs0-0 -- cat /tmp/pbm-agent.log + exit_status=1 + set -e + '[' 1 '!=' 0 -a -n 1 ']' + cat /tmp/tmp.d6yRnaL3x0 + cat /tmp/tmp.hsMf73cdnt Defaulted container "mongod" out of: mongod, backup-agent, mongo-init (init) cat: /tmp/pbm-agent.log: No such file or directory command terminated with exit code 1 + sleep 0 + for i in $(seq 0 2) + set +e + kubectl exec some-name-rs0-0 -- cat /tmp/pbm-agent.log + exit_status=1 + set -e + '[' 1 '!=' 0 -a -n 1 ']' + cat /tmp/tmp.d6yRnaL3x0 + cat /tmp/tmp.hsMf73cdnt Defaulted container "mongod" out of: mongod, backup-agent, mongo-init (init) error: Internal error occurred: error sending request: Post "https://10.221.0.125:10250/exec/pitr-physical-8930/some-name-rs0-0/mongod?command=cat&command=%2Ftmp%2Fpbm-agent.log&error=1&output=1": dial timeout, backstop + sleep 4 + for i in $(seq 0 2) + set +e + kubectl exec some-name-rs0-0 -- cat /tmp/pbm-agent.log + exit_status=1 + set -e + '[' 1 '!=' 0 -a -n 1 ']' + cat /tmp/tmp.d6yRnaL3x0 + cat /tmp/tmp.hsMf73cdnt Defaulted container "mongod" out of: mongod, backup-agent, mongo-init (init) cat: /tmp/pbm-agent.log: No such file or directory command terminated with exit code 1 + sleep 8 + cat /tmp/tmp.d6yRnaL3x0 + cat /tmp/tmp.hsMf73cdnt Defaulted container "mongod" out of: mongod, backup-agent, mongo-init (init) cat: /tmp/pbm-agent.log: No such file or directory command terminated with exit code 1 + rm /tmp/tmp.d6yRnaL3x0 /tmp/tmp.hsMf73cdnt + return 1 + echo 'failed to get /tmp/pbm-agent.log from some-name-rs0-0' failed to get /tmp/pbm-agent.log from some-name-rs0-0 + for pod in $(get_mongod_pods ${cluster}) + desc 'pbm-agent logs from some-name-rs0-1' + set +o xtrace ----------------------------------------------------------------------------------- pbm-agent logs from some-name-rs0-1 ----------------------------------------------------------------------------------- + kubectl_bin exec some-name-rs0-1 -- cat /tmp/pbm-agent.log ++ mktemp + local LAST_OUT=/tmp/tmp.wIaLGkllCw ++ mktemp + local LAST_ERR=/tmp/tmp.3JX9OYfHtu + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl exec some-name-rs0-1 -- cat /tmp/pbm-agent.log + exit_status=1 + set -e + '[' 1 '!=' 0 -a -n 1 ']' + cat /tmp/tmp.wIaLGkllCw + cat /tmp/tmp.3JX9OYfHtu Defaulted container "mongod" out of: mongod, backup-agent, mongo-init (init) cat: /tmp/pbm-agent.log: No such file or directory command terminated with exit code 1 + sleep 0 + for i in $(seq 0 2) + set +e + kubectl exec some-name-rs0-1 -- cat /tmp/pbm-agent.log + exit_status=1 + set -e + '[' 1 '!=' 0 -a -n 1 ']' + cat /tmp/tmp.wIaLGkllCw + cat /tmp/tmp.3JX9OYfHtu Defaulted container "mongod" out of: mongod, backup-agent, mongo-init (init) cat: /tmp/pbm-agent.log: No such file or directory command terminated with exit code 1 + sleep 4 + for i in $(seq 0 2) + set +e + kubectl exec some-name-rs0-1 -- cat /tmp/pbm-agent.log + exit_status=1 + set -e + '[' 1 '!=' 0 -a -n 1 ']' + cat /tmp/tmp.wIaLGkllCw + cat /tmp/tmp.3JX9OYfHtu Defaulted container "mongod" out of: mongod, backup-agent, mongo-init (init) cat: /tmp/pbm-agent.log: No such file or directory command terminated with exit code 1 + sleep 8 + cat /tmp/tmp.wIaLGkllCw + cat /tmp/tmp.3JX9OYfHtu Defaulted container "mongod" out of: mongod, backup-agent, mongo-init (init) cat: /tmp/pbm-agent.log: No such file or directory command terminated with exit code 1 + rm /tmp/tmp.wIaLGkllCw /tmp/tmp.3JX9OYfHtu + return 1 + echo 'failed to get /tmp/pbm-agent.log from some-name-rs0-1' failed to get /tmp/pbm-agent.log from some-name-rs0-1 + for pod in $(get_mongod_pods ${cluster}) + desc 'pbm-agent logs from some-name-rs0-2' + set +o xtrace ----------------------------------------------------------------------------------- pbm-agent logs from some-name-rs0-2 ----------------------------------------------------------------------------------- + kubectl_bin exec some-name-rs0-2 -- cat /tmp/pbm-agent.log ++ mktemp + local LAST_OUT=/tmp/tmp.7xKaUEKqYq ++ mktemp + local LAST_ERR=/tmp/tmp.ETDvojafUq + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl exec some-name-rs0-2 -- cat /tmp/pbm-agent.log + exit_status=1 + set -e + '[' 1 '!=' 0 -a -n 1 ']' + cat /tmp/tmp.7xKaUEKqYq + cat /tmp/tmp.ETDvojafUq Defaulted container "mongod" out of: mongod, backup-agent, mongo-init (init) error: Internal error occurred: unable to upgrade connection: container not found ("mongod") + sleep 0 + for i in $(seq 0 2) + set +e + kubectl exec some-name-rs0-2 -- cat /tmp/pbm-agent.log + exit_status=1 + set -e + '[' 1 '!=' 0 -a -n 1 ']' + cat /tmp/tmp.7xKaUEKqYq + cat /tmp/tmp.ETDvojafUq Defaulted container "mongod" out of: mongod, backup-agent, mongo-init (init) error: Internal error occurred: unable to upgrade connection: container not found ("mongod") + sleep 4 + for i in $(seq 0 2) + set +e + kubectl exec some-name-rs0-2 -- cat /tmp/pbm-agent.log + exit_status=1 + set -e + '[' 1 '!=' 0 -a -n 1 ']' + cat /tmp/tmp.7xKaUEKqYq + cat /tmp/tmp.ETDvojafUq Defaulted container "mongod" out of: mongod, backup-agent, mongo-init (init) error: Internal error occurred: unable to upgrade connection: container not found ("mongod") + sleep 8 + cat /tmp/tmp.7xKaUEKqYq + cat /tmp/tmp.ETDvojafUq Defaulted container "mongod" out of: mongod, backup-agent, mongo-init (init) error: Internal error occurred: unable to upgrade connection: container not found ("mongod") + rm /tmp/tmp.7xKaUEKqYq /tmp/tmp.ETDvojafUq + return 1 + echo 'failed to get /tmp/pbm-agent.log from some-name-rs0-2' failed to get /tmp/pbm-agent.log from some-name-rs0-2 + for pod in $(get_mongod_pods ${cluster}) + desc 'pbm-agent logs from some-name-rs1-0' + set +o xtrace ----------------------------------------------------------------------------------- pbm-agent logs from some-name-rs1-0 ----------------------------------------------------------------------------------- + kubectl_bin exec some-name-rs1-0 -- cat /tmp/pbm-agent.log ++ mktemp + local LAST_OUT=/tmp/tmp.FUHKpD2ezu ++ mktemp + local LAST_ERR=/tmp/tmp.LBhIBU9GSR + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl exec some-name-rs1-0 -- cat /tmp/pbm-agent.log + exit_status=1 + set -e + '[' 1 '!=' 0 -a -n 1 ']' + cat /tmp/tmp.FUHKpD2ezu + cat /tmp/tmp.LBhIBU9GSR Defaulted container "mongod" out of: mongod, backup-agent, mongo-init (init) cat: /tmp/pbm-agent.log: No such file or directory command terminated with exit code 1 + sleep 0 + for i in $(seq 0 2) + set +e + kubectl exec some-name-rs1-0 -- cat /tmp/pbm-agent.log + exit_status=1 + set -e + '[' 1 '!=' 0 -a -n 1 ']' + cat /tmp/tmp.FUHKpD2ezu + cat /tmp/tmp.LBhIBU9GSR Defaulted container "mongod" out of: mongod, backup-agent, mongo-init (init) cat: /tmp/pbm-agent.log: No such file or directory command terminated with exit code 1 + sleep 4 + for i in $(seq 0 2) + set +e + kubectl exec some-name-rs1-0 -- cat /tmp/pbm-agent.log + exit_status=1 + set -e + '[' 1 '!=' 0 -a -n 1 ']' + cat /tmp/tmp.FUHKpD2ezu + cat /tmp/tmp.LBhIBU9GSR Defaulted container "mongod" out of: mongod, backup-agent, mongo-init (init) cat: /tmp/pbm-agent.log: No such file or directory command terminated with exit code 1 + sleep 8 + cat /tmp/tmp.FUHKpD2ezu + cat /tmp/tmp.LBhIBU9GSR Defaulted container "mongod" out of: mongod, backup-agent, mongo-init (init) cat: /tmp/pbm-agent.log: No such file or directory command terminated with exit code 1 + rm /tmp/tmp.FUHKpD2ezu /tmp/tmp.LBhIBU9GSR + return 1 + echo 'failed to get /tmp/pbm-agent.log from some-name-rs1-0' failed to get /tmp/pbm-agent.log from some-name-rs1-0 + for pod in $(get_mongod_pods ${cluster}) + desc 'pbm-agent logs from some-name-rs1-1' + set +o xtrace ----------------------------------------------------------------------------------- pbm-agent logs from some-name-rs1-1 ----------------------------------------------------------------------------------- + kubectl_bin exec some-name-rs1-1 -- cat /tmp/pbm-agent.log ++ mktemp + local LAST_OUT=/tmp/tmp.sT14kvYIL1 ++ mktemp + local LAST_ERR=/tmp/tmp.CRn1Jhj51E + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl exec some-name-rs1-1 -- cat /tmp/pbm-agent.log + exit_status=1 + set -e + '[' 1 '!=' 0 -a -n 1 ']' + cat /tmp/tmp.sT14kvYIL1 + cat /tmp/tmp.CRn1Jhj51E Defaulted container "mongod" out of: mongod, backup-agent, mongo-init (init) cat: /tmp/pbm-agent.log: No such file or directory command terminated with exit code 1 + sleep 0 + for i in $(seq 0 2) + set +e + kubectl exec some-name-rs1-1 -- cat /tmp/pbm-agent.log + exit_status=1 + set -e + '[' 1 '!=' 0 -a -n 1 ']' + cat /tmp/tmp.sT14kvYIL1 + cat /tmp/tmp.CRn1Jhj51E Defaulted container "mongod" out of: mongod, backup-agent, mongo-init (init) cat: /tmp/pbm-agent.log: No such file or directory command terminated with exit code 1 + sleep 4 + for i in $(seq 0 2) + set +e + kubectl exec some-name-rs1-1 -- cat /tmp/pbm-agent.log + exit_status=1 + set -e + '[' 1 '!=' 0 -a -n 1 ']' + cat /tmp/tmp.sT14kvYIL1 + cat /tmp/tmp.CRn1Jhj51E Defaulted container "mongod" out of: mongod, backup-agent, mongo-init (init) cat: /tmp/pbm-agent.log: No such file or directory command terminated with exit code 1 + sleep 8 + cat /tmp/tmp.sT14kvYIL1 + cat /tmp/tmp.CRn1Jhj51E Defaulted container "mongod" out of: mongod, backup-agent, mongo-init (init) cat: /tmp/pbm-agent.log: No such file or directory command terminated with exit code 1 + rm /tmp/tmp.sT14kvYIL1 /tmp/tmp.CRn1Jhj51E + return 1 + echo 'failed to get /tmp/pbm-agent.log from some-name-rs1-1' failed to get /tmp/pbm-agent.log from some-name-rs1-1 + for pod in $(get_mongod_pods ${cluster}) + desc 'pbm-agent logs from some-name-rs1-2' + set +o xtrace ----------------------------------------------------------------------------------- pbm-agent logs from some-name-rs1-2 ----------------------------------------------------------------------------------- + kubectl_bin exec some-name-rs1-2 -- cat /tmp/pbm-agent.log ++ mktemp + local LAST_OUT=/tmp/tmp.gX9sC59imY ++ mktemp + local LAST_ERR=/tmp/tmp.H5F6BjsuEk + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl exec some-name-rs1-2 -- cat /tmp/pbm-agent.log + exit_status=1 + set -e + '[' 1 '!=' 0 -a -n 1 ']' + cat /tmp/tmp.gX9sC59imY + cat /tmp/tmp.H5F6BjsuEk Defaulted container "mongod" out of: mongod, backup-agent, mongo-init (init) cat: /tmp/pbm-agent.log: No such file or directory command terminated with exit code 1 + sleep 0 + for i in $(seq 0 2) + set +e + kubectl exec some-name-rs1-2 -- cat /tmp/pbm-agent.log + exit_status=1 + set -e + '[' 1 '!=' 0 -a -n 1 ']' + cat /tmp/tmp.gX9sC59imY + cat /tmp/tmp.H5F6BjsuEk Defaulted container "mongod" out of: mongod, backup-agent, mongo-init (init) cat: /tmp/pbm-agent.log: No such file or directory command terminated with exit code 1 + sleep 4 + for i in $(seq 0 2) + set +e + kubectl exec some-name-rs1-2 -- cat /tmp/pbm-agent.log + exit_status=1 + set -e + '[' 1 '!=' 0 -a -n 1 ']' + cat /tmp/tmp.gX9sC59imY + cat /tmp/tmp.H5F6BjsuEk Defaulted container "mongod" out of: mongod, backup-agent, mongo-init (init) cat: /tmp/pbm-agent.log: No such file or directory command terminated with exit code 1 + sleep 8 + cat /tmp/tmp.gX9sC59imY + cat /tmp/tmp.H5F6BjsuEk Defaulted container "mongod" out of: mongod, backup-agent, mongo-init (init) cat: /tmp/pbm-agent.log: No such file or directory command terminated with exit code 1 + rm /tmp/tmp.gX9sC59imY /tmp/tmp.H5F6BjsuEk + return 1 + echo 'failed to get /tmp/pbm-agent.log from some-name-rs1-2' failed to get /tmp/pbm-agent.log from some-name-rs1-2 + for pod in $(get_mongod_pods ${cluster}) + desc 'pbm-agent logs from some-name-rs2-0' + set +o xtrace ----------------------------------------------------------------------------------- pbm-agent logs from some-name-rs2-0 ----------------------------------------------------------------------------------- + kubectl_bin exec some-name-rs2-0 -- cat /tmp/pbm-agent.log ++ mktemp + local LAST_OUT=/tmp/tmp.EgvPgRsGDW ++ mktemp + local LAST_ERR=/tmp/tmp.5ArR2vbg6G + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl exec some-name-rs2-0 -- cat /tmp/pbm-agent.log + exit_status=1 + set -e + '[' 1 '!=' 0 -a -n 1 ']' + cat /tmp/tmp.EgvPgRsGDW + cat /tmp/tmp.5ArR2vbg6G Defaulted container "mongod" out of: mongod, rs-sidecar-1, backup-agent, mongo-init (init) cat: /tmp/pbm-agent.log: No such file or directory command terminated with exit code 1 + sleep 0 + for i in $(seq 0 2) + set +e + kubectl exec some-name-rs2-0 -- cat /tmp/pbm-agent.log + exit_status=1 + set -e + '[' 1 '!=' 0 -a -n 1 ']' + cat /tmp/tmp.EgvPgRsGDW + cat /tmp/tmp.5ArR2vbg6G Defaulted container "mongod" out of: mongod, rs-sidecar-1, backup-agent, mongo-init (init) cat: /tmp/pbm-agent.log: No such file or directory command terminated with exit code 1 + sleep 4 + for i in $(seq 0 2) + set +e + kubectl exec some-name-rs2-0 -- cat /tmp/pbm-agent.log + exit_status=1 + set -e + '[' 1 '!=' 0 -a -n 1 ']' + cat /tmp/tmp.EgvPgRsGDW + cat /tmp/tmp.5ArR2vbg6G Defaulted container "mongod" out of: mongod, rs-sidecar-1, backup-agent, mongo-init (init) cat: /tmp/pbm-agent.log: No such file or directory command terminated with exit code 1 + sleep 8 + cat /tmp/tmp.EgvPgRsGDW + cat /tmp/tmp.5ArR2vbg6G Defaulted container "mongod" out of: mongod, rs-sidecar-1, backup-agent, mongo-init (init) cat: /tmp/pbm-agent.log: No such file or directory command terminated with exit code 1 + rm /tmp/tmp.EgvPgRsGDW /tmp/tmp.5ArR2vbg6G + return 1 + echo 'failed to get /tmp/pbm-agent.log from some-name-rs2-0' failed to get /tmp/pbm-agent.log from some-name-rs2-0 + for pod in $(get_mongod_pods ${cluster}) + desc 'pbm-agent logs from some-name-rs2-2' + set +o xtrace ----------------------------------------------------------------------------------- pbm-agent logs from some-name-rs2-2 ----------------------------------------------------------------------------------- + kubectl_bin exec some-name-rs2-2 -- cat /tmp/pbm-agent.log ++ mktemp + local LAST_OUT=/tmp/tmp.lt1E01PDzG ++ mktemp + local LAST_ERR=/tmp/tmp.sYGFsrAOiX + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl exec some-name-rs2-2 -- cat /tmp/pbm-agent.log + exit_status=1 + set -e + '[' 1 '!=' 0 -a -n 1 ']' + cat /tmp/tmp.lt1E01PDzG + cat /tmp/tmp.sYGFsrAOiX Defaulted container "mongod" out of: mongod, rs-sidecar-1, backup-agent, mongo-init (init) cat: /tmp/pbm-agent.log: No such file or directory command terminated with exit code 1 + sleep 0 + for i in $(seq 0 2) + set +e + kubectl exec some-name-rs2-2 -- cat /tmp/pbm-agent.log + exit_status=1 + set -e + '[' 1 '!=' 0 -a -n 1 ']' + cat /tmp/tmp.lt1E01PDzG + cat /tmp/tmp.sYGFsrAOiX Defaulted container "mongod" out of: mongod, rs-sidecar-1, backup-agent, mongo-init (init) cat: /tmp/pbm-agent.log: No such file or directory command terminated with exit code 1 + sleep 4 + for i in $(seq 0 2) + set +e + kubectl exec some-name-rs2-2 -- cat /tmp/pbm-agent.log + exit_status=1 + set -e + '[' 1 '!=' 0 -a -n 1 ']' + cat /tmp/tmp.lt1E01PDzG + cat /tmp/tmp.sYGFsrAOiX Defaulted container "mongod" out of: mongod, rs-sidecar-1, backup-agent, mongo-init (init) cat: /tmp/pbm-agent.log: No such file or directory command terminated with exit code 1 + sleep 8 + cat /tmp/tmp.lt1E01PDzG + cat /tmp/tmp.sYGFsrAOiX Defaulted container "mongod" out of: mongod, rs-sidecar-1, backup-agent, mongo-init (init) cat: /tmp/pbm-agent.log: No such file or directory command terminated with exit code 1 + rm /tmp/tmp.lt1E01PDzG /tmp/tmp.sYGFsrAOiX + return 1 + echo 'failed to get /tmp/pbm-agent.log from some-name-rs2-2' failed to get /tmp/pbm-agent.log from some-name-rs2-2 + grep restore-backup-minio-3 + tail -100 ++ get_operator_pod ++ kubectl_bin get pods --selector=name=percona-server-mongodb-operator -o 'jsonpath={.items[].metadata.name}' -n psmdb-operator +++ mktemp ++ local LAST_OUT=/tmp/tmp.eG8zPfEtFt +++ mktemp ++ local LAST_ERR=/tmp/tmp.xTr88Wjn3E ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get pods --selector=name=percona-server-mongodb-operator -o 'jsonpath={.items[].metadata.name}' -n psmdb-operator ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.eG8zPfEtFt ++ cat /tmp/tmp.xTr88Wjn3E ++ rm /tmp/tmp.eG8zPfEtFt /tmp/tmp.xTr88Wjn3E ++ return 0 + kubectl_bin logs -n psmdb-operator percona-server-mongodb-operator-5467dbf546-tqmxq ++ mktemp + local LAST_OUT=/tmp/tmp.ah98VRUYh6 ++ mktemp + local LAST_ERR=/tmp/tmp.rlwaTOmlVz + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl logs -n psmdb-operator percona-server-mongodb-operator-5467dbf546-tqmxq + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.ah98VRUYh6 + cat /tmp/tmp.rlwaTOmlVz + rm /tmp/tmp.ah98VRUYh6 /tmp/tmp.rlwaTOmlVz + return 0 2026-03-26T10:20:50.568Z DEBUG checking if restore is allowed {"controller": "psmdbrestore-controller", "controllerGroup": "psmdb.percona.com", "controllerKind": "PerconaServerMongoDBRestore", "PerconaServerMongoDBRestore": {"name":"restore-backup-minio-3","namespace":"pitr-physical-8930"}, "namespace": "pitr-physical-8930", "name": "restore-backup-minio-3", "reconcileID": "200df4dd-c004-483f-a5be-908cbeca0d9e", "cluster": "some-name", "namespace": "pitr-physical-8930"} 2026-03-26T10:20:53.166Z ERROR failed to make restore {"controller": "psmdbrestore-controller", "controllerGroup": "psmdb.percona.com", "controllerKind": "PerconaServerMongoDBRestore", "PerconaServerMongoDBRestore": {"name":"restore-backup-minio-3","namespace":"pitr-physical-8930"}, "namespace": "pitr-physical-8930", "name": "restore-backup-minio-3", "reconcileID": "200df4dd-c004-483f-a5be-908cbeca0d9e", "restore": "restore-backup-minio-3", "backup": "backup-minio-3", "error": "failed to validate backup: validate backup in storage: get backup metadata from storage: get from store: list with parts for mw source reader: fetching pbm file parts base for 2026-03-26T10:17:28Z.pbm.json: get S3 object header: operation error S3: HeadObject, exceeded maximum number of attempts, 3, https response error StatusCode: 0, RequestID: , HostID: , request send failed, Head \"http://minio-service:9000/operator-testing/2026-03-26T10%3A17%3A28Z.pbm.json\": dial tcp 34.118.232.108:9000: connect: connection refused", "errorVerbose": "operation error S3: HeadObject, exceeded maximum number of attempts, 3, https response error StatusCode: 0, RequestID: , HostID: , request send failed, Head \"http://minio-service:9000/operator-testing/2026-03-26T10%3A17%3A28Z.pbm.json\": dial tcp 34.118.232.108:9000: connect: connection refused\nget S3 object header\nfetching pbm file parts base for 2026-03-26T10:17:28Z.pbm.json\nlist with parts for mw source reader\nget from store\nget backup metadata from storage\ngithub.com/percona/percona-server-mongodb-operator/pkg/psmdb/backup.(*pbmC).ValidateBackupInStorage\n\t/go/src/github.com/percona/percona-server-mongodb-operator/pkg/psmdb/backup/pbm.go:792\ngithub.com/percona/percona-server-mongodb-operator/pkg/psmdb/backup.(*pbmC).ValidateBackup\n\t/go/src/github.com/percona/percona-server-mongodb-operator/pkg/psmdb/backup/pbm.go:762\ngithub.com/percona/percona-server-mongodb-operator/pkg/controller/perconaservermongodbrestore.(*ReconcilePerconaServerMongoDBRestore).validate\n\t/go/src/github.com/percona/percona-server-mongodb-operator/pkg/controller/perconaservermongodbrestore/validate.go:78\ngithub.com/percona/percona-server-mongodb-operator/pkg/controller/perconaservermongodbrestore.(*ReconcilePerconaServerMongoDBRestore).Reconcile\n\t/go/src/github.com/percona/percona-server-mongodb-operator/pkg/controller/perconaservermongodbrestore/psmdb_restore_controller.go:191\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).Reconcile\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.23.1/pkg/internal/controller/controller.go:222\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).reconcileHandler\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.23.1/pkg/internal/controller/controller.go:479\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).processNextWorkItem\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.23.1/pkg/internal/controller/controller.go:438\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).Start.func1.1\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.23.1/pkg/internal/controller/controller.go:313\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1693\nvalidate backup in storage\ngithub.com/percona/percona-server-mongodb-operator/pkg/psmdb/backup.(*pbmC).ValidateBackup\n\t/go/src/github.com/percona/percona-server-mongodb-operator/pkg/psmdb/backup/pbm.go:763\ngithub.com/percona/percona-server-mongodb-operator/pkg/controller/perconaservermongodbrestore.(*ReconcilePerconaServerMongoDBRestore).validate\n\t/go/src/github.com/percona/percona-server-mongodb-operator/pkg/controller/perconaservermongodbrestore/validate.go:78\ngithub.com/percona/percona-server-mongodb-operator/pkg/controller/perconaservermongodbrestore.(*ReconcilePerconaServerMongoDBRestore).Reconcile\n\t/go/src/github.com/percona/percona-server-mongodb-operator/pkg/controller/perconaservermongodbrestore/psmdb_restore_controller.go:191\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).Reconcile\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.23.1/pkg/internal/controller/controller.go:222\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).reconcileHandler\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.23.1/pkg/internal/controller/controller.go:479\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).processNextWorkItem\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.23.1/pkg/internal/controller/controller.go:438\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).Start.func1.1\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.23.1/pkg/internal/controller/controller.go:313\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1693\nfailed to validate backup\ngithub.com/percona/percona-server-mongodb-operator/pkg/controller/perconaservermongodbrestore.(*ReconcilePerconaServerMongoDBRestore).validate\n\t/go/src/github.com/percona/percona-server-mongodb-operator/pkg/controller/perconaservermongodbrestore/validate.go:79\ngithub.com/percona/percona-server-mongodb-operator/pkg/controller/perconaservermongodbrestore.(*ReconcilePerconaServerMongoDBRestore).Reconcile\n\t/go/src/github.com/percona/percona-server-mongodb-operator/pkg/controller/perconaservermongodbrestore/psmdb_restore_controller.go:191\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).Reconcile\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.23.1/pkg/internal/controller/controller.go:222\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).reconcileHandler\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.23.1/pkg/internal/controller/controller.go:479\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).processNextWorkItem\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.23.1/pkg/internal/controller/controller.go:438\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).Start.func1.1\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.23.1/pkg/internal/controller/controller.go:313\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1693"} 2026-03-26T10:20:53.166Z INFO Restore state changed {"controller": "psmdbrestore-controller", "controllerGroup": "psmdb.percona.com", "controllerKind": "PerconaServerMongoDBRestore", "PerconaServerMongoDBRestore": {"name":"restore-backup-minio-3","namespace":"pitr-physical-8930"}, "namespace": "pitr-physical-8930", "name": "restore-backup-minio-3", "reconcileID": "200df4dd-c004-483f-a5be-908cbeca0d9e", "previous": "", "current": "error"} 2026-03-26T10:20:53.727Z ERROR Reconciler error {"controller": "psmdbrestore-controller", "controllerGroup": "psmdb.percona.com", "controllerKind": "PerconaServerMongoDBRestore", "PerconaServerMongoDBRestore": {"name":"restore-backup-minio-3","namespace":"pitr-physical-8930"}, "namespace": "pitr-physical-8930", "name": "restore-backup-minio-3", "reconcileID": "200df4dd-c004-483f-a5be-908cbeca0d9e", "error": "failed to validate restore: failed to validate backup: validate backup in storage: get backup metadata from storage: get from store: list with parts for mw source reader: fetching pbm file parts base for 2026-03-26T10:17:28Z.pbm.json: get S3 object header: operation error S3: HeadObject, exceeded maximum number of attempts, 3, https response error StatusCode: 0, RequestID: , HostID: , request send failed, Head \"http://minio-service:9000/operator-testing/2026-03-26T10%3A17%3A28Z.pbm.json\": dial tcp 34.118.232.108:9000: connect: connection refused", "errorVerbose": "operation error S3: HeadObject, exceeded maximum number of attempts, 3, https response error StatusCode: 0, RequestID: , HostID: , request send failed, Head \"http://minio-service:9000/operator-testing/2026-03-26T10%3A17%3A28Z.pbm.json\": dial tcp 34.118.232.108:9000: connect: connection refused\nget S3 object header\nfetching pbm file parts base for 2026-03-26T10:17:28Z.pbm.json\nlist with parts for mw source reader\nget from store\nget backup metadata from storage\ngithub.com/percona/percona-server-mongodb-operator/pkg/psmdb/backup.(*pbmC).ValidateBackupInStorage\n\t/go/src/github.com/percona/percona-server-mongodb-operator/pkg/psmdb/backup/pbm.go:792\ngithub.com/percona/percona-server-mongodb-operator/pkg/psmdb/backup.(*pbmC).ValidateBackup\n\t/go/src/github.com/percona/percona-server-mongodb-operator/pkg/psmdb/backup/pbm.go:762\ngithub.com/percona/percona-server-mongodb-operator/pkg/controller/perconaservermongodbrestore.(*ReconcilePerconaServerMongoDBRestore).validate\n\t/go/src/github.com/percona/percona-server-mongodb-operator/pkg/controller/perconaservermongodbrestore/validate.go:78\ngithub.com/percona/percona-server-mongodb-operator/pkg/controller/perconaservermongodbrestore.(*ReconcilePerconaServerMongoDBRestore).Reconcile\n\t/go/src/github.com/percona/percona-server-mongodb-operator/pkg/controller/perconaservermongodbrestore/psmdb_restore_controller.go:191\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).Reconcile\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.23.1/pkg/internal/controller/controller.go:222\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).reconcileHandler\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.23.1/pkg/internal/controller/controller.go:479\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).processNextWorkItem\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.23.1/pkg/internal/controller/controller.go:438\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).Start.func1.1\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.23.1/pkg/internal/controller/controller.go:313\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1693\nvalidate backup in storage\ngithub.com/percona/percona-server-mongodb-operator/pkg/psmdb/backup.(*pbmC).ValidateBackup\n\t/go/src/github.com/percona/percona-server-mongodb-operator/pkg/psmdb/backup/pbm.go:763\ngithub.com/percona/percona-server-mongodb-operator/pkg/controller/perconaservermongodbrestore.(*ReconcilePerconaServerMongoDBRestore).validate\n\t/go/src/github.com/percona/percona-server-mongodb-operator/pkg/controller/perconaservermongodbrestore/validate.go:78\ngithub.com/percona/percona-server-mongodb-operator/pkg/controller/perconaservermongodbrestore.(*ReconcilePerconaServerMongoDBRestore).Reconcile\n\t/go/src/github.com/percona/percona-server-mongodb-operator/pkg/controller/perconaservermongodbrestore/psmdb_restore_controller.go:191\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).Reconcile\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.23.1/pkg/internal/controller/controller.go:222\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).reconcileHandler\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.23.1/pkg/internal/controller/controller.go:479\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).processNextWorkItem\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.23.1/pkg/internal/controller/controller.go:438\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).Start.func1.1\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.23.1/pkg/internal/controller/controller.go:313\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1693\nfailed to validate backup\ngithub.com/percona/percona-server-mongodb-operator/pkg/controller/perconaservermongodbrestore.(*ReconcilePerconaServerMongoDBRestore).validate\n\t/go/src/github.com/percona/percona-server-mongodb-operator/pkg/controller/perconaservermongodbrestore/validate.go:79\ngithub.com/percona/percona-server-mongodb-operator/pkg/controller/perconaservermongodbrestore.(*ReconcilePerconaServerMongoDBRestore).Reconcile\n\t/go/src/github.com/percona/percona-server-mongodb-operator/pkg/controller/perconaservermongodbrestore/psmdb_restore_controller.go:191\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).Reconcile\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.23.1/pkg/internal/controller/controller.go:222\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).reconcileHandler\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.23.1/pkg/internal/controller/controller.go:479\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).processNextWorkItem\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.23.1/pkg/internal/controller/controller.go:438\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).Start.func1.1\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.23.1/pkg/internal/controller/controller.go:313\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1693\nfailed to validate restore\ngithub.com/percona/percona-server-mongodb-operator/pkg/controller/perconaservermongodbrestore.(*ReconcilePerconaServerMongoDBRestore).Reconcile\n\t/go/src/github.com/percona/percona-server-mongodb-operator/pkg/controller/perconaservermongodbrestore/psmdb_restore_controller.go:222\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).Reconcile\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.23.1/pkg/internal/controller/controller.go:222\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).reconcileHandler\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.23.1/pkg/internal/controller/controller.go:479\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).processNextWorkItem\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.23.1/pkg/internal/controller/controller.go:438\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).Start.func1.1\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.23.1/pkg/internal/controller/controller.go:313\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1693"} + kubectl_bin get psmdb-restore restore-backup-minio-3 -o yaml ++ mktemp + local LAST_OUT=/tmp/tmp.EUrsovCPE6 ++ mktemp + local LAST_ERR=/tmp/tmp.3kIgdnImvV + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl get psmdb-restore restore-backup-minio-3 -o yaml + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.EUrsovCPE6 apiVersion: psmdb.percona.com/v1 kind: PerconaServerMongoDBRestore metadata: annotations: kubectl.kubernetes.io/last-applied-configuration: | {"apiVersion":"psmdb.percona.com/v1","kind":"PerconaServerMongoDBRestore","metadata":{"annotations":{},"name":"restore-backup-minio-3","namespace":"pitr-physical-8930"},"spec":{"backupName":"backup-minio-3","clusterName":"some-name","pitr":{"type":"latest"}}} creationTimestamp: "2026-03-26T10:20:08Z" generation: 1 name: restore-backup-minio-3 namespace: pitr-physical-8930 resourceVersion: "1774520453183199014" uid: 5e8fcfcf-a867-44b9-b2bc-1bff3041435e spec: backupName: backup-minio-3 clusterName: some-name pitr: type: latest status: error: 'failed to validate backup: validate backup in storage: get backup metadata from storage: get from store: list with parts for mw source reader: fetching pbm file parts base for 2026-03-26T10:17:28Z.pbm.json: get S3 object header: operation error S3: HeadObject, exceeded maximum number of attempts, 3, https response error StatusCode: 0, RequestID: , HostID: , request send failed, Head "http://minio-service:9000/operator-testing/2026-03-26T10%3A17%3A28Z.pbm.json": dial tcp 34.118.232.108:9000: connect: connection refused' state: error + cat /tmp/tmp.3kIgdnImvV + rm /tmp/tmp.EUrsovCPE6 /tmp/tmp.3kIgdnImvV + return 0 + kubectl_bin describe psmdb-restore restore-backup-minio-3 ++ mktemp + local LAST_OUT=/tmp/tmp.4NnfXq4hlp ++ mktemp + local LAST_ERR=/tmp/tmp.OwNBYbhAaW + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl describe psmdb-restore restore-backup-minio-3 + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.4NnfXq4hlp Name: restore-backup-minio-3 Namespace: pitr-physical-8930 Labels: Annotations: API Version: psmdb.percona.com/v1 Kind: PerconaServerMongoDBRestore Metadata: Creation Timestamp: 2026-03-26T10:20:08Z Generation: 1 Resource Version: 1774520453183199014 UID: 5e8fcfcf-a867-44b9-b2bc-1bff3041435e Spec: Backup Name: backup-minio-3 Cluster Name: some-name Pitr: Type: latest Status: Error: failed to validate backup: validate backup in storage: get backup metadata from storage: get from store: list with parts for mw source reader: fetching pbm file parts base for 2026-03-26T10:17:28Z.pbm.json: get S3 object header: operation error S3: HeadObject, exceeded maximum number of attempts, 3, https response error StatusCode: 0, RequestID: , HostID: , request send failed, Head "http://minio-service:9000/operator-testing/2026-03-26T10%3A17%3A28Z.pbm.json": dial tcp 34.118.232.108:9000: connect: connection refused State: error Events: + cat /tmp/tmp.OwNBYbhAaW + rm /tmp/tmp.4NnfXq4hlp /tmp/tmp.OwNBYbhAaW + return 0 + echo 'Restore object restore-backup-minio-3 is in error state after 1 minutes.' Restore object restore-backup-minio-3 is in error state after 1 minutes. + echo something went wrong with operator or kubernetes cluster something went wrong with operator or kubernetes cluster + exit 1