[Mulgara-dev] running backup against the committed phase

Russell Uman ruman at plos.org
Wed Mar 19 19:01:57 UTC 2008


howdy!

when andrae visited plos, we discussed backup strategies for mulgara.

he said that the itql backup command could be run against the committed
phase, without a write lock, which would be an ideal backup for us
(smaller file size, no need to worry about sparse files, etc.)

however, when i try to run backup without getting a write lock, it
errors out with null pointer exceptions.

if i grab a write lock, or ensure that no one else can connect to
mulgara, backup runs without problems.

i'm using the topaz runitql script to open an itql shell. afaik, this is
just itqlShell with some topaz-specific environment and alias set up but
i could be very mistaken (hence the cross post)

my naive theories:
-do i need to invoke the commited phase in some way?

-is topaz runitql incompatible with the committed phase?

-do the null pointers signify something different (maybe we're running
out of memory trying to keep track of things while the backup runs?)

here's the error i receive in runitql (again, this same itql command
works without problems if i get a lock)

Itql Interpreter. Run ".help" for more information.
itql> backup <local:///topazproject> to <file:/tmp/20080319.1.gz>;
Error running query:
javax.xml.soap.SOAPException: ItqlInterpreter error -
org.mulgara.query.QueryException: Unable to backup to
file:/tmp/20080319.1.gz
Caused by: (QueryException) Unable to backup to file:/tmp/20080319.1.gz
Caused by: (RollbackException)
Caused by: (NullPointerException)

here's a trace from mulgara.log for the same event:

2008-03-19 11:55:48,434 WARN  ItqlInterpreter> Failed to backup server
local:///topazproject to file:/tmp/20080319.1.gz [http-9091-Processor265
org.mulgara.itql.ItqlInterpreter]
org.mulgara.query.QueryException: Unable to backup to
file:/tmp/20080319.1.gz
	at
org.mulgara.resolver.DatabaseSession.endTransactionalBlock(DatabaseSessi
on.java:1039)
	at
org.mulgara.resolver.DatabaseSession.finishTransactionalOperation(Databa
seSession.java:878)
	at
org.mulgara.resolver.DatabaseSession.execute(DatabaseSession.java:1343)
	at
org.mulgara.resolver.DatabaseSession.backup(DatabaseSession.java:1290)
	at
org.mulgara.resolver.DatabaseSession.backup(DatabaseSession.java:493)
	at
org.mulgara.itql.ItqlInterpreter.outABackupCommand(ItqlInterpreter.java:
2325)
	at
org.mulgara.itql.analysis.DepthFirstAdapter.caseABackupCommand(DepthFirs
tAdapter.java:157)
	at
org.mulgara.itql.node.ABackupCommand.apply(ABackupCommand.java:50)
	at
org.mulgara.itql.analysis.DepthFirstAdapter.caseACommandStart(DepthFirst
Adapter.java:51)
	at
org.mulgara.itql.node.ACommandStart.apply(ACommandStart.java:30)
	at
org.mulgara.itql.analysis.DepthFirstAdapter.caseStart(DepthFirstAdapter.
java:31)
	at org.mulgara.itql.node.Start.apply(Start.java:33)
	at
org.mulgara.itql.ItqlInterpreter.executeCommand(ItqlInterpreter.java:572
)
	at
org.mulgara.itql.ItqlInterpreterBean.execute(ItqlInterpreterBean.java:38
9)
	at
org.mulgara.itql.ItqlInterpreterBean.executeQueryToString(ItqlInterprete
rBean.java:444)
	at
org.topazproject.mulgara.ws.ItqlInterpreterBeanWrapper.executeQueryToStr
ing(ItqlInterpreterBeanWrapper.java:182)
	at sun.reflect.GeneratedMethodAccessor35.invoke(Unknown Source)
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
Impl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at
org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java
:397)
	at
org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.ja
va:186)
	at
org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323
)
	at
org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.j
ava:32)
	at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
	at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
	at
org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454)
	at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
	at
org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
	at
org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.j
ava:327)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:269)
	at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:188)
	at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.java:213)
	at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.java:174)
	at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:127)
	at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:117)
	at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
java:108)
	at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1
51)
	at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:87
4)
	at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.proc
essConnection(Http11BaseProtocol.java:665)
	at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint
.java:528)
	at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollow
erWorkerThread.java:81)
	at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool
.java:689)
	at java.lang.Thread.run(Thread.java:595)
Caused by: javax.transaction.RollbackException
	at
org.objectweb.jotm.TransactionImpl.commit(TransactionImpl.java:225)
	at org.objectweb.jotm.Current.commit(Current.java:442)
	at
org.mulgara.resolver.DatabaseSession.endTransactionalBlock(DatabaseSessi
on.java:1026)
	... 44 more
Caused by: java.lang.NullPointerException
	at org.mulgara.store.xa.AVLNode.release(AVLNode.java:1040)
	at
org.mulgara.store.stringpool.xa.XAStringPoolImpl$Phase$GNodeTuplesImpl.c
lose(XAStringPoolImpl.java:2728)
	at
org.mulgara.resolver.BackupOperation.backupDatabase(BackupOperation.java
:196)
	at
org.mulgara.resolver.BackupOperation.execute(BackupOperation.java:145)
	at
org.mulgara.resolver.DatabaseSession.execute(DatabaseSession.java:1339)
	... 42 more
2008-03-19 11:55:48,435 ERROR ItqlInterpreterBean> Execute query failed.
Returning error [http-9091-Processor265
org.mulgara.itql.ItqlInterpreterBean]
org.mulgara.itql.ItqlInterpreterException:
org.mulgara.query.QueryException: Unable to backup to
file:/tmp/20080319.1.gz
	at
org.mulgara.itql.ItqlInterpreter.setLastError(ItqlInterpreter.java:2479)
	at
org.mulgara.itql.ItqlInterpreter.outABackupCommand(ItqlInterpreter.java:
2342)
	at
org.mulgara.itql.analysis.DepthFirstAdapter.caseABackupCommand(DepthFirs
tAdapter.java:157)
	at
org.mulgara.itql.node.ABackupCommand.apply(ABackupCommand.java:50)
	at
org.mulgara.itql.analysis.DepthFirstAdapter.caseACommandStart(DepthFirst
Adapter.java:51)
	at
org.mulgara.itql.node.ACommandStart.apply(ACommandStart.java:30)
	at
org.mulgara.itql.analysis.DepthFirstAdapter.caseStart(DepthFirstAdapter.
java:31)
	at org.mulgara.itql.node.Start.apply(Start.java:33)
	at
org.mulgara.itql.ItqlInterpreter.executeCommand(ItqlInterpreter.java:572
)
	at
org.mulgara.itql.ItqlInterpreterBean.execute(ItqlInterpreterBean.java:38
9)
	at
org.mulgara.itql.ItqlInterpreterBean.executeQueryToString(ItqlInterprete
rBean.java:444)
	at
org.topazproject.mulgara.ws.ItqlInterpreterBeanWrapper.executeQueryToStr
ing(ItqlInterpreterBeanWrapper.java:182)
	at sun.reflect.GeneratedMethodAccessor35.invoke(Unknown Source)
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
Impl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at
org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java
:397)
	at
org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.ja
va:186)
	at
org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323
)
	at
org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.j
ava:32)
	at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
	at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
	at
org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454)
	at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
	at
org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
	at
org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.j
ava:327)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:269)
	at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:188)
	at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.java:213)
	at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.java:174)
	at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:127)
	at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:117)
	at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
java:108)
	at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1
51)
	at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:87
4)
	at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.proc
essConnection(Http11BaseProtocol.java:665)
	at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint
.java:528)
	at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollow
erWorkerThread.java:81)
	at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool
.java:689)
	at java.lang.Thread.run(Thread.java:595)
Caused by: org.mulgara.query.QueryException: Unable to backup to
file:/tmp/20080319.1.gz
	at
org.mulgara.resolver.DatabaseSession.endTransactionalBlock(DatabaseSessi
on.java:1039)
	at
org.mulgara.resolver.DatabaseSession.finishTransactionalOperation(Databa
seSession.java:878)
	at
org.mulgara.resolver.DatabaseSession.execute(DatabaseSession.java:1343)
	at
org.mulgara.resolver.DatabaseSession.backup(DatabaseSession.java:1290)
	at
org.mulgara.resolver.DatabaseSession.backup(DatabaseSession.java:493)
	at
org.mulgara.itql.ItqlInterpreter.outABackupCommand(ItqlInterpreter.java:
2325)
	... 39 more
Caused by: javax.transaction.RollbackException
	at
org.objectweb.jotm.TransactionImpl.commit(TransactionImpl.java:225)
	at org.objectweb.jotm.Current.commit(Current.java:442)
	at
org.mulgara.resolver.DatabaseSession.endTransactionalBlock(DatabaseSessi
on.java:1026)
	... 44 more
Caused by: java.lang.NullPointerException
	at org.mulgara.store.xa.AVLNode.release(AVLNode.java:1040)
	at
org.mulgara.store.stringpool.xa.XAStringPoolImpl$Phase$GNodeTuplesImpl.c
lose(XAStringPoolImpl.java:2728)
	at
org.mulgara.resolver.BackupOperation.backupDatabase(BackupOperation.java
:196)
	at
org.mulgara.resolver.BackupOperation.execute(BackupOperation.java:145)
	at
org.mulgara.resolver.DatabaseSession.execute(DatabaseSession.java:1339)
	... 42 more
2008-03-19 11:55:48,435 ERROR ItqlInterpreterBean> Failed to execute
query [http-9091-Processor265 org.mulgara.itql.ItqlInterpreterBean]
javax.xml.soap.SOAPException: ItqlInterpreter error -
org.mulgara.query.QueryException: Unable to backup to
file:/tmp/20080319.1.gz
Caused by: (QueryException) Unable to backup to file:/tmp/20080319.1.gz
Caused by: (RollbackException)
Caused by: (NullPointerException)
	at
org.mulgara.itql.ItqlInterpreterBean.execute(ItqlInterpreterBean.java:41
0)
	at
org.mulgara.itql.ItqlInterpreterBean.executeQueryToString(ItqlInterprete
rBean.java:444)
	at
org.topazproject.mulgara.ws.ItqlInterpreterBeanWrapper.executeQueryToStr
ing(ItqlInterpreterBeanWrapper.java:182)
	at sun.reflect.GeneratedMethodAccessor35.invoke(Unknown Source)
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
Impl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at
org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java
:397)
	at
org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.ja
va:186)
	at
org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323
)
	at
org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.j
ava:32)
	at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
	at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
	at
org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454)
	at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
	at
org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
	at
org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.j
ava:327)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:269)
	at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:188)
	at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.java:213)
	at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.java:174)
	at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:127)
	at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:117)
	at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
java:108)
	at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1
51)
	at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:87
4)
	at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.proc
essConnection(Http11BaseProtocol.java:665)
	at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint
.java:528)
	at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollow
erWorkerThread.java:81)
	at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool
.java:689)
	at java.lang.Thread.run(Thread.java:595)

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
This email is confidential to the intended recipient. If you have received it in error, please notify the sender and delete it from your system. Any unauthorized use, disclosure or copying is not permitted. The views or opinions presented are solely those of the sender and do not necessarily represent those of Public Library of Science unless otherwise specifically stated. Please note that neither Public Library of Science nor any of its agents accept any responsibility for any viruses that may be contained in this e-mail or its attachments and it is your responsibility to scan the e-mail and attachments (if any).




More information about the Mulgara-dev mailing list