Triggered by Gerrit: https://gerrit.opensdn.io/c/opensdn-io/tf-controller/+/2787 Obtained pipelines/main.groovy from git https://github.com/opensdn-io/tf-jenkins.git [Pipeline] Start of Pipeline [Pipeline] timestamps [Pipeline] { [Pipeline] timeout [2026-04-25T19:30:59.523Z] Timeout set to expire in 8 hr 0 min [Pipeline] { [Pipeline] node [2026-04-25T19:30:59.575Z] Running on slave-openstack-gz1_1 in /home/jenkins/workspace/pipeline-post-merge [Pipeline] { [Pipeline] stage [Pipeline] { (init) [Pipeline] cleanWs [2026-04-25T19:30:59.656Z] [WS-CLEANUP] Deleting project workspace... [2026-04-25T19:30:59.656Z] [WS-CLEANUP] Deferred wipeout is disabled by the job configuration... [2026-04-25T19:30:59.688Z] [WS-CLEANUP] done [Pipeline] checkout [2026-04-25T19:30:59.721Z] The recommended git tool is: git [2026-04-25T19:30:59.727Z] No credentials specified [2026-04-25T19:30:59.729Z] Cloning the remote Git repository [2026-04-25T19:30:59.733Z] Cloning repository https://github.com/opensdn-io/tf-jenkins.git [2026-04-25T19:30:59.733Z] > git init /home/jenkins/workspace/pipeline-post-merge/src/opensdn-io/tf-jenkins # timeout=10 [2026-04-25T19:30:59.739Z] Fetching upstream changes from https://github.com/opensdn-io/tf-jenkins.git [2026-04-25T19:30:59.739Z] > git --version # timeout=10 [2026-04-25T19:30:59.741Z] > git --version # 'git version 2.25.1' [2026-04-25T19:30:59.741Z] > git fetch --tags --force --progress -- https://github.com/opensdn-io/tf-jenkins.git +refs/heads/*:refs/remotes/origin/* # timeout=10 [2026-04-25T19:31:01.241Z] Avoid second fetch [2026-04-25T19:31:01.246Z] Checking out Revision de84d9a87171f6df39962a664aa5a9cee87056c3 (refs/remotes/origin/master) [2026-04-25T19:31:01.295Z] Commit message: "workaround absence of second interface in ubuntu" [2026-04-25T19:31:01.233Z] > git config remote.origin.url https://github.com/opensdn-io/tf-jenkins.git # timeout=10 [2026-04-25T19:31:01.235Z] > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10 [2026-04-25T19:31:01.243Z] > git rev-parse refs/remotes/origin/master^{commit} # timeout=10 [2026-04-25T19:31:01.248Z] > git config core.sparsecheckout # timeout=10 [2026-04-25T19:31:01.250Z] > git checkout -f de84d9a87171f6df39962a664aa5a9cee87056c3 # timeout=10 [2026-04-25T19:31:01.296Z] > git rev-list --no-walk de84d9a87171f6df39962a664aa5a9cee87056c3 # timeout=10 [Pipeline] load [Pipeline] { (/home/jenkins/workspace/pipeline-post-merge/src/opensdn-io/tf-jenkins/pipelines/utils/gerrit.groovy) [Pipeline] } [Pipeline] // load [Pipeline] echo [2026-04-25T19:31:01.571Z] INFO: resolved gerrit URL is https://gerrit.opensdn.io/ [Pipeline] sh [2026-04-25T19:31:01.877Z] + /home/jenkins/workspace/pipeline-post-merge/src/opensdn-io/tf-jenkins/infra/gerrit/resolve_patchsets.py --gerrit https://gerrit.opensdn.io/ --review I6cc6685644dd42b2afb007788001488394eb9b44 --branch master --changed_files --output /home/jenkins/workspace/pipeline-post-merge/patchsets-info.json [Pipeline] archiveArtifacts [2026-04-25T19:31:01.909Z] Archiving artifacts [Pipeline] sh [Pipeline] load [Pipeline] { (/home/jenkins/workspace/pipeline-post-merge/src/opensdn-io/tf-jenkins/pipelines/utils/gerrit.groovy) [Pipeline] } [Pipeline] // load [Pipeline] load [Pipeline] { (/home/jenkins/workspace/pipeline-post-merge/src/opensdn-io/tf-jenkins/pipelines/constants.groovy) [Pipeline] } [Pipeline] // load [Pipeline] load [Pipeline] { (/home/jenkins/workspace/pipeline-post-merge/src/opensdn-io/tf-jenkins/pipelines/utils/config.groovy) [Pipeline] } [Pipeline] // load [Pipeline] load [Pipeline] { (/home/jenkins/workspace/pipeline-post-merge/src/opensdn-io/tf-jenkins/pipelines/utils/jobs.groovy) [Pipeline] } [Pipeline] // load [Pipeline] load [Pipeline] { (/home/jenkins/workspace/pipeline-post-merge/src/opensdn-io/tf-jenkins/pipelines/utils/gate.groovy) [Pipeline] } [Pipeline] // load [Pipeline] } [Pipeline] // stage [Pipeline] stage [Pipeline] { (Pre-build) [Pipeline] echo [2026-04-25T19:31:03.284Z] Logs URL: http://nexus.gz1.opensdn.io:8082/jenkins_logs/gerrit/87/2787/7/post-merge_868 [Pipeline] echo [2026-04-25T19:31:03.316Z] terminate_runs_by_review_number: start [Pipeline] echo [2026-04-25T19:31:03.584Z] terminate_runs_by_review_number: terminated builds = [] [Pipeline] sh [Pipeline] echo [2026-04-25T19:31:03.923Z] Pipeline to run: post-merge [Pipeline] sh [Pipeline] sh [Pipeline] archiveArtifacts [2026-04-25T19:31:04.541Z] Archiving artifacts [Pipeline] readYaml [Pipeline] readYaml [Pipeline] readYaml [Pipeline] readYaml [Pipeline] readYaml [Pipeline] readYaml [Pipeline] readYaml [Pipeline] readYaml [Pipeline] readYaml [Pipeline] readYaml [Pipeline] readYaml [Pipeline] echo [2026-04-25T19:31:05.376Z] WARNING: project opensdn-io/tf-controller doesn't define pipeline post-merge [Pipeline] echo [2026-04-25T19:31:05.395Z] Streams from config: [:] [Pipeline] echo [2026-04-25T19:31:05.410Z] Jobs from config: [:] [Pipeline] echo [2026-04-25T19:31:05.425Z] Post Jobs from config: [:] [Pipeline] echo [2026-04-25T19:31:05.460Z] Notify gerrit verified=null, submit=false, msg= [2026-04-25T19:31:05.460Z] TF CI Build Started (post-merge) https://jenkins.opensdn.io/job/pipeline-post-merge/868/ [Pipeline] withCredentials [2026-04-25T19:31:05.487Z] Masking supported pattern matches of $GERRIT_API_PASSWORD [Pipeline] { [Pipeline] echo [2026-04-25T19:31:05.552Z] INFO: resolved gerrit URL is https://gerrit.opensdn.io/ [Pipeline] sh [2026-04-25T19:31:05.910Z] + /home/jenkins/workspace/pipeline-post-merge/src/opensdn-io/tf-jenkins/infra/gerrit/notify.py --gerrit https://gerrit.opensdn.io/ --user tf-gerrit --password **** --review I6cc6685644dd42b2afb007788001488394eb9b44 --patchset 7 --branch master --message 'TF CI Build Started (post-merge) https://jenkins.opensdn.io/job/pipeline-post-merge/868/' [2026-04-25T19:31:05.910Z] DEBUG: Change: {'id': 'opensdn-io%2Ftf-controller~master~I6cc6685644dd42b2afb007788001488394eb9b44', 'project': 'opensdn-io/tf-controller', 'branch': 'master', 'attention_set': {}, 'removed_from_attention_set': {'1000001': {'account': {'_account_id': 1000001}, 'last_update': '2026-04-21 10:32:53.000000000', 'reason': 'removed on reply'}, '1000010': {'account': {'_account_id': 1000010}, 'last_update': '2026-04-25 19:30:43.000000000', 'reason': 'Change was submitted'}}, 'hashtags': [], 'change_id': 'I6cc6685644dd42b2afb007788001488394eb9b44', 'subject': 'fix(vnc_db): restore tag ZK value nodes during DB resync', 'status': 'MERGED', 'created': '2026-04-21 06:37:17.000000000', 'updated': '2026-04-25 19:30:51.000000000', 'submitted': '2026-04-25 19:30:43.000000000', 'submitter': {'_account_id': 1000003}, 'insertions': 386, 'deletions': 40, 'total_comment_count': 1, 'unresolved_comment_count': 0, 'has_review_started': True, 'submission_id': '2787', 'meta_rev_id': 'e891bcc6e5ed541480b02e1be9f801d0c110bd60', '_number': 2787, 'owner': {'_account_id': 1000010}, 'labels': {'Code-Review': {'all': [{'value': 2, 'date': '2026-04-25 19:30:39.000000000', 'permitted_voting_range': {'min': 2, 'max': 2}, '_account_id': 1000003}, {'value': 0, '_account_id': 1000001}], 'values': {'-2': 'This shall not be submitted', '-1': 'I would prefer this is not submitted as is', ' 0': 'No score', '+1': 'Looks good to me, but someone else must approve', '+2': 'Looks good to me, approved'}, 'description': '', 'default_value': 0}, 'Verified': {'all': [{'value': 2, 'date': '2026-04-25 19:30:40.000000000', 'permitted_voting_range': {'min': 2, 'max': 2}, '_account_id': 1000003}, {'value': 1, 'date': '2026-04-21 16:06:36.000000000', 'permitted_voting_range': {'min': 1, 'max': 2}, '_account_id': 1000001}], 'values': {'-2': 'Fails', '-1': 'Fails', ' 0': 'No score', '+1': 'Verified', '+2': 'Gating'}, 'description': '', 'default_value': 0}}, 'permitted_labels': {'Code-Review': [' 0', '+1', '+2'], 'Verified': ['+1', '+2']}, 'removable_labels': {}, 'removable_reviewers': [], 'reviewers': {'REVIEWER': [{'_account_id': 1000001}, {'_account_id': 1000003}]}, 'pending_reviewers': {}, 'current_revision': '1b7515db17f32a72a50f62dc8dbda4370f24cf56', 'revisions': {'1b7515db17f32a72a50f62dc8dbda4370f24cf56': {'kind': 'REWORK', '_number': 7, 'created': '2026-04-21 13:51:21.000000000', 'uploader': {'_account_id': 1000010}, 'ref': 'refs/changes/87/2787/7', 'fetch': {'ssh': {'url': 'ssh://tf-gerrit@gerrit.opensdn.io:29418/opensdn-io/tf-controller', 'ref': 'refs/changes/87/2787/7'}, 'anonymous http': {'url': 'https://gerrit.opensdn.io/opensdn-io/tf-controller', 'ref': 'refs/changes/87/2787/7'}, 'http': {'url': 'https://tf-gerrit@gerrit.opensdn.io/a/opensdn-io/tf-controller', 'ref': 'refs/changes/87/2787/7'}}, 'commit': {'parents': [{'commit': '150298d17bd2849afef30d5dd96fbf4dc4ef1759', 'subject': 'fix(tags): fix ZK tag type node loss and pod label removal'}], 'author': {'name': 'Mikhail Samoylov', 'email': 'mikhailsamoiloff@gmail.com', 'date': '2026-04-21 01:18:55.000000000', 'tz': 420}, 'committer': {'name': 'Mikhail Samoylov', 'email': 'mikhailsamoiloff@gmail.com', 'date': '2026-04-21 13:51:03.000000000', 'tz': 420}, 'subject': 'fix(vnc_db): restore tag ZK value nodes during DB resync', 'message': "fix(vnc_db): restore tag ZK value nodes during DB resync\n\nTag value ZK nodes (/id/tags/values//) were not\nrestored during _dbe_resync_worker. Only 'tag_type' was handled,\ncausing /id/tags/types/ and /id/tags/typesUD/ to be recovered on\nrestart, while /id/tags/values/ remained empty for all existing tags.\n\nAs a result, IndexAllocator for affected tag types started with an\nempty bitarray after ZK data loss, and the next tag creation for\nthe same type received value_id=0 - colliding with an already\nexisting tag in Cassandra.\n\nThis was particularly visible with Kubernetes service tags (user-defined\ntypes), where all label values were missing from ZK while the types\nthemselves were present.\n\nFix: extend the obj_type check in _dbe_resync_worker to include 'tag'\nalongside 'tag_type', so TagServer.dbe_create_notification() is called\nfor all existing tags during resync. The notification path calls\nalloc_tag_value_id() with the stored tag_id, which invokes reserve()\nand recreates the missing ZK node idempotently.\n\nAlso extend tag ID to 32 bits for value part, allowing the full\n0x00000000–0xFFFFFFFF range for tag value IDs.\n\nChanges:\n- vnc_db.py: add 'tag' to obj_type condition in _dbe_resync_worker\n- test_tag.py: add TestTagResync covering ZK restoration, idempotency,\n ID collision prevention, multi-tag recovery and tag_type regression\n\nChange-Id: I6cc6685644dd42b2afb007788001488394eb9b44\nSigned-off-by: Mikhail Samoylov \n"}}}, 'requirements': [], 'submit_records': [{'rule_name': 'gerrit~DefaultSubmitRule', 'status': 'CLOSED', 'labels': [{'label': 'Code-Review', 'status': 'OK', 'applied_by': {'_account_id': 1000003}}, {'label': 'Verified', 'status': 'OK', 'applied_by': {'_account_id': 1000003}}]}]} [2026-04-25T19:31:05.910Z] DEBUG: push message data: {'labels': {}, 'message': 'TF CI Build Started (post-merge) https://jenkins.opensdn.io/job/pipeline-post-merge/868/'} [Pipeline] } [Pipeline] // withCredentials [Pipeline] echo [2026-04-25T19:31:05.986Z] Notify discord for new job is started [Pipeline] echo [2026-04-25T19:31:06.032Z] INFO: resolved gerrit URL is https://gerrit.opensdn.io/ [Pipeline] echo [2026-04-25T19:31:06.060Z] Notify discord msg= [2026-04-25T19:31:06.060Z] The review was merged. [2026-04-25T19:31:06.060Z] [fix(vnc_db): restore tag ZK value nodes during DB ](https://gerrit.opensdn.io/c/opensdn-io/tf-controller/+/2787) [Pipeline] withCredentials [2026-04-25T19:31:06.085Z] Masking supported pattern matches of $DISCORD_WEBHOOK_URL [Pipeline] { [Pipeline] writeFile [Pipeline] sh [2026-04-25T19:31:06.458Z] % Total % Received % Xferd Average Speed Time Time Time Current [2026-04-25T19:31:06.458Z] Dload Upload Total Spent Left Speed [2026-04-25T19:31:06.715Z] [2026-04-25T19:31:06.715Z] 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 [2026-04-25T19:31:06.715Z] 100 184 0 0 100 184 0 560 --:--:-- --:--:-- --:--:-- 560 [Pipeline] } [Pipeline] // withCredentials [Pipeline] } [Pipeline] // stage [Pipeline] echo [2026-04-25T19:31:06.874Z] Jobs results: [:] [Pipeline] stage [Pipeline] { (gerrit vote) [Pipeline] echo [2026-04-25T19:31:06.941Z] Notify gerrit verified=null, submit=false, msg= [2026-04-25T19:31:06.941Z] TF CI Build Succeeded (post-merge) in 0h 0m 3s [2026-04-25T19:31:06.941Z] [2026-04-25T19:31:06.941Z] Succeeded checks: [Pipeline] withCredentials [2026-04-25T19:31:06.971Z] Masking supported pattern matches of $GERRIT_API_PASSWORD [Pipeline] { [Pipeline] echo [2026-04-25T19:31:07.024Z] INFO: resolved gerrit URL is https://gerrit.opensdn.io/ [Pipeline] sh [2026-04-25T19:31:07.316Z] + /home/jenkins/workspace/pipeline-post-merge/src/opensdn-io/tf-jenkins/infra/gerrit/notify.py --gerrit https://gerrit.opensdn.io/ --user tf-gerrit --password **** --review I6cc6685644dd42b2afb007788001488394eb9b44 --patchset 7 --branch master --message 'TF CI Build Succeeded (post-merge) in 0h 0m 3s [2026-04-25T19:31:07.316Z] [2026-04-25T19:31:07.316Z] Succeeded checks:' [2026-04-25T19:31:07.316Z] DEBUG: Change: {'id': 'opensdn-io%2Ftf-controller~master~I6cc6685644dd42b2afb007788001488394eb9b44', 'project': 'opensdn-io/tf-controller', 'branch': 'master', 'attention_set': {}, 'removed_from_attention_set': {'1000001': {'account': {'_account_id': 1000001}, 'last_update': '2026-04-21 10:32:53.000000000', 'reason': 'removed on reply'}, '1000010': {'account': {'_account_id': 1000010}, 'last_update': '2026-04-25 19:30:43.000000000', 'reason': 'Change was submitted'}}, 'hashtags': [], 'change_id': 'I6cc6685644dd42b2afb007788001488394eb9b44', 'subject': 'fix(vnc_db): restore tag ZK value nodes during DB resync', 'status': 'MERGED', 'created': '2026-04-21 06:37:17.000000000', 'updated': '2026-04-25 19:31:05.000000000', 'submitted': '2026-04-25 19:30:43.000000000', 'submitter': {'_account_id': 1000003}, 'insertions': 386, 'deletions': 40, 'total_comment_count': 1, 'unresolved_comment_count': 0, 'has_review_started': True, 'submission_id': '2787', 'meta_rev_id': 'fbab5170698c2cb3733d8b0e5e1c2c7d7dd212b8', '_number': 2787, 'owner': {'_account_id': 1000010}, 'labels': {'Code-Review': {'all': [{'value': 2, 'date': '2026-04-25 19:30:39.000000000', 'permitted_voting_range': {'min': 2, 'max': 2}, '_account_id': 1000003}, {'value': 0, '_account_id': 1000001}], 'values': {'-2': 'This shall not be submitted', '-1': 'I would prefer this is not submitted as is', ' 0': 'No score', '+1': 'Looks good to me, but someone else must approve', '+2': 'Looks good to me, approved'}, 'description': '', 'default_value': 0}, 'Verified': {'all': [{'value': 2, 'date': '2026-04-25 19:30:40.000000000', 'permitted_voting_range': {'min': 2, 'max': 2}, '_account_id': 1000003}, {'value': 1, 'date': '2026-04-21 16:06:36.000000000', 'permitted_voting_range': {'min': 1, 'max': 2}, '_account_id': 1000001}], 'values': {'-2': 'Fails', '-1': 'Fails', ' 0': 'No score', '+1': 'Verified', '+2': 'Gating'}, 'description': '', 'default_value': 0}}, 'permitted_labels': {'Code-Review': [' 0', '+1', '+2'], 'Verified': ['+1', '+2']}, 'removable_labels': {}, 'removable_reviewers': [], 'reviewers': {'REVIEWER': [{'_account_id': 1000001}, {'_account_id': 1000003}]}, 'pending_reviewers': {}, 'current_revision': '1b7515db17f32a72a50f62dc8dbda4370f24cf56', 'revisions': {'1b7515db17f32a72a50f62dc8dbda4370f24cf56': {'kind': 'REWORK', '_number': 7, 'created': '2026-04-21 13:51:21.000000000', 'uploader': {'_account_id': 1000010}, 'ref': 'refs/changes/87/2787/7', 'fetch': {'ssh': {'url': 'ssh://tf-gerrit@gerrit.opensdn.io:29418/opensdn-io/tf-controller', 'ref': 'refs/changes/87/2787/7'}, 'anonymous http': {'url': 'https://gerrit.opensdn.io/opensdn-io/tf-controller', 'ref': 'refs/changes/87/2787/7'}, 'http': {'url': 'https://tf-gerrit@gerrit.opensdn.io/a/opensdn-io/tf-controller', 'ref': 'refs/changes/87/2787/7'}}, 'commit': {'parents': [{'commit': '150298d17bd2849afef30d5dd96fbf4dc4ef1759', 'subject': 'fix(tags): fix ZK tag type node loss and pod label removal'}], 'author': {'name': 'Mikhail Samoylov', 'email': 'mikhailsamoiloff@gmail.com', 'date': '2026-04-21 01:18:55.000000000', 'tz': 420}, 'committer': {'name': 'Mikhail Samoylov', 'email': 'mikhailsamoiloff@gmail.com', 'date': '2026-04-21 13:51:03.000000000', 'tz': 420}, 'subject': 'fix(vnc_db): restore tag ZK value nodes during DB resync', 'message': "fix(vnc_db): restore tag ZK value nodes during DB resync\n\nTag value ZK nodes (/id/tags/values//) were not\nrestored during _dbe_resync_worker. Only 'tag_type' was handled,\ncausing /id/tags/types/ and /id/tags/typesUD/ to be recovered on\nrestart, while /id/tags/values/ remained empty for all existing tags.\n\nAs a result, IndexAllocator for affected tag types started with an\nempty bitarray after ZK data loss, and the next tag creation for\nthe same type received value_id=0 - colliding with an already\nexisting tag in Cassandra.\n\nThis was particularly visible with Kubernetes service tags (user-defined\ntypes), where all label values were missing from ZK while the types\nthemselves were present.\n\nFix: extend the obj_type check in _dbe_resync_worker to include 'tag'\nalongside 'tag_type', so TagServer.dbe_create_notification() is called\nfor all existing tags during resync. The notification path calls\nalloc_tag_value_id() with the stored tag_id, which invokes reserve()\nand recreates the missing ZK node idempotently.\n\nAlso extend tag ID to 32 bits for value part, allowing the full\n0x00000000–0xFFFFFFFF range for tag value IDs.\n\nChanges:\n- vnc_db.py: add 'tag' to obj_type condition in _dbe_resync_worker\n- test_tag.py: add TestTagResync covering ZK restoration, idempotency,\n ID collision prevention, multi-tag recovery and tag_type regression\n\nChange-Id: I6cc6685644dd42b2afb007788001488394eb9b44\nSigned-off-by: Mikhail Samoylov \n"}}}, 'requirements': [], 'submit_records': [{'rule_name': 'gerrit~DefaultSubmitRule', 'status': 'CLOSED', 'labels': [{'label': 'Code-Review', 'status': 'OK', 'applied_by': {'_account_id': 1000003}}, {'label': 'Verified', 'status': 'OK', 'applied_by': {'_account_id': 1000003}}]}]} [2026-04-25T19:31:07.316Z] DEBUG: push message data: {'labels': {}, 'message': 'TF CI Build Succeeded (post-merge) in 0h 0m 3s\n\nSucceeded checks:'} [Pipeline] } [Pipeline] // withCredentials [Pipeline] sh [Pipeline] archiveArtifacts [2026-04-25T19:31:07.951Z] Archiving artifacts [Pipeline] withCredentials [2026-04-25T19:31:08.003Z] Masking supported pattern matches of $LOGS_HOST_SSH_KEY [Pipeline] { [Pipeline] writeFile [Pipeline] sh [2026-04-25T19:31:08.354Z] Warning: Permanently added 'nexus.gz1.opensdn.io,212.233.90.199' (ECDSA) to the list of known hosts. [2026-04-25T19:31:09.287Z] Warning: Permanently added 'nexus.gz1.opensdn.io,212.233.90.199' (ECDSA) to the list of known hosts. [Pipeline] } [Pipeline] // withCredentials [Pipeline] } [Pipeline] // stage [Pipeline] echo [2026-04-25T19:31:09.665Z] URL of console output = https://jenkins.opensdn.io/job/pipeline-post-merge/868/consoleText [Pipeline] withCredentials [2026-04-25T19:31:09.694Z] Masking supported pattern matches of $LOGS_HOST_SSH_KEY [Pipeline] { [Pipeline] sh