There was a lot of fixing done for LevelDB after v5.9.0 was released. You might want to try the same test using a 5.10-SNAPSHOT and see how that goes.

On 02/11/2014 03:21 PM, jlindwall wrote:
I'm trying out leveldb persistence on Solaris (sparc).  Is this a supported
platform?

I get a DEBUG msg/stacktrace at startup saying the system cannot find
leveldbjni library, but I assume that is ok since we are using the pure java
implementation.

I then run my test with 100 durable subscribers and 50 publishers runnning
at full speed and after abut 3000-4000 messages the leveldb database seems
to get corrupted and the broker stops accepting connections.   I tried using
a non-NFS disk for the db but it made no difference.

Here's the log output; kinda weird that a condition that is shutting down
the broker is at level INFO:

2014-02-11 12:14:50,819 | INFO  | Stopping BrokerService[localhost] due to
exception, java.io.IOException:
com.google.common.util.concurrent.UncheckedExecutionException:
org.iq80.snappy.CorruptionException: Invalid copy offset for opcode starting
at 22 | org.apache.activemq.util.DefaultIOExceptionHandler | LevelDB
IOException handler.
java.io.IOException:
com.google.common.util.concurrent.UncheckedExecutionException:
org.iq80.snappy.CorruptionException: Invalid copy offset for opcode starting
at 22
         at
org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:39)
         at
org.apache.activemq.leveldb.LevelDBClient.might_fail(LevelDBClient.scala:543)
         at
org.apache.activemq.leveldb.LevelDBClient.might_fail_using_index(LevelDBClient.scala:974)
         at
org.apache.activemq.leveldb.LevelDBClient.store(LevelDBClient.scala:1302)
         at
org.apache.activemq.leveldb.DBManager$$anonfun$drainFlushes$1.apply$mcV$sp(DBManager.scala:600)
         at
org.fusesource.hawtdispatch.package$$anon$4.run(hawtdispatch.scala:357)
         at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
         at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
         at java.lang.Thread.run(Thread.java:744)
Caused by: org.iq80.leveldb.impl.DbImpl$BackgroundProcessingException:
com.google.common.util.concurrent.UncheckedExecutionException:
org.iq80.snappy.CorruptionException: Invalid copy offset for opcode starting
at 22
         at
org.iq80.leveldb.impl.DbImpl.checkBackgroundException(DbImpl.java:411)
         at org.iq80.leveldb.impl.DbImpl.createWriteBatch(DbImpl.java:707)
         at
org.apache.activemq.leveldb.LevelDBClient$RichDB.write(LevelDBClient.scala:220)
         at
org.apache.activemq.leveldb.LevelDBClient$$anonfun$store$1$$anonfun$apply$mcV$sp$14.apply(LevelDBClient.scala:1304)
         at
org.apache.activemq.leveldb.LevelDBClient$$anonfun$store$1$$anonfun$apply$mcV$sp$14.apply(LevelDBClient.scala:1303)
         at
org.apache.activemq.leveldb.RecordLog$$anonfun$appender$1.apply(RecordLog.scala:475)
         at
org.apache.activemq.leveldb.util.TimeMetric.apply(TimeMetric.scala:43)
         at
org.apache.activemq.leveldb.RecordLog.appender(RecordLog.scala:474)
         at
org.apache.activemq.leveldb.LevelDBClient$$anonfun$store$1.apply$mcV$sp(LevelDBClient.scala:1303)
         at
org.apache.activemq.leveldb.LevelDBClient$$anonfun$store$1.apply(LevelDBClient.scala:1302)
         at
org.apache.activemq.leveldb.LevelDBClient$$anonfun$store$1.apply(LevelDBClient.scala:1302)
         at
org.apache.activemq.leveldb.LevelDBClient.usingIndex(LevelDBClient.scala:968)
         at
org.apache.activemq.leveldb.LevelDBClient$$anonfun$might_fail_using_index$1.apply(LevelDBClient.scala:974)
         at
org.apache.activemq.leveldb.LevelDBClient.might_fail(LevelDBClient.scala:540)
         ... 7 more
Caused by: com.google.common.util.concurrent.UncheckedExecutionException:
org.iq80.snappy.CorruptionException: Invalid copy offset for opcode starting
at 22
         at
com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2256)
         at com.google.common.cache.LocalCache.get(LocalCache.java:3980)
         at
com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3984)
         at
com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4868)
         at org.iq80.leveldb.impl.TableCache.getTable(TableCache.java:80)
         at org.iq80.leveldb.impl.TableCache.newIterator(TableCache.java:69)
         at org.iq80.leveldb.impl.TableCache.newIterator(TableCache.java:64)
         at org.iq80.leveldb.impl.DbImpl.buildTable(DbImpl.java:983)
         at org.iq80.leveldb.impl.DbImpl.writeLevel0Table(DbImpl.java:932)
         at
org.iq80.leveldb.impl.DbImpl.compactMemTableInternal(DbImpl.java:896)
         at
org.iq80.leveldb.impl.DbImpl.backgroundCompaction(DbImpl.java:455)
         at org.iq80.leveldb.impl.DbImpl.backgroundCall(DbImpl.java:426)
         at org.iq80.leveldb.impl.DbImpl.access$100(DbImpl.java:83)
         at org.iq80.leveldb.impl.DbImpl$2.call(DbImpl.java:396)
         at org.iq80.leveldb.impl.DbImpl$2.call(DbImpl.java:390)
         at java.util.concurrent.FutureTask.run(FutureTask.java:262)
         ... 3 more
Caused by: org.iq80.snappy.CorruptionException: Invalid copy offset for
opcode starting at 22
         at
org.iq80.snappy.SnappyDecompressor.decompressAllTags(SnappyDecompressor.java:165)
         at
org.iq80.snappy.SnappyDecompressor.uncompress(SnappyDecompressor.java:76)
         at org.iq80.snappy.Snappy.uncompress(Snappy.java:43)
         at
org.iq80.leveldb.util.Snappy$IQ80Snappy.uncompress(Snappy.java:100)
         at org.iq80.leveldb.util.Snappy.uncompress(Snappy.java:160)
         at
org.iq80.leveldb.table.FileChannelTable.readBlock(FileChannelTable.java:74)
         at org.iq80.leveldb.table.Table.<init>(Table.java:60)
         at
org.iq80.leveldb.table.FileChannelTable.<init>(FileChannelTable.java:34)
         at
org.iq80.leveldb.impl.TableCache$TableAndFile.<init>(TableCache.java:117)
         at
org.iq80.leveldb.impl.TableCache$TableAndFile.<init>(TableCache.java:102)
         at org.iq80.leveldb.impl.TableCache$1.load(TableCache.java:57)
         at org.iq80.leveldb.impl.TableCache$1.load(TableCache.java:54)
         at
com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3579)
         at
com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2372)
         at
com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2335)
         at
com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2250)
         ... 18 more
2014-02-11 12:14:50,827 | INFO  | Apache ActiveMQ 5.9.0 (localhost,
ID:testapp01.xifin.com-51509-1392149584977-0:1) is shutting down |
org.apache.activemq.broker.BrokerService | IOExceptionHandler: stopping
BrokerService[localhost]
2014-02-11 12:14:50,831 | DEBUG | Unregistering MBean
org.apache.activemq:type=Broker,brokerName=localhost,connector=clientConnectors,connectorName=openwire
| org.apache.activemq.broker.jmx.ManagementContext | IOExceptionHandler:
stopping BrokerService[localhost]




--
View this message in context: 
http://activemq.2283324.n4.nabble.com/Leveldb-on-Solaris-tp4677824.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.



--
Tim Bish
Sr Software Engineer | RedHat Inc.
tim.b...@redhat.com | www.fusesource.com | www.redhat.com
skype: tabish121 | twitter: @tabish121
blog: http://timbish.blogspot.com/

Reply via email to