Uploaded image for project: 'Ambari'
  1. Ambari
  2. AMBARI-18480

Ubuntu16 Requires libsnappy1v5 As a Dependency For Metrics

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Critical
    • Resolution: Fixed
    • 2.4.0
    • 2.5.0
    • ambari-metrics
    • None

    Description

      When installing Ambari Metrics on Ubuntu 16, the following error is encountered:

      2016-09-07 18:55:25,949 - Package Manager failed to install packages. Error: Execution of '/usr/bin/apt-get q -o Dpkg::Options::=-force-confdef --allow-unauthenticated --assume-yes install 'libsnappy1*'' returned 100. Reading package lists...
      Building dependency tree...
      Reading state information...
      libsnappy1v5 is already the newest version (1.1.3-2).
      libsnappy1v5 set to manually installed.
      Some packages could not be installed. This may mean that you have
      requested an impossible situation or if you are using the unstable
      distribution that some required packages have not yet been created
      or been moved out of Incoming.
      The following information may help to resolve the situation:
      The following packages have unmet dependencies:
      libsnappy1v5 : Conflicts: libsnappy1 but 1.0.5-2 is to be installed
      E: Unable to correct problems, you have held broken packages.
      Traceback (most recent call last):
      File "/var/lib/ambari-agent/cache/custom_actions/scripts/install_packages.py", line 376, in install_packages
      retry_count=agent_stack_retry_count
      File "/usr/lib/python2.6/site-packages/resource_management/core/base.py", line 155, in _init_
      self.env.run()
      File "/usr/lib/python2.6/site-packages/resource_management/core/environment.py", line 160, in run
      self.run_action(resource, action)
      File "/usr/lib/python2.6/site-packages/resource_management/core/environment.py", line 124, in run_action
      provider_action()
      File "/usr/lib/python2.6/site-packages/resource_management/core/providers/package/_init_.py", line 58, in action_upgrade
      self.upgrade_package(package_name, self.resource.use_repos, self.resource.skip_repos)
      File "/usr/lib/python2.6/site-packages/resource_management/core/providers/package/apt.py", line 53, in wrapper
      return function_to_decorate(self, name, *args[2:])
      File "/usr/lib/python2.6/site-packages/resource_management/core/providers/package/apt.py", line 116, in upgrade_package
      return self.install_package(name, use_repos, skip_repos, is_upgrade)
      File "/usr/lib/python2.6/site-packages/resource_management/core/providers/package/apt.py", line 53, in wrapper
      return function_to_decorate(self, name, *args[2:])
      File "/usr/lib/python2.6/site-packages/resource_management/core/providers/package/apt.py", line 97, in install_package
      self.checked_call_with_retries(cmd, sudo=True, env=INSTALL_CMD_ENV, logoutput=self.get_logoutput())
      File "/usr/lib/python2.6/site-packages/resource_management/core/providers/package/_init_.py", line 83, in checked_call_with_retries
      return self._call_with_retries(cmd, is_checked=True, **kwargs)
      File "/usr/lib/python2.6/site-packages/resource_management/core/providers/package/_init_.py", line 91, in _call_with_retries
      code, out = func(cmd, **kwargs)
      File "/usr/lib/python2.6/site-packages/resource_management/core/shell.py", line 71, in inner
      result = function(command, **kwargs)
      File "/usr/lib/python2.6/site-packages/resource_management/core/shell.py", line 93, in checked_call
      tries=tries, try_sleep=try_sleep)
      File "/usr/lib/python2.6/site-packages/resource_management/core/shell.py", line 141, in _call_wrapper
      result = _call(command, **kwargs_copy)
      File "/usr/lib/python2.6/site-packages/resource_management/core/shell.py", line 294, in _call
      raise Fail(err_msg)
      Fail: Execution of '/usr/bin/apt-get q -o Dpkg::Options::=-force-confdef --allow-unauthenticated --assume-yes install 'libsnappy1*'' returned 100. Reading package lists...
      Building dependency tree...
      Reading state information...
      libsnappy1v5 is already the newest version (1.1.3-2).
      libsnappy1v5 set to manually installed.
      Some packages could not be installed. This may mean that you have
      requested an impossible situation or if you are using the unstable
      distribution that some required packages have not yet been created
      or been moved out of Incoming.
      The following information may help to resolve the situation:
      The following packages have unmet dependencies:
      libsnappy1v5 : Conflicts: libsnappy1 but 1.0.5-2 is to be installed
      E: Unable to correct problems, you have held broken packages.
      Traceback (most recent call last):
      File "/var/lib/ambari-agent/cache/custom_actions/scripts/install_packages.py", line 469, in <module>
      InstallPackages().execute()
      File "/usr/lib/python2.6/site-packages/resource_management/libraries/script/script.py", line 280, in execute
      method(env)
      File "/var/lib/ambari-agent/cache/custom_actions/scripts/install_packages.py", line 179, in actionexecute
      raise Fail("Failed to distribute repositories/install packages")
      resource_management.core.exceptions.Fail: Failed to distribute repositories/install packages
      

      This is because of a recent change in how libsnappy1 is being packaged:

      -    <deb.dependency.list>${deb.python.ver},python-dev,gcc,libsnappy1</deb.dependency.list>
      +    <deb.dependency.list>${deb.python.ver},python-dev,gcc</deb.dependency.list>
           <hadoop.sink.jar>ambari-metrics-hadoop-sink-with-common-${project.version}.jar</hadoop.sink.jar>
           <storm.sink.jar>ambari-metrics-storm-sink-with-common-${project.version}.jar</storm.sink.jar>
           <storm.sink.legacy.jar>ambari-metrics-storm-sink-legacy-with-common-${project.version}.jar</storm.sink.legacy.jar>
      diff --git a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/metainfo.xml b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/metainfo.xml
      index 08b1a9d..86f4fac 100644
      --- a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/metainfo.xml
      +++ b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/metainfo.xml
      @@ -156,6 +156,9 @@
                   <package>
                     <name>gcc</name>
                   </package>
      +            <package>
      +              <name>libsnappy1*</name>
      +            </package>
                 </packages>
      

      Now, instead of shipping as a required library, we're installing libsnappy1 on the system. Ubuntu 16, however, uses the newer libsnappy1v5 library. We should change the metainfo.xml of AMBARI_METRICS to declaure libsnappy1v5*.

      Attachments

        1. AMBARI-18480.patch
          1 kB
          Dmytro Sen

        Issue Links

          Activity

            People

              dsen Dmytro Sen
              dsen Dmytro Sen
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: