)]}'
{"id":"openstack%2Fswift~818332","triplet_id":"openstack%2Fswift~master~I1880448af95db629a326facf3c7b1ebcc7c53427","project":"openstack/swift","branch":"master","topic":"p-ssync-log","attention_set":{"7233":{"account":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"last_update":"2021-11-18 07:01:17.000000000","reason":"A robot voted negatively on a label"}},"removed_from_attention_set":{},"hashtags":[],"change_id":"I1880448af95db629a326facf3c7b1ebcc7c53427","subject":"POC: ssync with an interleaved missing_check","status":"NEW","created":"2021-11-18 05:53:00.000000000","updated":"2021-11-19 05:57:25.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":false,"submittable":false,"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"bb45d97525aa72b89d245f8b311a3dcd621d3cbf","_number":818332,"virtual_id_number":818332,"owner":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"actions":{},"labels":{"Verified":{"disliked":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":-1,"date":"2021-11-19 05:30:25.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","value":-1,"default_value":0,"optional":true},"Code-Review":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"all":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2021-11-18 07:01:17.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"}],"messages":[{"id":"6e063c1827332e9c4cc672587107096f5eeaa003","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2021-11-18 05:53:00.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"4c70384e7dc1847cce40438db267c1affda9b1c8","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-11-18 07:01:17.000000000","message":"Patch Set 1: Verified-1\n\n(3 comments)\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\n\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/fceee9ea226b42bcaaf052d31d8bff3e : SUCCESS in 8m 13s\n- grenade https://zuul.opendev.org/t/openstack/build/8f98e7eba7944e74afd6a761497f7671 : SUCCESS in 52m 55s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/118ddde8af2b4c9087ae1ae3d2ac432c : SUCCESS in 46m 03s\n- swift-build-image https://zuul.opendev.org/t/openstack/build/cebec9f1a4ee43b9a3de82d6e5f335e6 : SUCCESS in 10m 28s (non-voting)\n- swift-build-image-py3 https://zuul.opendev.org/t/openstack/build/53d979942ea24002bb3e53e2b659f90d : SUCCESS in 6m 59s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/d31c6ea994b34abe91ad6368b877d31c : FAILURE in 25m 27s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/1006a4a79e484cbb8792dd7027b28bb4 : FAILURE in 14m 06s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/8ad8041a19204668aea776ac85519e19 : FAILURE in 13m 28s\n- swift-tox-py38 https://zuul.opendev.org/t/openstack/build/91b9aa70e70e4ee5ac0ceb9311e61e6e : FAILURE in 15m 42s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/a25a8767b5aa4409841214af1953e987 : FAILURE in 16m 13s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/ef82166ef5d1452692b833cc5678f9df : SUCCESS in 17m 25s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/b999a43908cb4123ac215db0c3f3b8ff : SUCCESS in 22m 17s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/bba153c7f34e471699d66feb7989402d : SUCCESS in 19m 46s\n- swift-tox-func-py38 https://zuul.opendev.org/t/openstack/build/d400866639e248bb9819dd6172e289b5 : SUCCESS in 18m 36s\n- swift-tox-func-encryption-py38 https://zuul.opendev.org/t/openstack/build/ee184e5d9540466e9347199787874242 : SUCCESS in 14m 37s\n- swift-tox-func-ec-py38 https://zuul.opendev.org/t/openstack/build/a3f9687c791f4b24a59d6128f145c6b4 : SUCCESS in 13m 06s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/e7ade6b9bc9748dd831b9f5d234c85e9 : SUCCESS in 6m 30s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/ad8143353074462eb652598fa56903c2 : SUCCESS in 23m 41s (non-voting)\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/a81ac619d5d843c298397935c819c4c2 : SUCCESS in 50m 45s\n- swift-probetests-centos-8 https://zuul.opendev.org/t/openstack/build/2fffb3297d994b919f9b7c00b30841c0 : FAILURE in 48m 01s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/c920695aaf484a1a8e49d81d8451d546 : SUCCESS in 37m 41s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/d68929d9ea5d4a01bf4613dde2139135 : SUCCESS in 39m 10s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/b2b1851ed83343ea946095b1e2288022 : FAILURE in 14m 19s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/6986158dc62d4cacad4ed3fd2365e6cb : FAILURE in 6m 56s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/60ec99302dec413781373344f58ca013 : SUCCESS in 29m 25s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/dba94525137c47f2b438864aa87dcdd1 : SUCCESS in 1h 03m 00s","accounts_in_message":[],"_revision_number":1},{"id":"f38e4a0561c63613cd317ef9a2c1d6cdd0d005f6","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-11-18 07:57:59.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\n\n- swift-tox-py38-arm64 https://zuul.opendev.org/t/openstack/build/be4c1efb9cd7407ea9988436257ec425 : FAILURE in 28m 06s (non-voting)\n- swift-tox-py39-arm64 https://zuul.opendev.org/t/openstack/build/96389db269b841e2bc1b457ca012f7d5 : FAILURE in 29m 05s (non-voting)\n- swift-probetests-centos-8-arm64 https://zuul.opendev.org/t/openstack/build/be111337b11b41718dcc726f9c28c9f7 : FAILURE in 2h 02m 12s (non-voting)\n- swift-tox-func-encryption-py38-arm64 https://zuul.opendev.org/t/openstack/build/91dbb9753e2f4fff95901e70592567c2 : SUCCESS in 1h 05m 38s (non-voting)\n- swift-tox-func-py38-arm64 https://zuul.opendev.org/t/openstack/build/27b012bc24794014bbccb5d5ff82c11c : SUCCESS in 57m 13s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"76d41753548a0d4395baeb23158e332d1253cc46","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2021-11-19 04:25:35.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"c15ba7ef1826943d1c93a1632534e439ec6c216f","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-11-19 05:30:25.000000000","message":"Patch Set 2: Verified-1\n\n(6 comments)\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\n\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/3b929568f6734620862f71dc176aa565 : SUCCESS in 8m 33s\n- grenade https://zuul.opendev.org/t/openstack/build/1932d9a3d20449c6bc84351b4ad273c3 : SUCCESS in 49m 58s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/48cb54279b6644dbbafc68a9d8e41097 : SUCCESS in 42m 42s\n- swift-build-image https://zuul.opendev.org/t/openstack/build/fd9d74b055144d2da6dafb04fac9031b : SUCCESS in 10m 22s (non-voting)\n- swift-build-image-py3 https://zuul.opendev.org/t/openstack/build/45f1231594434b43884b74f8531c5e64 : SUCCESS in 8m 35s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/cbfecea05e994e0d8efd23e1420c6cdb : SUCCESS in 18m 32s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/8b3d3818d9fb4ce890b17081c99e8d68 : SUCCESS in 20m 11s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/7026f592038a421eb7b517b8c39ce965 : SUCCESS in 17m 22s\n- swift-tox-py38 https://zuul.opendev.org/t/openstack/build/8ec1c57a1121487db722db5f6fe9a8b1 : SUCCESS in 18m 54s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/8caaced9737642aab88587765aac9dc9 : SUCCESS in 14m 07s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/7a90eb3f1e734cf58dbb6e5ebed51201 : SUCCESS in 21m 22s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/b2754e11d2ec4b3d8565bfa50744f538 : SUCCESS in 23m 08s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/1dfdede7a8304c3da64edd006c2c4463 : SUCCESS in 24m 16s\n- swift-tox-func-py38 https://zuul.opendev.org/t/openstack/build/7061a4aa24c84e95babe615331f1745a : SUCCESS in 15m 20s\n- swift-tox-func-encryption-py38 https://zuul.opendev.org/t/openstack/build/8b1141ccdf864e468b4fbf95cd250d4e : SUCCESS in 22m 11s\n- swift-tox-func-ec-py38 https://zuul.opendev.org/t/openstack/build/72510eb9a03c4aff81e4c393884d4f6b : SUCCESS in 16m 42s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/4c989cfb94674cd39aa1f9a988f2c821 : SUCCESS in 9m 24s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/9bf14b231b294ceeb669379e29ab46f4 : SUCCESS in 24m 24s (non-voting)\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/4443b7d8c7bd408cba720f2014b16dac : SUCCESS in 47m 10s\n- swift-probetests-centos-8 https://zuul.opendev.org/t/openstack/build/a9ebeb20ebf942f4a28e15c7ba29e104 : SUCCESS in 56m 52s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/5d2ccd96201e40cb83f1279fccc3ccee : SUCCESS in 34m 36s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/ba4a37aa077544829327ae389ef33e8f : SUCCESS in 42m 35s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/84f3040a78d0411dbe34878d8add0433 : SUCCESS in 18m 32s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/908f6f6a771d4301beace356e992a70c : FAILURE in 6m 19s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/1b1cd4d9973e4dd3baa20385d403278c : SUCCESS in 36m 23s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/65be0558eba9429281e957dd2d6f7bf0 : SUCCESS in 49m 05s","accounts_in_message":[],"_revision_number":2},{"id":"bb45d97525aa72b89d245f8b311a3dcd621d3cbf","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-11-19 05:57:25.000000000","message":"Patch Set 2:\n\nBuild succeeded (ARM64 pipeline).\n\n- swift-tox-py38-arm64 https://zuul.opendev.org/t/openstack/build/6413d869d77249f0af13788cb7d173a8 : SUCCESS in 37m 21s (non-voting)\n- swift-tox-py39-arm64 https://zuul.opendev.org/t/openstack/build/105c940d25164578941b5cd7ec45fb41 : SUCCESS in 40m 23s (non-voting)\n- swift-probetests-centos-8-arm64 https://zuul.opendev.org/t/openstack/build/a938a2d8a1eb483bb7fb2278c204f467 : SUCCESS in 1h 23m 04s (non-voting)\n- swift-tox-func-encryption-py38-arm64 https://zuul.opendev.org/t/openstack/build/68a65b329f5e44599596a007dc8a34af : SUCCESS in 42m 23s (non-voting)\n- swift-tox-func-py38-arm64 https://zuul.opendev.org/t/openstack/build/9c385ba2725740f792c8d73e7df9d41d : SUCCESS in 34m 23s (non-voting)","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"1e1630f15487a0edc7cd2f62689227c6e9597dc8","revisions":{"82f08d864365913cfab9068d99d03b3691f0a91d":{"kind":"REWORK","_number":1,"created":"2021-11-18 05:53:00.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/32/818332/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/32/818332/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/32/818332/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/32/818332/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/32/818332/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/32/818332/1"}}},"commit":{"parents":[{"commit":"32abcacbff30208cff12211e57af1fed978a1c3f","subject":"ssync: restrict max objects per sync","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/32abcacbff30208cff12211e57af1fed978a1c3f"}]}],"author":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2021-11-18 05:34:31.000000000","tz":660},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2021-11-18 05:34:31.000000000","tz":660},"subject":"POC: ssync with an interleaved missing_check","message":"POC: ssync with an interleaved missing_check\n\nCurrently the missing_check goes:\n  - sender send all items hash and timestamps you have in a suffix\n  - receiver, after each line go check if you want it, if you do store\n    it, read next line.\n  - After sender is finished send back the like of objects you want.\n\nThe problem is, for the receiver to check to see if it needs that item\nit has to look at each datafile. If the node is under load (like a\nrebalance), this can take time. In the meantime the sender just keeps\nsending hashes and this queues up in the socket.\n\nThis patch instead changes the missing_check to interleave the available\nand receiver wants. I.e:\n\n - Sender sends :MISSING_CHECK_INTERLEAVED: START\n - While sender has hashes in the suffix it hasn\u0027t sent:\n   - Sender sends a hash and timestamps.\n   - Receiver checks if it needs it, if it\u0027s taking time send back a no-op\n     to the sender happily waits. Once it gets a response send back a want\n     line or a \u0027-\u0027 to symbolise, I don\u0027t want it.\n - Sender sends :MISSING_CHECK_INTERLEAVED: END\n - Reciever (because it\u0027s yielding it needs to return something) returns\n   an ACK in the form of :MISSING_CHECK_INTERLEAVED: DONE\n\nThis stops the sender sending more and more hashes to fill up the socket\nbuffer while the receiver is waiting on slow disks.\n\nAlso should send no-ops keep-alives while it happens.\n\nThis doesn\u0027t help the replication lock on the receiver side from firing\nand killing a connection, but at least stops sending un requried data\nand might fix timeouts on the sender side (not that I\u0027ve tested them\nintensively).\n\nNeeds to to have some keep alive timeouts configs added (or use existing ones,\nie. client_timeout / 2). Just a POC to see how code shakes out.\n\nChange-Id: I1880448af95db629a326facf3c7b1ebcc7c53427\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/82f08d864365913cfab9068d99d03b3691f0a91d"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/82f08d864365913cfab9068d99d03b3691f0a91d"}]},"branch":"refs/heads/master"},"1e1630f15487a0edc7cd2f62689227c6e9597dc8":{"kind":"REWORK","_number":2,"created":"2021-11-19 04:25:35.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/32/818332/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/32/818332/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/32/818332/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/32/818332/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/32/818332/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/32/818332/2"}}},"commit":{"parents":[{"commit":"5259ada4c4cc6447a0ea1b4b1fb62fe039c4893a","subject":"ssync: restrict max objects per sync","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/5259ada4c4cc6447a0ea1b4b1fb62fe039c4893a"}]}],"author":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2021-11-18 05:34:31.000000000","tz":660},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2021-11-19 04:25:07.000000000","tz":660},"subject":"POC: ssync with an interleaved missing_check","message":"POC: ssync with an interleaved missing_check\n\nCurrently the missing_check goes:\n  - sender send all items hash and timestamps you have in a suffix\n  - receiver, after each line go check if you want it, if you do store\n    it, read next line.\n  - After sender is finished send back the like of objects you want.\n\nThe problem is, for the receiver to check to see if it needs that item\nit has to look at each datafile. If the node is under load (like a\nrebalance), this can take time. In the meantime the sender just keeps\nsending hashes and this queues up in the socket.\n\nThis patch instead changes the missing_check to interleave the available\nand receiver wants. I.e:\n\n - Sender sends :MISSING_CHECK_INTERLEAVED: START\n - While sender has hashes in the suffix it hasn\u0027t sent:\n   - Sender sends a hash and timestamps.\n   - Receiver checks if it needs it, if it\u0027s taking time send back a no-op\n     to the sender happily waits. Once it gets a response send back a want\n     line or a \u0027-\u0027 to symbolise, I don\u0027t want it.\n - Sender sends :MISSING_CHECK_INTERLEAVED: END\n - Reciever (because it\u0027s yielding it needs to return something) returns\n   an ACK in the form of :MISSING_CHECK_INTERLEAVED: DONE\n\nThis stops the sender sending more and more hashes to fill up the socket\nbuffer while the receiver is waiting on slow disks.\n\nAlso should send no-ops keep-alives while it happens.\n\nThis doesn\u0027t help the replication lock on the receiver side from firing\nand killing a connection, but at least stops sending un requried data\nand might fix timeouts on the sender side (not that I\u0027ve tested them\nintensively).\n\nNeeds to to have some keep alive timeouts configs added (or use existing ones,\nie. client_timeout / 2). Just a POC to see how code shakes out.\n\nChange-Id: I1880448af95db629a326facf3c7b1ebcc7c53427\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/1e1630f15487a0edc7cd2f62689227c6e9597dc8"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/1e1630f15487a0edc7cd2f62689227c6e9597dc8"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"OK","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY"},{"label":"Workflow","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Workflow\u003dMAX","label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
