[Mulgara-dev] Backups failing Mulgara 1.2 Windows
Andrae Muys
andrae at netymon.com
Tue Apr 8 01:34:15 UTC 2008
On 08/04/2008, at 12:21 AM, Ben Hysell wrote:
> I pulled down the latest from SVN this morning and started my testing
>
>> one number that is of possible interest is what is the
>> largest node-id you can include in the file before there are
>> problems?
>
> 3145727 is the largest node ID I can include in my backup file,
> (attached), before I start getting the following on the command line:
>
> java.lang.Error: Cleaner terminated abnormally
> at sun.misc.Cleaner$1.run(Cleaner.java:130)
> at java.security.AccessController.doPrivileged(Native Method)
> at sun.misc.Cleaner.clean(Cleaner.java:127)
> at
> java.lang.ref.Reference$ReferenceHandler.run(Reference.java:124)
> Caused by: java.io.IOException: The process cannot access the file
> because anoth
> er process has locked a portion of the file
> at sun.nio.ch.FileChannelImpl.unmap0(Native Method)
> at
> sun.nio.ch.FileChannelImpl.access$000(FileChannelImpl.java:26)
> at
> sun.nio.ch.FileChannelImpl$Unmapper.run(FileChannelImpl.java:680)
> at sun.misc.Cleaner.clean(Cleaner.java:125)
> ... 1 more
>
> I'll be tracing the restore process this afternoon to see if I can
> narrow down the error to a section of code. Is there a better
> method to
> get a better more explicit thread dump that what is currently being
> produced? Thanks
From a command-line ctrl-\ under any unix - I believe ctrl-break
under windows. Also under unix sending SIGQUIT, but I don't know
what the equivalent is under windows.
If you can identify a point in the code you are interested in you can
also call Thread::getAllStackTraces(), or the various methods on
java.lang.management.ThreadMXBean for even more detailed information.
For instance I've attached the Thread-dump of an idle mulgara started
under OSX. I encourage anyone who hasn't looked at one before to
look at it, note all the various system-threads and the level of
detail regarding locks held and the stacktrace of each thread. There
is enough here to debug most deadlock bugs on the spot. In this case
what I will be looking for is to see if IntFile or BlockFile or
similar are being used when this is happening, and precisely what
they are doing.
^\Full thread dump Java HotSpot(TM) Client VM (1.5.0_13-121 mixed
mode, sharing):
"TripleWriteThread: /Users/andrae/src/mulgara/trunk/dist/server1/
xaStatementStore/xa.g_3201" daemon prio=5 tid=0x00517af0
nid=0x182be00 in Object.wait() [0xf1295000..0xf1295b30]
at java.lang.Object.wait(Native Method)
- waiting on <0x265a3178> (a
org.mulgara.store.statement.xa.TripleWriteThread)
at java.lang.Object.wait(Object.java:474)
at org.mulgara.store.statement.xa.TripleWriteThread.run
(TripleWriteThread.java:143)
- locked <0x265a3178> (a
org.mulgara.store.statement.xa.TripleWriteThread)
"TripleWriteThread: /Users/andrae/src/mulgara/trunk/dist/server1/
xaStatementStore/xa.g_3120" daemon prio=5 tid=0x00517710
nid=0x182ba00 in Object.wait() [0xf1214000..0xf1214b30]
at java.lang.Object.wait(Native Method)
- waiting on <0x26630000> (a
org.mulgara.store.statement.xa.TripleWriteThread)
at java.lang.Object.wait(Object.java:474)
at org.mulgara.store.statement.xa.TripleWriteThread.run
(TripleWriteThread.java:143)
- locked <0x26630000> (a
org.mulgara.store.statement.xa.TripleWriteThread)
"TripleWriteThread: /Users/andrae/src/mulgara/trunk/dist/server1/
xaStatementStore/xa.g_3012" daemon prio=5 tid=0x005173e0
nid=0x182b600 in Object.wait() [0xf1193000..0xf1193b30]
at java.lang.Object.wait(Native Method)
- waiting on <0x26630080> (a
org.mulgara.store.statement.xa.TripleWriteThread)
at java.lang.Object.wait(Object.java:474)
at org.mulgara.store.statement.xa.TripleWriteThread.run
(TripleWriteThread.java:143)
- locked <0x26630080> (a
org.mulgara.store.statement.xa.TripleWriteThread)
"TripleWriteThread: /Users/andrae/src/mulgara/trunk/dist/server1/
xaStatementStore/xa.g_2013" daemon prio=5 tid=0x00516f10
nid=0x1856200 in Object.wait() [0xf1112000..0xf1112b30]
at java.lang.Object.wait(Native Method)
- waiting on <0x26630100> (a
org.mulgara.store.statement.xa.TripleWriteThread)
at java.lang.Object.wait(Object.java:474)
at org.mulgara.store.statement.xa.TripleWriteThread.run
(TripleWriteThread.java:143)
- locked <0x26630100> (a
org.mulgara.store.statement.xa.TripleWriteThread)
"TripleWriteThread: /Users/andrae/src/mulgara/trunk/dist/server1/
xaStatementStore/xa.g_1203" daemon prio=5 tid=0x00516bb0
nid=0x1854400 in Object.wait() [0xf1091000..0xf1091b30]
at java.lang.Object.wait(Native Method)
- waiting on <0x26630180> (a
org.mulgara.store.statement.xa.TripleWriteThread)
at java.lang.Object.wait(Object.java:474)
at org.mulgara.store.statement.xa.TripleWriteThread.run
(TripleWriteThread.java:143)
- locked <0x26630180> (a
org.mulgara.store.statement.xa.TripleWriteThread)
"TripleWriteThread: /Users/andrae/src/mulgara/trunk/dist/server1/
xaStatementStore/xa.g_0123" daemon prio=5 tid=0x00516440
nid=0x1854000 in Object.wait() [0xf1010000..0xf1010b30]
at java.lang.Object.wait(Native Method)
- waiting on <0x26da46d0> (a
org.mulgara.store.statement.xa.TripleWriteThread)
at java.lang.Object.wait(Object.java:474)
at org.mulgara.store.statement.xa.TripleWriteThread.run
(TripleWriteThread.java:143)
- locked <0x26da46d0> (a
org.mulgara.store.statement.xa.TripleWriteThread)
"JotmClock" daemon prio=5 tid=0x00515750 nid=0x1854800 waiting on
condition [0xf0f8f000..0xf0f8fb30]
at java.lang.Thread.sleep(Native Method)
at org.objectweb.jotm.TimerManager.clock(TimerManager.java:169)
at org.objectweb.jotm.Clock.run(TimerManager.java:65)
"JotmBatch" daemon prio=5 tid=0x00515310 nid=0x184c800 in Object.wait
() [0xf0f0e000..0xf0f0eb30]
at java.lang.Object.wait(Native Method)
- waiting on <0x26d30870> (a java.util.Vector)
at java.lang.Object.wait(Object.java:474)
at org.objectweb.jotm.TimerManager.batch(TimerManager.java:221)
- locked <0x26d30870> (a java.util.Vector)
at org.objectweb.jotm.Batch.run(TimerManager.java:87)
"GC Daemon" daemon prio=2 tid=0x00514ad0 nid=0x184c400 in Object.wait
() [0xf0e8d000..0xf0e8db30]
at java.lang.Object.wait(Native Method)
- waiting on <0x26d2b770> (a sun.misc.GC$LatencyLock)
at sun.misc.GC$Daemon.run(GC.java:100)
- locked <0x26d2b770> (a sun.misc.GC$LatencyLock)
"RMI Reaper" prio=5 tid=0x005146b0 nid=0x1862800 in Object.wait()
[0xf0e0c000..0xf0e0cb30]
at java.lang.Object.wait(Native Method)
- waiting on <0x26d02e20> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
- locked <0x26d02e20> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
at sun.rmi.transport.ObjectTable$Reaper.run(ObjectTable.java:
336)
at java.lang.Thread.run(Thread.java:613)
"RMI TCP Accept-0" daemon prio=5 tid=0x005142c0 nid=0x1862400
runnable [0xf0d8b000..0xf0d8bb30]
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
- locked <0x26d2b2c0> (a java.net.SocksSocketImpl)
at java.net.ServerSocket.implAccept(ServerSocket.java:450)
at java.net.ServerSocket.accept(ServerSocket.java:421)
at sun.rmi.transport.tcp.TCPTransport.run(TCPTransport.java:
340)
at java.lang.Thread.run(Thread.java:613)
"RMI TCP Accept-1099" daemon prio=5 tid=0x00511810 nid=0x184bc00
runnable [0xf0d0a000..0xf0d0ab30]
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
- locked <0x26d00fc0> (a java.net.SocksSocketImpl)
at java.net.ServerSocket.implAccept(ServerSocket.java:450)
at java.net.ServerSocket.accept(ServerSocket.java:421)
at sun.rmi.transport.tcp.TCPTransport.run(TCPTransport.java:
340)
at java.lang.Thread.run(Thread.java:613)
"Timer-0" daemon prio=5 tid=0x00511480 nid=0x184b800 in Object.wait()
[0xf0c89000..0xf0c89b30]
at java.lang.Object.wait(Native Method)
- waiting on <0x26d01170> (a java.util.TaskQueue)
at java.lang.Object.wait(Object.java:474)
at java.util.TimerThread.mainLoop(Timer.java:483)
- locked <0x26d01170> (a java.util.TaskQueue)
at java.util.TimerThread.run(Timer.java:462)
"Low Memory Detector" daemon prio=5 tid=0x0050a700 nid=0x1815400
runnable [0x00000000..0x00000000]
"CompilerThread0" daemon prio=9 tid=0x00509d20 nid=0x1815000 waiting
on condition [0x00000000..0xf0b06450]
"Signal Dispatcher" daemon prio=9 tid=0x00509850 nid=0x1814c00
waiting on condition [0x00000000..0x00000000]
"Finalizer" daemon prio=8 tid=0x00509010 nid=0x1808000 in Object.wait
() [0xf0a04000..0xf0a04b30]
at java.lang.Object.wait(Native Method)
- waiting on <0x26cbffe8> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
- locked <0x26cbffe8> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
at java.lang.ref.Finalizer$FinalizerThread.run
(Finalizer.java:159)
"Reference Handler" daemon prio=10 tid=0x00508c70 nid=0x1807200 in
Object.wait() [0xf0983000..0xf0983b30]
at java.lang.Object.wait(Native Method)
- waiting on <0x26cc0068> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:474)
at java.lang.ref.Reference$ReferenceHandler.run
(Reference.java:116)
- locked <0x26cc0068> (a java.lang.ref.Reference$Lock)
"main" prio=5 tid=0x005013b0 nid=0x1804600 runnable
[0xf07fe000..0xf07fff70]
at java.io.RandomAccessFile.setLength(Native Method)
at org.mulgara.util.MappedIntFile.mapFile(MappedIntFile.java:
350)
- locked <0x26dc4070> (a org.mulgara.util.MappedIntFile)
at org.mulgara.util.MappedIntFile.setSize(MappedIntFile.java:
123)
at org.mulgara.store.xa.FreeList$Phase.init(FreeList.java:1367)
at org.mulgara.store.xa.FreeList$Phase.<init>(FreeList.java:
1186)
- locked <0x26dbc4b0> (a org.mulgara.store.xa.FreeList)
at org.mulgara.store.xa.FreeList$Phase.<init>(FreeList.java:
1154)
at org.mulgara.store.xa.ManagedBlockFile$Phase.<init>
(ManagedBlockFile.java:267)
at org.mulgara.store.statement.xa.TripleAVLFile$Phase.<init>
(TripleAVLFile.java:620)
at org.mulgara.store.statement.xa.XAStatementStoreImpl
$Phase.<init>(XAStatementStoreImpl.java:1513)
at
org.mulgara.store.statement.xa.XAStatementStoreImpl.selectPhase
(XAStatementStoreImpl.java:1000)
- locked <0x26daedb8> (a java.lang.Object)
- locked <0x26da47d8> (a
org.mulgara.store.statement.xa.XAStatementStoreImpl)
at
org.mulgara.resolver.store.StatementStoreResolverFactory.selectPhase
(StatementStoreResolverFactory.java:167)
at org.mulgara.resolver.Database.selectCommonPhase
(Database.java:1089)
at org.mulgara.resolver.Database.recoverDatabase
(Database.java:1032)
at org.mulgara.resolver.Database.<init>(Database.java:657)
at org.mulgara.resolver.Database.<init>(Database.java:320)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0
(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance
(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance
(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance
(Constructor.java:494)
at org.mulgara.server.AbstractServer.init
(AbstractServer.java:355)
at org.mulgara.server.EmbeddedMulgaraServer.startServer
(EmbeddedMulgaraServer.java:1581)
at org.mulgara.server.EmbeddedMulgaraServer.main
(EmbeddedMulgaraServer.java:500)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.mulgara.util.Bootstrap.invokeClass(Bootstrap.java:525)
at org.mulgara.util.Bootstrap.main(Bootstrap.java:229)
"VM Thread" prio=9 tid=0x00508420 nid=0x1803c00 runnable
"VM Periodic Task Thread" prio=9 tid=0x0050be40 nid=0x1815800 waiting
on condition
"Exception Catcher Thread" prio=10 tid=0x005015f0 nid=0x1804a00 runnable
Andrae
--
Andrae Muys
andrae at netymon.com
Senior RDF/Semantic-Web Consultant
Netymon Pty Ltd
More information about the Mulgara-dev
mailing list