Error upgrading server 8.5 to 8.6: Difference between revisions

No edit summary
No edit summary
Line 31: Line 31:


1. Troubleshooting
1. Troubleshooting
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.


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


We see the error "ERROR: Can't connect to license.zimbra.com:443", which is telling us that something is wrong with our network connection. What you can do is to ping the ''license.zimbra.com'' and see if you can reach it. Check your hosts file, resolv.conf, check the output from '''route -n''' and see if you have the correct gateway configured. Make sure nothing is blocking the outbound connection.
We see the error "ERROR: Can't connect to license.zimbra.com:443", which is telling us that something is wrong with our network connection. What you can do is to ping the ''license.zimbra.com'' and see if you can reach it. Check your hosts file, resolv.conf, 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 we discovered might come from using proxy server.
'''d)''' Another issue with the networking that we discovered might come from using proxy server.

Revision as of 10:56, 14 January 2015

Error during upgrading Zimbra 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

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.


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

b) Check if your support subscription is still valid.

Points a and b are the main reason for the error above. You might need to contact sales, to check the license activations. If the above points are correct we need to dig deeper.

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", which is telling us that something is wrong with our network connection. What you can do is to ping the license.zimbra.com and see if you can reach it. Check your hosts file, resolv.conf, 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 we discovered might come from using proxy server.

Jump to: navigation, search