[ https://issues.apache.org/jira/browse/AMBARI-20875?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16038975#comment-16038975 ]
Hudson commented on AMBARI-20875: --------------------------------- FAILURE: Integrated in Jenkins build Ambari-branch-2.5 #1569 (See [https://builds.apache.org/job/Ambari-branch-2.5/1569/]) AMBARI-20875. Removing A Service Causes DB Verification To Produce (dlysnichenko: [http://git-wip-us.apache.org/repos/asf?p=ambari.git&a=commit&h=22ccdbf670f9f0888e975a73a44f264e929d218c]) * (edit) ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog252Test.java > Removing A Service Causes DB Verification To Produce Warnings > ------------------------------------------------------------- > > Key: AMBARI-20875 > URL: https://issues.apache.org/jira/browse/AMBARI-20875 > Project: Ambari > Issue Type: Bug > Components: ambari-server > Affects Versions: 2.4.2 > Reporter: Dmitry Lysnichenko > Assignee: Dmitry Lysnichenko > Fix For: 2.5.2 > > Attachments: AMBARI-20875.patch > > > When removing a service, the configurations for that service are kept for > historical purposes, but their various associations in the database are > removed (specifically, the {{serviceconfigmapping}} relationships). > After removing a service, the orphaned configurations now cause a warning to > be displayed on Ambari Server startup: > {noformat} > 2017-04-06 17:15:24,003 WARN - You have config(s): > ranger-storm-policymgr-ssl-version1467149286586,atlas-env-version1471883877194,falcon-env-version1467044148480,storm-site-version1467149286586,storm-site-version1474944944095,ranger-storm-plugin-properties-version1467149286586,hana_hadoop-env-version1476989318735,hana_hadoop-env-version1468951412523,hanaes-site-version1475773173499,hanaes-site-version1477639131416,atlas-env-version1471880496396,falcon-startup.properties-version1474944962583,ranger-storm-security-version1467149286586,falcon-env-version1474944962517,application-properties-version1471883877194,hanaes-site-version1468951412523,application-properties-version1471992143777,application-properties-version1471880496396,hana_hadoop-env-version1475790068354,hana_hadoop-env-version1477639131416,falcon-runtime.properties-version1467044148480,atlas-env-version1471992143777,hana_hadoop-env-version1475773173499,storm-env-version1467149286586,hanaes-site-version1475790068354,hanaes-site-version1476902714170,atlas-env-version1471883827584,hana_hadoop-env-version1477695406433,hanaes-site-version1476989583427,falcon-log4j-version1,falcon-env-version1474944962457,hanaes-site-version1468959251565,falcon-client.properties-version1,atlas-env-version1471993347065,falcon-startup.properties-version1467044148480,storm-cluster-log4j-version1467149286586,hanaes-site-version1472285532383,hana_hadoop-env-version1477695089738,hana_hadoop-env-version1468959251565,hana_hadoop-env-version1476989821279,atlas-log4j-version1,storm-site-version1467612840864,storm-worker-log4j-version1467149286586,ranger-storm-audit-version1467149286586,application-properties-version1471993347065,application-properties-version1471883827584,hana_hadoop-env-version1477695579450 > that is(are) not mapped (in serviceconfigmapping table) to any service! > {noformat} > These orphaned configurations have entries in both {{clusterconfig}} and > {{clusterconfigmapping}} but are otherwise not references anywhere. They > don't hurt anything, but do trigger this warning since we can't determine if > they _should_ have mappings in {{serviceconfigmapping}}. > A few options: > - When removing a service, remove configurations as well, leaving no orphans. > Some would argue that this is a bad move since re-adding the service later > would allow you to see the old configurations. I do not believe this is true > since the old configurations are never associated with the new service's > {{serviceconfig}} or {{serviceconfigmapping}}. > - Make the warning smarter somehow to ignore these since it's expected they > are orphaned. > -- Somehow determine the service which should own the config and see if it > exists in the cluster? > -- Add a new column to {{clusterconfig}} to mark it as deleted? > To clean these warnings, we had to: > {code} > CREATE TEMPORARY TABLE IF NOT EXISTS orphaned_configs AS > (SELECT > cc.config_id, > cc.type_name, > cc.version_tag > FROM clusterconfig cc, clusterconfigmapping ccm > WHERE cc.config_id NOT IN (SELECT > scm.config_id > FROM serviceconfigmapping scm) > AND cc.type_name != 'cluster-env' > AND cc.type_name = ccm.type_name > AND cc.version_tag = ccm.version_tag); > DELETE FROM clusterconfigmapping > WHERE EXISTS > (SELECT 1 FROM orphaned_configs > WHERE clusterconfigmapping.type_name = orphaned_configs.type_name AND > clusterconfigmapping.version_tag = orphaned_configs.version_tag); > DELETE FROM clusterconfig WHERE clusterconfig.config_id IN (SELECT config_id > FROM orphaned_configs); > SELECT * FROM orphaned_configs; > DROP TABLE orphaned_configs; > {code} > I've considered advanced heuristics based on service metainfo with config > dependencies, and service config mappings. But this approach may be > unreliable when given inaccurate service metainfo between stack upgrades. > Also, this approach is likely to delay server start on clusters with > thousands of configs. > So the solution Add a new column to clusterconfig to mark it as deleted. So > warning will not be generated for such cluster configs. -- This message was sent by Atlassian JIRA (v6.3.15#6346)