department-of-veterans-affairs / va.gov-cms

Editor-centered management for Veteran-centered content.
https://prod.cms.va.gov
GNU General Public License v2.0
97 stars 69 forks source link

[Drupal 9 Upgrade] Determine why some links changed from routed:true to routed:false #5351

Closed ndouglas closed 3 years ago

ndouglas commented 3 years ago

Description

In the D8 vs. D9 pages.json diff we see that some links changed from "routed": true to "routed": false. Why isn't immediately apparent.

The majority of them are the same destination:

                 "text": "Decision reviews and appeals",
                 "url": {
                   "path": "/decision-reviews",
-                  "routed": true
+                  "routed": false
                 }
               },

But there are a few others as well. I did a quick search to see if there was a simple explanation but didn't find one. /decision-reviews exists in both the web and backend.

This deserves a deeper look to see if this is the result of a change in how Drupal interprets existing data, if it is because of some issue with the data or our system, etc. This might not affect vets-website at all, but it would be good to find and understand the root cause. It is possible that there might be different root causes explaining this phenomenon in different places, as well.

Acceptance Criteria

CMS Team

ndouglas commented 3 years ago

Doing a comparison between D8 and D9 without performing database updates causes this class of discrepancy to disappear entirely.

Consequently, the discrepancy seems to be introduced by one of the following database updates performed as part of the upgrade:

 ---------------------- ------------------------------------- --------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 
  Module                 Update ID                             Type            Description                                                                                                                                                                      
 ---------------------- ------------------------------------- --------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 

  admin_toolbar_tools    8202                                  hook_update_n   8202 - Default setting for enable hoverintent.                                                                                                                                   
  blazy                  8207                                  hook_update_n   8207 - Added the language manager service as per #3214002.                                                                                                                       
  node_revision_delete   8001                                  hook_update_n   8001 - Set the default value for the new variable delete_newer.                                                                                                                  
  migrate                clear_migrate_source_count_cache      post-update     Clear the source count cache.                                                                                                                                                    
  node                   glossary_view_published               post-update     Add a published filter to the glossary View.                                                                                                                                     
  rest                   delete_settings                       post-update     Remove obsolete rest.settings configuration.                                                                                                                                     
  serialization          delete_settings                       post-update     Remove obsolete serialization.settings configuration.                                                                                                                            
  system                 claro_dropbutton_variants             post-update     Clear caches due to trustedCallbacks changing in ClaroPreRender.                                                                                                                 
  system                 entity_revision_metadata_bc_cleanup   post-update     Remove backwards-compatibility leftovers from entity type definitions.                                                                                                           
  system                 schema_version_int                    post-update     Update schema version to integers.   @see https:www.drupal.orgprojectdrupalissues3143713                                                                                         
  system                 uninstall_classy                      post-update     Uninstall Classy if it is no longer needed.                                                                                                                                      
  system                 uninstall_entity_reference_module     post-update     Uninstall entity_reference.   @see https:www.drupal.orgprojectdrupalissues3111645                                                                                                
  system                 uninstall_simpletest                  post-update     Uninstall SimpleTest.   @see https:www.drupal.orgprojectdrupalissues3110862                                                                                                      
  system                 uninstall_stable                      post-update     Uninstall Stable if it is no longer needed.   This needs to run after system_post_update_uninstall_classy(). This will be  the case since getAvailableUpdateFunctions() returns  
                                                                               an alphabetically sorted  list of post_update hooks to be run.   @see Drupal\Core\Update\UpdateRegistry::getAvailableUpdateFunctions()                                           
  views                  configuration_entity_relationships    post-update     Clear errors caused by relationships to configuration entities.                                                                                                                  
  views                  remove_sorting_global_text_field      post-update     Clear caches due to removal of sorting for global custom text field.                                                                                                             

After studying each of these hooks in turn, I determined that the following hooks were empty and existed only to ensure cache clears:

blazy           blazy_update_8207
migrate         migrate_post_update_clear_migrate_source_count_cache
system          system_post_update_claro_dropbutton_variants
views           views_post_update_configuration_entity_relationships
views           views_post_update_remove_sorting_global_text_field

For the remainder:

admin_toolbar_tools admin_toolbar_tools_update_8202
node_revision_delete    node_revision_delete_update_8001
node            node_post_update_glossary_view_published
rest            rest_post_update_delete_settings
serialization       serialization_post_update_delete_settings
system          system_post_update_entity_revision_metadata_bc_cleanup
system          system_post_update_schema_version_int
system          system_post_update_uninstall_classy
system          system_post_update_uninstall_entity_reference_module
system          system_post_update_uninstall_simpletest
system          system_post_update_uninstall_stable

I executed the hooks individually to determine their effects on the generated data (still in progress):

admin_toolbar_tools_update_8202             No substantial differences noted.
node_revision_delete_update_8001            No substantial differences noted.
node_post_update_glossary_view_published        No substantial differences noted.
system_post_update_entity_revision_metadata_bc_cleanup  No substantial differences noted.
rest_post_update_delete_settings            No substantial differences noted.
serialization_post_update_delete_settings       No substantial differences noted.
system_post_update_schema_version_int           No substantial differences noted.
system_post_update_uninstall_classy         No substantial differences noted.
system_post_update_uninstall_simpletest         No substantial differences noted.

Unfortunately, after executing all of the above updates individually, I'm still left with a context export that does not match the context export that I get after running drush updb! So I'm not really sure what's going on here.

ndouglas commented 3 years ago

@jefflbrauer I think this and #5353 need to be moved to the next Sprint -- I'm going to have to do deeper digging on these two things to figure out what changed where. My assumptions about when the exported data was getting changed were apparently completely wrong 😞

ndouglas commented 3 years ago

After performing the database updates individually, I did a diff of the SQL dump prior to and after running drush updb. It appears that there were some additional changes that were performed having to do with menus, which makes sense given what I've seen in the content export, but which doesn't really make a whole lot of sense given that no relevant item appeared in the update or post-update hooks, unless I'm missing something 😕 .

Relevant lines:

1289077,1289079c1289075,1289077
< INSERT INTO `menu_tree` VALUES ('va-lebanon',1829,'menu_link_content:ec974324-c7c4-4711-9b6d-a16bae2da11f','menu_link_content:449a3d3b-3083-43b9-b1d3-26f81ab08da2','entity.node.canonical','node=3034','a:1:{s:4:\"node\";s:4:\"3034\";}','','s:6:\"Events\";',NULL,'Drupal\\menu_link_content\\Plugin\\Menu\\MenuLinkContent','a:1:{s:5:\"query\";a:0:{}}','menu_link_content',1,1,1,-50,'a:1:{s:9:\"entity_id\";s:4:\"1042\";}',0,3,1764,1827,1829,0,0,0,0,0,0,'\\Drupal\\menu_link_content\\Form\\MenuLinkContentForm');
< INSERT INTO `menu_tree` VALUES ('va-lebanon',1830,'menu_link_content:83d78804-4a5d-4282-bb0e-a112a882906a','menu_link_content:449a3d3b-3083-43b9-b1d3-26f81ab08da2','entity.node.canonical','node=3043','a:1:{s:4:\"node\";s:4:\"3043\";}','','s:7:\"Stories\";',NULL,'Drupal\\menu_link_content\\Plugin\\Menu\\MenuLinkContent','a:1:{s:5:\"query\";a:0:{}}','menu_link_content',1,1,1,-49,'a:1:{s:9:\"entity_id\";s:4:\"1043\";}',0,3,1764,1827,1830,0,0,0,0,0,0,'\\Drupal\\menu_link_content\\Form\\MenuLinkContentForm');
< INSERT INTO `menu_tree` VALUES ('va-lebanon',1831,'menu_link_content:c212901c-8741-4198-b1af-6a235862dee8','menu_link_content:449a3d3b-3083-43b9-b1d3-26f81ab08da2','entity.node.canonical','node=3050','a:1:{s:4:\"node\";s:4:\"3050\";}','','s:13:\"News releases\";',NULL,'Drupal\\menu_link_content\\Plugin\\Menu\\MenuLinkContent','a:1:{s:5:\"query\";a:0:{}}','menu_link_content',1,1,1,-48,'a:1:{s:9:\"entity_id\";s:4:\"1044\";}',0,3,1764,1827,1831,0,0,0,0,0,0,'\\Drupal\\menu_link_content\\Form\\MenuLinkContentForm');
---
> INSERT INTO `menu_tree` VALUES ('va-lebanon',1829,'menu_link_content:ec974324-c7c4-4711-9b6d-a16bae2da11f','menu_link_content:449a3d3b-3083-43b9-b1d3-26f81ab08da2',NULL,'','a:0:{}','base:lebanon-health-care/events','s:6:\"Events\";',NULL,'Drupal\\menu_link_content\\Plugin\\Menu\\MenuLinkContent','a:0:{}','menu_link_content',1,1,1,-50,'a:1:{s:9:\"entity_id\";s:4:\"1042\";}',0,3,1764,1827,1829,0,0,0,0,0,0,'\\Drupal\\menu_link_content\\Form\\MenuLinkContentForm');
> INSERT INTO `menu_tree` VALUES ('va-lebanon',1830,'menu_link_content:83d78804-4a5d-4282-bb0e-a112a882906a','menu_link_content:449a3d3b-3083-43b9-b1d3-26f81ab08da2',NULL,'','a:0:{}','base:lebanon-health-care/stories','s:7:\"Stories\";',NULL,'Drupal\\menu_link_content\\Plugin\\Menu\\MenuLinkContent','a:0:{}','menu_link_content',1,1,1,-49,'a:1:{s:9:\"entity_id\";s:4:\"1043\";}',0,3,1764,1827,1830,0,0,0,0,0,0,'\\Drupal\\menu_link_content\\Form\\MenuLinkContentForm');
> INSERT INTO `menu_tree` VALUES ('va-lebanon',1831,'menu_link_content:c212901c-8741-4198-b1af-6a235862dee8','menu_link_content:449a3d3b-3083-43b9-b1d3-26f81ab08da2',NULL,'','a:0:{}','base:lebanon-health-care/news-releases','s:13:\"News releases\";',NULL,'Drupal\\menu_link_content\\Plugin\\Menu\\MenuLinkContent','a:0:{}','menu_link_content',1,1,1,-48,'a:1:{s:9:\"entity_id\";s:4:\"1044\";}',0,3,1764,1827,1831,0,0,0,0,0,0,'\\Drupal\\menu_link_content\\Form\\MenuLinkContentForm');
< INSERT INTO `menu_tree` VALUES ('decision-reviews-benefits-h',2189,'menu_link_content:0f42c738-ca30-4410-b972-f81aa76e71f2','','entity.node.canonical','node=3071','a:1:{s:4:\"node\";s:4:\"3071\";}','','s:28:\"Decision reviews and appeals\";',NULL,'Drupal\\menu_link_content\\Plugin\\Menu\\MenuLinkContent','a:1:{s:5:\"query\";a:0:{}}','menu_link_content',1,1,0,-50,'a:1:{s:9:\"entity_id\";s:4:\"1337\";}',1,1,2189,0,0,0,0,0,0,0,0,'\\Drupal\\menu_link_content\\Form\\MenuLinkContentForm');
> INSERT INTO `menu_tree` VALUES ('decision-reviews-benefits-h',2189,'menu_link_content:0f42c738-ca30-4410-b972-f81aa76e71f2','',NULL,'','a:0:{}','base:decision-reviews','s:28:\"Decision reviews and appeals\";',NULL,'Drupal\\menu_link_content\\Plugin\\Menu\\MenuLinkContent','a:0:{}','menu_link_content',1,1,0,-50,'a:1:{s:9:\"entity_id\";s:4:\"1337\";}',1,1,2189,0,0,0,0,0,0,0,0,'\\Drupal\\menu_link_content\\Form\\MenuLinkContentForm');<br class="Apple-interchange-newline">

here we see, for a given item, 'route_name' transitions from entity.node.canonical to NULL and route_param_key transitions from providing a node parameter to providing diddly.

ndouglas commented 3 years ago

If I edit node 3071, enable the menu link, and save, the following will pop up in an SQL diff:

1295307a1295318
> INSERT INTO `menu_tree` VALUES ('main',21594,'menu_link_content:e425071a-4c42-4c83-b7f4-be443cae8390','','entity.node.canonical','node=3071','a:1:{s:4:\"node\";s:4:\"3071\";}','','s:31:\"VA decision reviews and appeals\";',NULL,'Drupal\\menu_link_content\\Plugin\\Menu\\MenuLinkContent','a:0:{}','menu_link_content',1,0,0,0,'a:1:{s:9:\"entity_id\";s:4:\"6783\";}',0,1,21594,0,0,0,0,0,0,0,0,'\\Drupal\\menu_link_content\\Form\\MenuLinkContentForm');

The diff from before the update to after the node save is:

< INSERT INTO `menu_tree` VALUES ('decision-reviews-benefits-h',2189,'menu_link_content:0f42c738-ca30-4410-b972-f81aa76e71f2','','entity.node.canonical','node=3071','a:1:{s:4:\"node\";s:4:\"3071\";}','','s:28:\"Decision reviews and appeals\";',NULL,'Drupal\\menu_link_content\\Plugin\\Menu\\MenuLinkContent','a:1:{s:5:\"query\";a:0:{}}','menu_link_content',1,1,0,-50,'a:1:{s:9:\"entity_id\";s:4:\"1337\";}',1,1,2189,0,0,0,0,0,0,0,0,'\\Drupal\\menu_link_content\\Form\\MenuLinkContentForm');
> INSERT INTO `menu_tree` VALUES ('main',21594,'menu_link_content:e425071a-4c42-4c83-b7f4-be443cae8390','','entity.node.canonical','node=3071','a:1:{s:4:\"node\";s:4:\"3071\";}','','s:31:\"VA decision reviews and appeals\";',NULL,'Drupal\\menu_link_content\\Plugin\\Menu\\MenuLinkContent','a:0:{}','menu_link_content',1,0,0,0,'a:1:{s:9:\"entity_id\";s:4:\"6783\";}',0,1,21594,0,0,0,0,0,0,0,0,'\\Drupal\\menu_link_content\\Form\\MenuLinkContentForm');

There are a quartet of number fields following 'menu_link_content' in each row. These correspond to the fields enabled, discovered, expanded, and weight in the schema. It is interesting to note that it is the discovered field that is switched off here, meaning that the link can be purged. This makes me think that, in line with the menu entry not being enabled for the original node, that there is some interplay of the menu setting with our custom code handling the menu that has changed subtly or isn't behaving exactly as we'd expect.

ndouglas commented 3 years ago

After more playing around:

1288627c1288627
< INSERT INTO `menu_tree` VALUES ('homepage-top-tasks-blocks',1116,'menu_link_content:673d99e2-03a7-4c3c-a806-ee7ca89b319c','menu_link_content:2c8ac82e-48ee-4d08-afef-5671ae98a281',NULL,'','a:0:{}','base:disability/upload-supporting-evidence','s:37:\"Upload evidence to support your claim\";',NULL,'Drupal\\menu_link_content\\Plugin\\Menu\\MenuLinkContent','a:0:{}','menu_link_content',1,1,0,-48,'a:1:{s:9:\"entity_id\";s:3:\"533\";}',0,2,1105,1116,0,0,0,0,0,0,0,'\\Drupal\\menu_link_content\\Form\\MenuLinkContentForm');
---
> INSERT INTO `menu_tree` VALUES ('homepage-top-tasks-blocks',1116,'menu_link_content:673d99e2-03a7-4c3c-a806-ee7ca89b319c','menu_link_content:2c8ac82e-48ee-4d08-afef-5671ae98a281','entity.node.canonical','node=913','a:1:{s:4:\"node\";s:3:\"913\";}','','s:37:\"Upload evidence to support your claim\";',NULL,'Drupal\\menu_link_content\\Plugin\\Menu\\MenuLinkContent','a:1:{s:5:\"query\";a:0:{}}','menu_link_content',1,1,0,-48,'a:1:{s:9:\"entity_id\";s:3:\"533\";}',0,2,1105,1116,0,0,0,0,0,0,0,'\\Drupal\\menu_link_content\\Form\\MenuLinkContentForm');
1288640,1288642c1288640,1288642
< INSERT INTO `menu_tree` VALUES ('homepage-top-tasks-blocks',1130,'menu_link_content:b1f74c7a-84a3-40f9-b49b-f29dcd90424c','menu_link_content:2c8ac82e-48ee-4d08-afef-5671ae98a281',NULL,'','a:0:{}','base:disability/how-to-file-claim','s:33:\"File for a VA disability increase\";',NULL,'Drupal\\menu_link_content\\Plugin\\Menu\\MenuLinkContent','a:0:{}','menu_link_content',1,1,0,-47,'a:1:{s:9:\"entity_id\";s:3:\"546\";}',0,2,1105,1130,0,0,0,0,0,0,0,'\\Drupal\\menu_link_content\\Form\\MenuLinkContentForm');
< INSERT INTO `menu_tree` VALUES ('homepage-top-tasks-blocks',1131,'menu_link_content:01f72651-a726-45ec-ba6e-d5d915e0df82','menu_link_content:2c8ac82e-48ee-4d08-afef-5671ae98a281',NULL,'','a:0:{}','base:disability/how-to-file-claim','s:29:\"File a claim for compensation\";',NULL,'Drupal\\menu_link_content\\Plugin\\Menu\\MenuLinkContent','a:0:{}','menu_link_content',1,1,0,-46,'a:1:{s:9:\"entity_id\";s:3:\"547\";}',0,2,1105,1131,0,0,0,0,0,0,0,'\\Drupal\\menu_link_content\\Form\\MenuLinkContentForm');
< INSERT INTO `menu_tree` VALUES ('homepage-top-tasks-blocks',1132,'menu_link_content:068dfbf8-0cdc-4d55-8a23-031a5048e706','menu_link_content:09414b6a-dc51-4736-9c66-46885bc84b7c',NULL,'','a:0:{}','base:education/gi-bill/post-9-11/ch-33-benefit','s:39:\"Check your Post-9/11 GI Bill® benefits\";',NULL,'Drupal\\menu_link_content\\Plugin\\Menu\\MenuLinkContent','a:0:{}','menu_link_content',0,1,0,-50,'a:1:{s:9:\"entity_id\";s:3:\"548\";}',0,2,1106,1132,0,0,0,0,0,0,0,'\\Drupal\\menu_link_content\\Form\\MenuLinkContentForm');
---
> INSERT INTO `menu_tree` VALUES ('homepage-top-tasks-blocks',1130,'menu_link_content:b1f74c7a-84a3-40f9-b49b-f29dcd90424c','menu_link_content:2c8ac82e-48ee-4d08-afef-5671ae98a281','entity.node.canonical','node=905','a:1:{s:4:\"node\";s:3:\"905\";}','','s:33:\"File for a VA disability increase\";',NULL,'Drupal\\menu_link_content\\Plugin\\Menu\\MenuLinkContent','a:1:{s:5:\"query\";a:0:{}}','menu_link_content',1,1,0,-47,'a:1:{s:9:\"entity_id\";s:3:\"546\";}',0,2,1105,1130,0,0,0,0,0,0,0,'\\Drupal\\menu_link_content\\Form\\MenuLinkContentForm');
> INSERT INTO `menu_tree` VALUES ('homepage-top-tasks-blocks',1131,'menu_link_content:01f72651-a726-45ec-ba6e-d5d915e0df82','menu_link_content:2c8ac82e-48ee-4d08-afef-5671ae98a281','entity.node.canonical','node=905','a:1:{s:4:\"node\";s:3:\"905\";}','','s:29:\"File a claim for compensation\";',NULL,'Drupal\\menu_link_content\\Plugin\\Menu\\MenuLinkContent','a:1:{s:5:\"query\";a:0:{}}','menu_link_content',1,1,0,-46,'a:1:{s:9:\"entity_id\";s:3:\"547\";}',0,2,1105,1131,0,0,0,0,0,0,0,'\\Drupal\\menu_link_content\\Form\\MenuLinkContentForm');
> INSERT INTO `menu_tree` VALUES ('homepage-top-tasks-blocks',1132,'menu_link_content:068dfbf8-0cdc-4d55-8a23-031a5048e706','menu_link_content:09414b6a-dc51-4736-9c66-46885bc84b7c','entity.node.canonical','node=3007','a:1:{s:4:\"node\";s:4:\"3007\";}','','s:39:\"Check your Post-9/11 GI Bill® benefits\";',NULL,'Drupal\\menu_link_content\\Plugin\\Menu\\MenuLinkContent','a:1:{s:5:\"query\";a:0:{}}','menu_link_content',0,1,0,-50,'a:1:{s:9:\"entity_id\";s:3:\"548\";}',0,2,1106,1132,0,0,0,0,0,0,0,'\\Drupal\\menu_link_content\\Form\\MenuLinkContentForm');
1288644c1288644
< INSERT INTO `menu_tree` VALUES ('homepage-top-tasks-blocks',1134,'menu_link_content:f0359e83-4386-4c70-a315-fa13f8f5d842','menu_link_content:09414b6a-dc51-4736-9c66-46885bc84b7c',NULL,'','a:0:{}','base:education/change-gi-bill-benefits','s:38:\"Change your current education benefits\";',NULL,'Drupal\\menu_link_content\\Plugin\\Menu\\MenuLinkContent','a:0:{}','menu_link_content',1,1,0,-48,'a:1:{s:9:\"entity_id\";s:3:\"550\";}',0,2,1106,1134,0,0,0,0,0,0,0,'\\Drupal\\menu_link_content\\Form\\MenuLinkContentForm');
---
> INSERT INTO `menu_tree` VALUES ('homepage-top-tasks-blocks',1134,'menu_link_content:f0359e83-4386-4c70-a315-fa13f8f5d842','menu_link_content:09414b6a-dc51-4736-9c66-46885bc84b7c','entity.node.canonical','node=939','a:1:{s:4:\"node\";s:3:\"939\";}','','s:38:\"Change your current education benefits\";',NULL,'Drupal\\menu_link_content\\Plugin\\Menu\\MenuLinkContent','a:1:{s:5:\"query\";a:0:{}}','menu_link_content',1,1,0,-48,'a:1:{s:9:\"entity_id\";s:3:\"550\";}',0,2,1106,1134,0,0,0,0,0,0,0,'\\Drupal\\menu_link_content\\Form\\MenuLinkContentForm');
1288646c1288646
< INSERT INTO `menu_tree` VALUES ('homepage-top-tasks-blocks',1136,'menu_link_content:13d6be42-f1d0-44dc-b3a4-96186a42c545','menu_link_content:09414b6a-dc51-4736-9c66-46885bc84b7c',NULL,'','a:0:{}','base:education/how-to-apply','s:28:\"Apply for education benefits\";',NULL,'Drupal\\menu_link_content\\Plugin\\Menu\\MenuLinkContent','a:0:{}','menu_link_content',1,1,0,4,'a:1:{s:9:\"entity_id\";s:3:\"552\";}',0,2,1106,1136,0,0,0,0,0,0,0,'\\Drupal\\menu_link_content\\Form\\MenuLinkContentForm');
---
> INSERT INTO `menu_tree` VALUES ('homepage-top-tasks-blocks',1136,'menu_link_content:13d6be42-f1d0-44dc-b3a4-96186a42c545','menu_link_content:09414b6a-dc51-4736-9c66-46885bc84b7c','entity.node.canonical','node=943','a:1:{s:4:\"node\";s:3:\"943\";}','','s:28:\"Apply for education benefits\";',NULL,'Drupal\\menu_link_content\\Plugin\\Menu\\MenuLinkContent','a:1:{s:5:\"query\";a:0:{}}','menu_link_content',1,1,0,4,'a:1:{s:9:\"entity_id\";s:3:\"552\";}',0,2,1106,1136,0,0,0,0,0,0,0,'\\Drupal\\menu_link_content\\Form\\MenuLinkContentForm');
1288985c1288985
< INSERT INTO `menu_tree` VALUES ('header-megamenu',1642,'menu_link_content:75185cf8-8ee2-4927-8c89-8f8396ab242f','menu_link_content:6a0bde45-4306-432a-856f-b876884ba993',NULL,'','a:0:{}','base:education/survivor-dependent-benefits/','s:41:\"Survivor and dependent education benefits\";',NULL,'Drupal\\menu_link_content\\Plugin\\Menu\\MenuLinkContent','a:0:{}','menu_link_content',1,1,0,4,'a:1:{s:9:\"entity_id\";s:3:\"958\";}',0,4,1403,1479,1507,1642,0,0,0,0,0,'\\Drupal\\menu_link_content\\Form\\MenuLinkContentForm');
---
> INSERT INTO `menu_tree` VALUES ('header-megamenu',1642,'menu_link_content:75185cf8-8ee2-4927-8c89-8f8396ab242f','menu_link_content:6a0bde45-4306-432a-856f-b876884ba993','entity.node.canonical','node=984','a:1:{s:4:\"node\";s:3:\"984\";}','','s:41:\"Survivor and dependent education benefits\";',NULL,'Drupal\\menu_link_content\\Plugin\\Menu\\MenuLinkContent','a:1:{s:5:\"query\";a:0:{}}','menu_link_content',1,1,0,4,'a:1:{s:9:\"entity_id\";s:3:\"958\";}',0,4,1403,1479,1507,1642,0,0,0,0,0,'\\Drupal\\menu_link_content\\Form\\MenuLinkContentForm');
1289020,1289021c1289020,1289021
< INSERT INTO `menu_tree` VALUES ('root-benefits-hub',1751,'menu_link_content:d88171ff-7ef8-4c00-b458-168fb7e08395','',NULL,'','a:0:{}','base:family-member-benefits','s:22:\"Family member benefits\";',NULL,'Drupal\\menu_link_content\\Plugin\\Menu\\MenuLinkContent','a:0:{}','menu_link_content',1,1,0,0,'a:1:{s:9:\"entity_id\";s:3:\"970\";}',0,1,1751,0,0,0,0,0,0,0,0,'\\Drupal\\menu_link_content\\Form\\MenuLinkContentForm');
< INSERT INTO `menu_tree` VALUES ('root-benefits-hub',1752,'menu_link_content:5c0fa5ac-c80e-4986-b3b5-8a800f7c0b2b','',NULL,'','a:0:{}','base:service-member-benefits','s:23:\"Service member benefits\";',NULL,'Drupal\\menu_link_content\\Plugin\\Menu\\MenuLinkContent','a:0:{}','menu_link_content',1,1,0,0,'a:1:{s:9:\"entity_id\";s:3:\"971\";}',0,1,1752,0,0,0,0,0,0,0,0,'\\Drupal\\menu_link_content\\Form\\MenuLinkContentForm');
---
> INSERT INTO `menu_tree` VALUES ('root-benefits-hub',1751,'menu_link_content:d88171ff-7ef8-4c00-b458-168fb7e08395','','entity.node.canonical','node=810','a:1:{s:4:\"node\";s:3:\"810\";}','','s:22:\"Family member benefits\";',NULL,'Drupal\\menu_link_content\\Plugin\\Menu\\MenuLinkContent','a:1:{s:5:\"query\";a:0:{}}','menu_link_content',1,1,0,0,'a:1:{s:9:\"entity_id\";s:3:\"970\";}',0,1,1751,0,0,0,0,0,0,0,0,'\\Drupal\\menu_link_content\\Form\\MenuLinkContentForm');
> INSERT INTO `menu_tree` VALUES ('root-benefits-hub',1752,'menu_link_content:5c0fa5ac-c80e-4986-b3b5-8a800f7c0b2b','','entity.node.canonical','node=809','a:1:{s:4:\"node\";s:3:\"809\";}','','s:23:\"Service member benefits\";',NULL,'Drupal\\menu_link_content\\Plugin\\Menu\\MenuLinkContent','a:1:{s:5:\"query\";a:0:{}}','menu_link_content',1,1,0,0,'a:1:{s:9:\"entity_id\";s:3:\"971\";}',0,1,1752,0,0,0,0,0,0,0,0,'\\Drupal\\menu_link_content\\Form\\MenuLinkContentForm');
1289081,1289082c1289081,1289082
< INSERT INTO `menu_tree` VALUES ('va-lebanon',1825,'menu_link_content:71b08382-a9e7-42c0-9660-c1797ce82969','menu_link_content:418ad703-ac70-44f4-bed3-f20d851e039c',NULL,'','a:0:{}','base:lebanon-health-care/health-services/','s:15:\"Health services\";',NULL,'Drupal\\menu_link_content\\Plugin\\Menu\\MenuLinkContent','a:0:{}','menu_link_content',1,1,1,-50,'a:1:{s:9:\"entity_id\";s:4:\"1038\";}',0,3,1764,1824,1825,0,0,0,0,0,0,'\\Drupal\\menu_link_content\\Form\\MenuLinkContentForm');
< INSERT INTO `menu_tree` VALUES ('va-lebanon',1826,'menu_link_content:88a7332c-31a7-4fde-9039-c4a72aee5fc2','menu_link_content:418ad703-ac70-44f4-bed3-f20d851e039c',NULL,'','a:0:{}','base:lebanon-health-care/locations','s:9:\"Locations\";',NULL,'Drupal\\menu_link_content\\Plugin\\Menu\\MenuLinkContent','a:0:{}','menu_link_content',1,1,1,0,'a:1:{s:9:\"entity_id\";s:4:\"1039\";}',1,3,1764,1824,1826,0,0,0,0,0,0,'\\Drupal\\menu_link_content\\Form\\MenuLinkContentForm');
---
> INSERT INTO `menu_tree` VALUES ('va-lebanon',1825,'menu_link_content:71b08382-a9e7-42c0-9660-c1797ce82969','menu_link_content:418ad703-ac70-44f4-bed3-f20d851e039c','entity.node.canonical','node=3059','a:1:{s:4:\"node\";s:4:\"3059\";}','','s:15:\"Health services\";',NULL,'Drupal\\menu_link_content\\Plugin\\Menu\\MenuLinkContent','a:1:{s:5:\"query\";a:0:{}}','menu_link_content',1,1,1,-50,'a:1:{s:9:\"entity_id\";s:4:\"1038\";}',0,3,1764,1824,1825,0,0,0,0,0,0,'\\Drupal\\menu_link_content\\Form\\MenuLinkContentForm');
> INSERT INTO `menu_tree` VALUES ('va-lebanon',1826,'menu_link_content:88a7332c-31a7-4fde-9039-c4a72aee5fc2','menu_link_content:418ad703-ac70-44f4-bed3-f20d851e039c','entity.node.canonical','node=3097','a:1:{s:4:\"node\";s:4:\"3097\";}','','s:9:\"Locations\";',NULL,'Drupal\\menu_link_content\\Plugin\\Menu\\MenuLinkContent','a:1:{s:5:\"query\";a:0:{}}','menu_link_content',1,1,1,0,'a:1:{s:9:\"entity_id\";s:4:\"1039\";}',1,3,1764,1824,1826,0,0,0,0,0,0,'\\Drupal\\menu_link_content\\Form\\MenuLinkContentForm');
1289085,1289087c1289085,1289087
< INSERT INTO `menu_tree` VALUES ('va-lebanon',1829,'menu_link_content:ec974324-c7c4-4711-9b6d-a16bae2da11f','menu_link_content:449a3d3b-3083-43b9-b1d3-26f81ab08da2',NULL,'','a:0:{}','base:lebanon-health-care/events','s:6:\"Events\";',NULL,'Drupal\\menu_link_content\\Plugin\\Menu\\MenuLinkContent','a:0:{}','menu_link_content',1,1,1,-50,'a:1:{s:9:\"entity_id\";s:4:\"1042\";}',0,3,1764,1827,1829,0,0,0,0,0,0,'\\Drupal\\menu_link_content\\Form\\MenuLinkContentForm');
< INSERT INTO `menu_tree` VALUES ('va-lebanon',1830,'menu_link_content:83d78804-4a5d-4282-bb0e-a112a882906a','menu_link_content:449a3d3b-3083-43b9-b1d3-26f81ab08da2',NULL,'','a:0:{}','base:lebanon-health-care/stories','s:7:\"Stories\";',NULL,'Drupal\\menu_link_content\\Plugin\\Menu\\MenuLinkContent','a:0:{}','menu_link_content',1,1,1,-49,'a:1:{s:9:\"entity_id\";s:4:\"1043\";}',0,3,1764,1827,1830,0,0,0,0,0,0,'\\Drupal\\menu_link_content\\Form\\MenuLinkContentForm');
< INSERT INTO `menu_tree` VALUES ('va-lebanon',1831,'menu_link_content:c212901c-8741-4198-b1af-6a235862dee8','menu_link_content:449a3d3b-3083-43b9-b1d3-26f81ab08da2',NULL,'','a:0:{}','base:lebanon-health-care/news-releases','s:13:\"News releases\";',NULL,'Drupal\\menu_link_content\\Plugin\\Menu\\MenuLinkContent','a:0:{}','menu_link_content',1,1,1,-48,'a:1:{s:9:\"entity_id\";s:4:\"1044\";}',0,3,1764,1827,1831,0,0,0,0,0,0,'\\Drupal\\menu_link_content\\Form\\MenuLinkContentForm');
---
> INSERT INTO `menu_tree` VALUES ('va-lebanon',1829,'menu_link_content:ec974324-c7c4-4711-9b6d-a16bae2da11f','menu_link_content:449a3d3b-3083-43b9-b1d3-26f81ab08da2','entity.node.canonical','node=3034','a:1:{s:4:\"node\";s:4:\"3034\";}','','s:6:\"Events\";',NULL,'Drupal\\menu_link_content\\Plugin\\Menu\\MenuLinkContent','a:1:{s:5:\"query\";a:0:{}}','menu_link_content',1,1,1,-50,'a:1:{s:9:\"entity_id\";s:4:\"1042\";}',0,3,1764,1827,1829,0,0,0,0,0,0,'\\Drupal\\menu_link_content\\Form\\MenuLinkContentForm');
> INSERT INTO `menu_tree` VALUES ('va-lebanon',1830,'menu_link_content:83d78804-4a5d-4282-bb0e-a112a882906a','menu_link_content:449a3d3b-3083-43b9-b1d3-26f81ab08da2','entity.node.canonical','node=3043','a:1:{s:4:\"node\";s:4:\"3043\";}','','s:7:\"Stories\";',NULL,'Drupal\\menu_link_content\\Plugin\\Menu\\MenuLinkContent','a:1:{s:5:\"query\";a:0:{}}','menu_link_content',1,1,1,-49,'a:1:{s:9:\"entity_id\";s:4:\"1043\";}',0,3,1764,1827,1830,0,0,0,0,0,0,'\\Drupal\\menu_link_content\\Form\\MenuLinkContentForm');
> INSERT INTO `menu_tree` VALUES ('va-lebanon',1831,'menu_link_content:c212901c-8741-4198-b1af-6a235862dee8','menu_link_content:449a3d3b-3083-43b9-b1d3-26f81ab08da2','entity.node.canonical','node=3050','a:1:{s:4:\"node\";s:4:\"3050\";}','','s:13:\"News releases\";',NULL,'Drupal\\menu_link_content\\Plugin\\Menu\\MenuLinkContent','a:1:{s:5:\"query\";a:0:{}}','menu_link_content',1,1,1,-48,'a:1:{s:9:\"entity_id\";s:4:\"1044\";}',0,3,1764,1827,1831,0,0,0,0,0,0,'\\Drupal\\menu_link_content\\Form\\MenuLinkContentForm');
1289287c1289287
< INSERT INTO `menu_tree` VALUES ('decision-reviews-benefits-h',2189,'menu_link_content:0f42c738-ca30-4410-b972-f81aa76e71f2','',NULL,'','a:0:{}','base:decision-reviews','s:28:\"Decision reviews and appeals\";',NULL,'Drupal\\menu_link_content\\Plugin\\Menu\\MenuLinkContent','a:0:{}','menu_link_content',1,1,0,-50,'a:1:{s:9:\"entity_id\";s:4:\"1337\";}',1,1,2189,0,0,0,0,0,0,0,0,'\\Drupal\\menu_link_content\\Form\\MenuLinkContentForm');
---
> INSERT INTO `menu_tree` VALUES ('decision-reviews-benefits-h',2189,'menu_link_content:0f42c738-ca30-4410-b972-f81aa76e71f2','','entity.node.canonical','node=3071','a:1:{s:4:\"node\";s:4:\"3071\";}','','s:28:\"Decision reviews and appeals\";',NULL,'Drupal\\menu_link_content\\Plugin\\Menu\\MenuLinkContent','a:1:{s:5:\"query\";a:0:{}}','menu_link_content',1,1,0,-50,'a:1:{s:9:\"entity_id\";s:4:\"1337\";}',1,1,2189,0,0,0,0,0,0,0,0,'\\Drupal\\menu_link_content\\Form\\MenuLinkContentForm');

It looks as though running the following command explicitly:

drush php-eval "\Drupal::service('plugin.manager.menu.link')->rebuild();"

will rebuild the menu_tree table so that its items match the expected values. Now testing this locally.

ndouglas commented 3 years ago

Confirmed. Differences disappear after running

drush php-eval "\Drupal::service('plugin.manager.menu.link')->rebuild();"