Hi all,
just to inform anyone who may experience a similar problem in the future: today I had a major issue with zmprov after I upgraded our Zimbra servers running Ubuntu 10.04_LTS from zcs-7.2.1_GA_2790.UBUNTU10_64.20120815212201 to zcs-7.2.2_GA_2852.UBUNTU10_64.20121204211915.
The ZCS upgrades used to be a smooth process until now, but this time something went wrong.
The problem was that zmprov did not work after the upgrade, it always returned such errors:
Code:
zimbra@mail1:~$ zmprov -d getAllServers
========== SOAP SEND ==========
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
  <soap:Header>
    <context xmlns="urn:zimbra">
      <nosession/>
      <userAgent name="zmprov" version="7.2.2_GA_2852"/>
    </context>
  </soap:Header>
  <soap:Body>
    <AuthRequest xmlns="urn:zimbraAdmin">
      <name>zimbra</name>
      <password>masked_pwd</password>
    </AuthRequest>
  </soap:Body>
</soap:Envelope>
===============================
Exception in thread "main" java.lang.UnsupportedOperationException: This DocumentBuilder, "org.apache.xerces.jaxp.DocumentBuilderImpl", does not support the reset functionality.  Specification "null" version "null"
	at javax.xml.parsers.DocumentBuilder.reset(DocumentBuilder.java:92)
	at com.zimbra.common.soap.W3cDomUtil.parseXML(W3cDomUtil.java:174)
	at com.zimbra.common.soap.Element.parseXML(Element.java:473)
	at com.zimbra.common.soap.SoapTransport.parseSoapResponse(SoapTransport.java:304)
	at com.zimbra.common.soap.SoapHttpTransport.invoke(SoapHttpTransport.java:260)
	at com.zimbra.common.soap.SoapHttpTransport.invoke(SoapHttpTransport.java:164)
	at com.zimbra.common.soap.SoapTransport.invoke(SoapTransport.java:407)
	at com.zimbra.common.soap.SoapTransport.invokeWithoutSession(SoapTransport.java:393)
	at com.zimbra.cs.account.soap.SoapProvisioning.invokeRequest(SoapProvisioning.java:342)
	at com.zimbra.cs.account.soap.SoapProvisioning.invoke(SoapProvisioning.java:350)
	at com.zimbra.cs.account.soap.SoapProvisioning.soapAdminAuthenticate(SoapProvisioning.java:295)
	at com.zimbra.cs.account.soap.SoapProvisioning.soapZimbraAdminAuthenticate(SoapProvisioning.java:322)
	at com.zimbra.cs.account.ProvUtil.initProvisioning(ProvUtil.java:723)
	at com.zimbra.cs.account.ProvUtil.main(ProvUtil.java:3297)
while it was working without problems when executed with the -l option (provision via LDAP instead of SOAP).
After a lot of searching I have not found anyone else having this problem, so I started digging into the zimbra_java libraries directory and discovered that there were three .jar files that were breaking zmprov; deleting those files zmprov was brought back to life.
Here are the commands:
Code:
cd /opt/zimbra/lib/jars
rm -f jetty-6.1.5.jar jetty-util-6.1.5.jar xercesImpl.jar
I understand that our servers come from a long Zimbra history (our first Zimbra installation dates back to 2008 and a few months ago I have migrated our Zimbra environment from our old Apple Xservers running Mac OS X Server 10.5 / Zimbra 5.0.22 up to two virtualized servers running Ubuntu 10 64 bit / Zimbra 7.1.4, as described here), but we should not care of similar issues because the install.sh script should do its post-upgrade cleanup properly, I noticed that after an upgrade the old versions of some zimbra components like jetty, postfix, apache are still in the /opt/zimbra directory.