Support Questions

Find answers, ask questions, and share your expertise
Announcements
Celebrating as our community reaches 100,000 members! Thank you!

Ambari 2.4.2 upgrade to Ambari 2.5.0 build 1087

avatar
Master Mentor

I'm doing the following

sudo yum update ambari-server
sudo ambari-server upgrade

Using python  /usr/bin/pythonUpgrading ambari-serverERROR: Unexpected TypeError:
print_info_msg() takes exactly 1 argument (2 given)For more info run
ambari-server with -v or --verbose option
sudo ambari-server upgrade -v

Using python  /usr/bin/pythonUpgrading ambari-serverINFO: Loading properties from
/etc/ambari-server/conf/ambari.propertiesTraceback (most recent call
last):  File "/usr/sbin/ambari-server.py",
line 941, in <module>  mainBody()  File "/usr/sbin/ambari-server.py",
line 911, in mainBody  main(options, args, parser)  File "/usr/sbin/ambari-server.py",
line 863, in main  action_obj.execute()  File "/usr/sbin/ambari-server.py",
line 78, in execute  self.fn(*self.args, **self.kwargs)  File
"/usr/lib/python2.6/site-packages/ambari_server/serverUpgrade.py",
line 337, in upgrade  print_info_msg("Upgrade Ambari
Server", True)TypeError: print_info_msg()
takes exactly 1 argument (2 given)

This is an HA NN and RM cluster with MIT Kerberos on Centos 7.

1 ACCEPTED SOLUTION

avatar
Master Mentor

I was able to upgrade ambari-server, turns out ambari_commons.logging_utils.py changed print_msg_info() signature from one argument to two and I had ambari-agent still on the old version, the fix is upgrade ambari-server and agent at the same time if both coexist on a server, that way ambari_commons gets updated logging_utils package. In my case, I actually had to reinstall ambari and restore from backup as I messed up the whole thing trying out different scenarios.

this is new function signature https://github.com/apache/ambari/blob/trunk/ambari-common/src/main/python/ambari_commons/logging_uti...

#
# Prints an "info" messsage.
#
def print_info_msg(msg, forced=False):
  if forced:
    print("INFO: " + msg)
    return
  if _VERBOSE:
    print("INFO: " + msg)

this is an old one, from 2.4 branch https://github.com/apache/ambari/blob/branch-2.4.0/ambari-common/src/main/python/ambari_commons/logg...

#
# Prints an "info" messsage.
#
def print_info_msg(msg):
  if _VERBOSE:
    print("INFO: " + msg)

View solution in original post

3 REPLIES 3

avatar
Master Mentor

I was able to upgrade ambari-server, turns out ambari_commons.logging_utils.py changed print_msg_info() signature from one argument to two and I had ambari-agent still on the old version, the fix is upgrade ambari-server and agent at the same time if both coexist on a server, that way ambari_commons gets updated logging_utils package. In my case, I actually had to reinstall ambari and restore from backup as I messed up the whole thing trying out different scenarios.

this is new function signature https://github.com/apache/ambari/blob/trunk/ambari-common/src/main/python/ambari_commons/logging_uti...

#
# Prints an "info" messsage.
#
def print_info_msg(msg, forced=False):
  if forced:
    print("INFO: " + msg)
    return
  if _VERBOSE:
    print("INFO: " + msg)

this is an old one, from 2.4 branch https://github.com/apache/ambari/blob/branch-2.4.0/ambari-common/src/main/python/ambari_commons/logg...

#
# Prints an "info" messsage.
#
def print_info_msg(msg):
  if _VERBOSE:
    print("INFO: " + msg)

avatar
Master Mentor

addendum: the order of install and upgrade of ambari-server matters and it is the same for Ambari 2.4.2 as well. Morale of the story, read the documentation fully http://docs.hortonworks.com/HDPDocuments/Ambari-2.4.2.0/bk_ambari-upgrade/content/upgrade_ambari.htm...

avatar
Rising Star

@Artem Ervits

According to the upgrade instructions from 2.4.2 http://docs.hortonworks.com/HDPDocuments/Ambari-2.4.2.0/bk_ambari-upgrade/content/upgrade_ambari.htm...

You upgrade server, then agent and then upgrade the DB schema - 'ambari-server upgrade'

The order is important and should be the same for 2.5.0 as well