Error upgrading server 8.5 to 8.6

Error upgrading ZCS 8.5 to 8.6.

Here is an output from the upgrade that fails with an error:


# ./install.sh
Operations logged to /tmp/install.log.10103
Checking for existing installation...
   zimbra-ldap...FOUND zimbra-ldap-8.5.1_GA_3056
   zimbra-logger...FOUND zimbra-logger-8.5.1_GA_3056
   zimbra-mta...FOUND zimbra-mta-8.5.1_GA_3056
   zimbra-dnscache...FOUND zimbra-dnscache-8.5.1_GA_3056
   zimbra-snmp...FOUND zimbra-snmp-8.5.1_GA_3056
   zimbra-store...FOUND zimbra-store-8.5.1_GA_3056
   zimbra-apache...FOUND zimbra-apache-8.5.1_GA_3056
   zimbra-spell...FOUND zimbra-spell-8.5.1_GA_3056
   zimbra-convertd...FOUND zimbra-convertd-8.5.1_GA_3056
   zimbra-memcached...FOUND zimbra-memcached-8.5.1_GA_3056
   zimbra-proxy...FOUND zimbra-proxy-8.5.1_GA_3056
   zimbra-archiving...NOT FOUND
   zimbra-core...FOUND zimbra-core-8.5.1_GA_3056
ZCS upgrade from 8.5.1 to 8.6.0 will be performed.
Validating existing license is not expired and qualifies for upgrade
Error: License is expired or cannot be upgraded.
      Aborting upgrade


1. Troubleshooting

a) Check if you haven't exhausted the number of activation for the license.

b) Check if your support subscription is still valid.

c) Attach strace to the install script:

# strace -s 200 -f -o trace ./install.sh

(The command will trace all child processes and it will save the output to a file called trace.)

Here is an output from the trace file that shows us the problem:

25891 rt_sigaction(SIGSYS, NULL, {SIG_DFL, [], 0}, 8) = 0
25891 write(1, "ERROR: Can't connect to license.zimbra.com:443\n\nNo route to host at /opt/zimbra/zimbramon/lib/LWP/Protocol/http.pm line 51.\n\n", 125) = 125
25891 exit_group(1)                     = ?
25891 +++ exited with 1 +++
25890 <... wait4 resumed> [{WIFEXITED(s) && WEXITSTATUS(s) == 1}], 0, NULL) = 25891
25890 rt_sigaction(SIGINT, {0x45d1d0, [], SA_RESTORER, 0x7f6ac5029c30}, {0x4438a0, [], SA_RESTORER, 0x7f6ac5029c30}, 8) = 0
25890 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
25890 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=25891, si_status=1, si_utime=16,  si_stime=5} ---
25890 wait4(-1, 0x7ffff29f4258, WNOHANG, NULL) = -1 ECHILD (No child processes)
25890 rt_sigreturn()                    = 0
25890 exit_group(1)                     = ?
25890 +++ exited with 1 +++
25607 <... read resumed> "", 128)       = 0
25607 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=25890, si_status=1, si_utime=0,  si_stime=0} --- 
25607 wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 1}], WNOHANG, NULL) = 25890
25607 wait4(-1, 0x7ffff29f4518, WNOHANG, NULL) = -1 ECHILD (No child processes)
25607 rt_sigreturn()                    = 0
25607 close(3)                          = 0
25607 rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
25607 rt_sigaction(SIGINT, {0x4438a0, [], SA_RESTORER, 0x7f6ac5029c30}, {SIG_DFL, [],  SA_RESTORER, 0x7f6ac5029c30}, 8) = 0 
25607 rt_sigaction(SIGINT, {SIG_DFL, [], SA_RESTORER, 0x7f6ac5029c30}, {0x4438a0, [], SA_RESTORER, 0x7f6ac5029c30}, 8) = 0
25607 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
25607 write(1, "Error: License is expired or cannot be upgraded.\n", 49) = 49
25607 write(1, "       Aborting upgrade\n", 24) = 24
25607 rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
25607 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
25607 exit_group(1)                     = ?
25607 +++ exited with 1 +++


We see the error "ERROR: Can't connect to license.zimbra.com:443". From the code where this error is mentioned:

# vim /opt/zimbra/zimbramon/lib/LWP/Protocol/http.pm


unless ($sock) {

# IO::Socket::INET leaves additional error messages in $@

my $status = "Can't connect to $host:$port";

if ($@ =~ /\bconnect: (.*)/ ||

$@ =~ /\b(Bad hostname)\b/ ||

$@ =~ /\b(certificate verify failed)\b/ ||

$@ =~ /\b(Crypt-SSLeay can't verify hostnames)\b/

) {

$status .= " ($1)";

}

die "$status\n\n$@";


From the above, we see it checks the connections, hostname and certificates. If we receive this error, most probably the problem is in the networking configuration. What you can do is to ping the license.zimbra.com and see if you can reach it. Check your hosts file, resolv.conf (DNS), check the output from route -n and see if you have the correct gateway configured. Make sure nothing is blocking the outbound connection.

The best and fastest way to check if you can reach the license server is to run the following command:

$ zmlicense --ping
HTTP/1.1 200 OK


d) Another issue with the networking that may cause this error is the use of a proxy server.

I opened a bug regarding the proxy, as it seems the installer ignores the proxy environment variables from the OS on Ubuntu 14.04.1: Bug 97304.

Update: The bug 97304 is now resolved.

Jump to: navigation, search