Bug #6525
closedGot index already exists error when ran the db upgrade scripts from 2.2.1 to 2.4.1
0%
Description
When I upgraded the metacat on mn-stage-ucsb-1.test.dataone.org, I got the error:
metacat 20140417-19:33:10: [ERROR]: DBConnectionPool.openConnection - Class not found: [edu.ucsb.nceas.metacat.database.DBConnection]
connection is null.
metacat 20140417-19:33:10: [ERROR]: D1ResourceHandler: Serializing exception with code 500: Error querying system metadata: null [edu.ucsb.nceas.metacat.restservice.D1ResourceHandler]
org.dataone.service.exceptions.ServiceFailure: Error querying system metadata: null
at edu.ucsb.nceas.metacat.dataone.MNodeService.listObjects(MNodeService.java:801)
at edu.ucsb.nceas.metacat.restservice.MNResourceHandler.getObject(MNResourceHandler.java:1266)
at edu.ucsb.nceas.metacat.restservice.MNResourceHandler.handle(MNResourceHandler.java:251)
at edu.ucsb.nceas.metacat.restservice.D1RestServlet.doGet(D1RestServlet.java:75)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at edu.ucsb.nceas.metacat.restservice.D1URLFilter.doFilter(D1URLFilter.java:48)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:465)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:769)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:698)
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:891)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
at java.lang.Thread.run(Thread.java:662)
metacat 20140417-19:33:22: [ERROR]: MetacatAdminServlet.handleGetOrPost - Admin problem while handling request: DBAdmin.upgradeDatabase - SQL error when running upgrade scripts: ERROR: relation "identifier_docid_rev_log" already exists [edu.ucsb.nceas.metacat.admin.MetacatAdminServlet]
It turns out the two indexes, identifier_docid_rev_log and access_log_docid, which will be generated by upgrade-db-to-2.3.0-postgres.sql already exist in the db.