Details
-
Bug
-
Status: Resolved
-
Blocker
-
Resolution: Fixed
-
2.6.2
-
None
Description
There are two scenarios to cover here:
- Ambari never conf-select'd a component (maybe because of a bug or because the component didn't support it)
- The conf pointers of a component are broken
In either event, when distributing a new stack, the code detects this problem (as it would on a first-time install) and tries to fix it:
/etc/component/conf (directory) /usr/hdp/current/component -> /usr/hdp/v1/component /usr/hdp/v1/component -> /etc/component/conf
The stack distribution thinks this is a first-time installed and tries to fix the symlinks. We end up with:
/etc/component/conf -> /usr/hdp/current/component /usr/hdp/current/component -> /usr/hdp/v1/component /usr/hdp/v1/component -> /etc/component/conf /usr/hdp/v2/component -> /etc/component/v2/0
Because we're only conf-selecting v2, v1 never gets corrected since it's already installed. Thus, we have a circular symlink.
Most likely the proper fix will be:
- Iterate over the entire known conf-select structure
- Check to see the state /etc/component/conf - if it's bad, fix it to defaults
Chances are we can do this directly in conf_select.convert_conf_directories_to_symlinks:
stack_name = Script.get_stack_name() for directory_struct in dirs: if not os.path.exists(directory_struct['conf_dir']): Logger.info("Skipping the conf-select tool on {0} since {1} does not exist.".format( package, directory_struct['conf_dir'])) return
Attachments
Attachments
Issue Links
- links to