> On Dec. 16, 2017, 3:35 p.m., Jonathan Hurley wrote: > > ambari-server/src/main/resources/custom_actions/scripts/install_packages.py > > Lines 160-164 (patched) > > <https://reviews.apache.org/r/64667/diff/1/?file=1919066#file1919066line161> > > > > We should not hard code this into install_packages. Can we just expose > > this method for the Livy Python files to call? > > Dmitro Lisnichenko wrote: > In this case, this code should run before install_packages.py . > Otherwise, symlinks will be badly broken, and my code will not be able to fix > that. I can move the code to restart() of Livy, but we would have to require > users (via release notes) to restart Livy before installing packages for a > new stack. > Should I move this code to restart? Or should leave it as is, intending > to refactor/generalize it at 2.6.2? > > Jonathan Hurley wrote: > I don't see how they will be badly broken - we're updating the conf > pointers after the packages are installed anyway. Let's say that we have this > problem in the system: > > /etc/livy/conf -> /usr/hdp/current/livy (broken) > /usr/hdp/current/livy-server/conf -> /etc/component/conf (wrong) > > During Livy's configure() or pre_upgrade_restart(), can we specifically > invoke conf_select.convert_conf_directories_to_symlinks() for the Livy > package? > > ``` > old_conf = directory_struct['conf_dir'] > current_dir = directory_struct['current_dir'] > if os.path.islink(old_conf): > # it's already a link; make sure it's a link to where we want it > if os.readlink(old_conf) != current_dir: > ``` > > Seems like this would allow us to detect the broken link in > /etc/livy/conf and fix it.
Ah, I dove deeper into this problem. To summarize: /usr/hdp/current/livy-client/conf -> /etc/livy/conf exists on Ambari 2.5. After an upgrade to 2.6, we distribute packages for the new stack. The code detects this problem (as it would on a first-time install) and tries to fix it: /etc/livy/conf -> /usr/hdp/current/livy-client/conf /usr/hdp/v1/livy/conf -> /etc/livy/conf /usr/hdp/v2/livy/conf -> /etc/livy/v2/0 Because we're only conf-selecting v2, v1 never gets correct since it's already installed... - Jonathan ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/64667/#review194019 ----------------------------------------------------------- On Dec. 16, 2017, 10:53 a.m., Dmitro Lisnichenko wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/64667/ > ----------------------------------------------------------- > > (Updated Dec. 16, 2017, 10:53 a.m.) > > > Review request for Ambari, Jonathan Hurley, Mahadev Konar, and Nate Cole. > > > Bugs: AMBARI-22522 > https://issues.apache.org/jira/browse/AMBARI-22522 > > > Repository: ambari > > > Description > ------- > > Adding a small, livy-only workaround into install_packages.py > > > Diffs > ----- > > ambari-server/src/main/resources/custom_actions/scripts/install_packages.py > c8497cd > > > Diff: https://reviews.apache.org/r/64667/diff/1/ > > > Testing > ------- > > mvn clean test, > live cluster check > > > Thanks, > > Dmitro Lisnichenko > >