keith-ratcliffe opened a new issue #2341:
URL: https://github.com/apache/accumulo/issues/2341


   Discovered this while testing DataWave on 2.1.0-SNAPSHOT (5f20e386)....
   Minor compactions are failing as a result of `ClassCastException`, as shown 
below, which arises from a `deepCopy` call in this [DataWave 
iterator](https://github.com/NationalSecurityAgency/datawave/blob/feature/accumulo-2.0/warehouse/ingest-core/src/main/java/datawave/iterators/PropogatingIterator.java#L285),
 which is configured for all scopes on the given table
   
   I note that 
[org.apache.accumulo.core.iterators.SortedMapIterator](https://github.com/apache/accumulo/blob/main/core/src/main/java/org/apache/accumulo/core/iterators/SortedMapIterator.java)
 no longer implements `InterruptibleIterator` as in previous versions. That 
appears to explain the issue, but perhaps there's a workaround or something 
we're doing in DW that no longer makes sense for 2.1.x(?)
   ```
   [compaction.FileCompactor] ERROR: class 
org.apache.accumulo.core.iterators.SortedMapIterator cannot be cast to class 
org.apache.accumulo.core.iteratorsImpl.system.InterruptibleIterator 
(org.apache.accumulo.core.iterators.SortedMapIterator and 
org.apache.accumulo.core.iteratorsImpl.system.InterruptibleIterator are in 
unnamed module of loader 'app')
   java.lang.ClassCastException: class 
org.apache.accumulo.core.iterators.SortedMapIterator cannot be cast to class 
org.apache.accumulo.core.iteratorsImpl.system.InterruptibleIterator 
(org.apache.accumulo.core.iterators.SortedMapIterator and 
org.apache.accumulo.core.iteratorsImpl.system.InterruptibleIterator are in 
unnamed module of loader 'app')
           at 
org.apache.accumulo.core.iteratorsImpl.system.LocalityGroupIterator$LocalityGroup.<init>(LocalityGroupIterator.java:48)
 ~[accumulo-core-2.1.0-SNAPSHOT.jar:2.1.0-SNAPSHOT]
           at 
org.apache.accumulo.core.iteratorsImpl.system.LocalityGroupIterator.deepCopy(LocalityGroupIterator.java:307)
 ~[accumulo-core-2.1.0-SNAPSHOT.jar:2.1.0-SNAPSHOT]
           at 
org.apache.accumulo.core.iteratorsImpl.system.MultiIterator.<init>(MultiIterator.java:54)
 ~[accumulo-core-2.1.0-SNAPSHOT.jar:2.1.0-SNAPSHOT]
           at 
org.apache.accumulo.core.iteratorsImpl.system.MultiIterator.deepCopy(MultiIterator.java:46)
 ~[accumulo-core-2.1.0-SNAPSHOT.jar:2.1.0-SNAPSHOT]
           at 
org.apache.accumulo.core.iteratorsImpl.system.MultiIterator.deepCopy(MultiIterator.java:38)
 ~[accumulo-core-2.1.0-SNAPSHOT.jar:2.1.0-SNAPSHOT]
           at 
org.apache.accumulo.server.compaction.CountingIterator.<init>(CountingIterator.java:44)
 ~[accumulo-server-base-2.1.0-SNAPSHOT.jar:2.1.0-SNAPSHOT]
           at 
org.apache.accumulo.server.compaction.CountingIterator.deepCopy(CountingIterator.java:40)
 ~[accumulo-server-base-2.1.0-SNAPSHOT.jar:2.1.0-SNAPSHOT]
           at 
org.apache.accumulo.server.compaction.CountingIterator.deepCopy(CountingIterator.java:32)
 ~[accumulo-server-base-2.1.0-SNAPSHOT.jar:2.1.0-SNAPSHOT]
           at 
org.apache.accumulo.core.iteratorsImpl.system.DeletingIterator.<init>(DeletingIterator.java:51)
 ~[accumulo-core-2.1.0-SNAPSHOT.jar:2.1.0-SNAPSHOT]
           at 
org.apache.accumulo.core.iteratorsImpl.system.DeletingIterator.deepCopy(DeletingIterator.java:47)
 ~[accumulo-core-2.1.0-SNAPSHOT.jar:2.1.0-SNAPSHOT]
           at 
org.apache.accumulo.core.iteratorsImpl.system.DeletingIterator.deepCopy(DeletingIterator.java:37)
 ~[accumulo-core-2.1.0-SNAPSHOT.jar:2.1.0-SNAPSHOT]
           at 
org.apache.accumulo.core.iteratorsImpl.system.ColumnFamilySkippingIterator.deepCopy(ColumnFamilySkippingIterator.java:107)
 ~[accumulo-core-2.1.0-SNAPSHOT.jar:2.1.0-SNAPSHOT]
           at 
datawave.iterators.PropogatingIterator.init(PropogatingIterator.java:285) ~[?:?]
           at 
org.apache.accumulo.core.conf.IterConfigUtil.loadIterators(IterConfigUtil.java:221)
 ~[accumulo-core-2.1.0-SNAPSHOT.jar:2.1.0-SNAPSHOT]
           at 
org.apache.accumulo.core.conf.IterConfigUtil.convertItersAndLoad(IterConfigUtil.java:188)
 ~[accumulo-core-2.1.0-SNAPSHOT.jar:2.1.0-SNAPSHOT]
           at 
org.apache.accumulo.server.compaction.FileCompactor.compactLocalityGroup(FileCompactor.java:359)
 ~[accumulo-server-base-2.1.0-SNAPSHOT.jar:2.1.0-SNAPSHOT]
           at 
org.apache.accumulo.server.compaction.FileCompactor.call(FileCompactor.java:222)
 ~[accumulo-server-base-2.1.0-SNAPSHOT.jar:2.1.0-SNAPSHOT]
           at 
org.apache.accumulo.tserver.tablet.MinorCompactor.call(MinorCompactor.java:97) 
~[accumulo-tserver-2.1.0-SNAPSHOT.jar:2.1.0-SNAPSHOT]
           at 
org.apache.accumulo.tserver.tablet.Tablet.minorCompact(Tablet.java:800) 
~[accumulo-tserver-2.1.0-SNAPSHOT.jar:2.1.0-SNAPSHOT]
           at 
org.apache.accumulo.tserver.tablet.MinorCompactionTask.run(MinorCompactionTask.java:99)
 ~[accumulo-tserver-2.1.0-SNAPSHOT.jar:2.1.0-SNAPSHOT]
           at 
org.apache.accumulo.tserver.tablet.Tablet.minorCompactNow(Tablet.java:933) 
~[accumulo-tserver-2.1.0-SNAPSHOT.jar:2.1.0-SNAPSHOT]
           at 
org.apache.accumulo.tserver.AssignmentHandler.run(AssignmentHandler.java:174) 
~[accumulo-tserver-2.1.0-SNAPSHOT.jar:2.1.0-SNAPSHOT]
           at 
org.apache.accumulo.tserver.ActiveAssignmentRunnable.run(ActiveAssignmentRunnable.java:63)
 ~[accumulo-tserver-2.1.0-SNAPSHOT.jar:2.1.0-SNAPSHOT]
           at 
org.apache.htrace.wrappers.TraceRunnable.run(TraceRunnable.java:57) 
~[htrace-core-3.2.0-incubating.jar:3.2.0-incubating]
           at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) 
~[?:?]
           at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) 
~[?:?]
           at java.lang.Thread.run(Thread.java:829) [?:?]
   2021-10-28T18:29:47,925 [tablet.MinorCompactor] WARN : MinC failed ....
   ```
   **And here's the table config...**
   ```
   config -t datawave.shard -np
   
-----------+---------------------------------------------+----------------------------------------------------------------
   SCOPE      | NAME                                        | VALUE
   
-----------+---------------------------------------------+----------------------------------------------------------------
   default    | table.balancer ............................ | 
org.apache.accumulo.core.spi.balancer.SimpleLoadBalancer
   table      |    @override .............................. | 
datawave.ingest.table.balancer.ShardedTableTabletBalancer
   default    | table.bloom.enabled ....................... | false
   default    | table.bloom.error.rate .................... | 0.5%
   default    | table.bloom.hash.type ..................... | murmur
   default    | table.bloom.key.functor ................... | 
org.apache.accumulo.core.file.keyfunctor.RowFunctor
   default    | table.bloom.load.threshold ................ | 1
   default    | table.bloom.size .......................... | 1048576
   default    | table.bulk.max.tablets .................... | 0
   default    | table.cache.block.enable .................. | false
   default    | table.cache.index.enable .................. | true
   
   default    | table.class.loader.context ................ |         ## From 
my accumulo.properties:
   system     |    @override .............................. | extlib  ##   
general.vfs.context.classpath.extlib=file://${ACCUMULO_HOME}/lib/ext/.*.jar"
   
   default    | table.classpath.context ................... |
   default    | table.compaction.configurer ............... |
   default    | table.compaction.dispatcher ............... | 
org.apache.accumulo.core.spi.compaction.SimpleCompactionDispatcher
   default    | table.compaction.major.everything.idle .... | 1h
   default    | table.compaction.major.ratio .............. | 3
   default    | table.compaction.minor.idle ............... | 5m
   default    | table.compaction.minor.logs.threshold ..... | 3
   default    | table.compaction.selection.expiration.ms .. | 2m
   default    | table.compaction.selector ................. |
   table      | table.constraint.1 ........................ | 
org.apache.accumulo.core.constraints.DefaultKeySizeConstraint
   default    | table.durability .......................... | sync
   default    | table.failures.ignore ..................... | false
   default    | table.file.blocksize ...................... | 0B
   default    | table.file.compress.blocksize ............. | 100k
   default    | table.file.compress.blocksize.index ....... | 128k
   default    | table.file.compress.type .................. | gz
   default    | table.file.max ............................ | 15
   default    | table.file.replication .................... | 0
   default    | table.file.summary.maxSize ................ | 256k
   default    | table.file.type ........................... | rf
   default    | table.formatter ........................... | 
org.apache.accumulo.core.util.format.DefaultFormatter
   table      | table.group.fullcontent ................... | d
   table      | table.group.termfrequency ................. | tf
   default    | table.groups.enabled ...................... |
   table      |    @override .............................. | 
termfrequency,fullcontent
   default    | table.interepreter ........................ | 
org.apache.accumulo.core.util.interpret.DefaultScanInterpreter
   table      | table.iterator.majc.agg ................... | 
10,datawave.iterators.PropogatingIterator
   table      | table.iterator.majc.agg.opt.tf ............ | 
datawave.ingest.table.aggregator.TextIndexAggregator
   table      | table.iterator.majc.vers .................. | 
20,org.apache.accumulo.core.iterators.user.VersioningIterator
   table      | table.iterator.majc.vers.opt.maxVersions .. | 1
   table      | table.iterator.minc.agg ................... | 
10,datawave.iterators.PropogatingIterator
   table      | table.iterator.minc.agg.opt.tf ............ | 
datawave.ingest.table.aggregator.TextIndexAggregator
   table      | table.iterator.minc.vers .................. | 
20,org.apache.accumulo.core.iterators.user.VersioningIterator
   table      | table.iterator.minc.vers.opt.maxVersions .. | 1
   table      | table.iterator.scan.agg ................... | 
10,datawave.iterators.PropogatingIterator
   table      | table.iterator.scan.agg.opt.tf ............ | 
datawave.ingest.table.aggregator.TextIndexAggregator
   table      | table.iterator.scan.vers .................. | 
20,org.apache.accumulo.core.iterators.user.VersioningIterator
   table      | table.iterator.scan.vers.opt.maxVersions .. | 1
   default    | table.majc.compaction.strategy ............ | 
org.apache.accumulo.tserver.compaction.DefaultCompactionStrategy
   default    | table.replication ......................... | false
   default    | table.sampler ............................. |
   default    | table.scan.dispatcher ..................... | 
org.apache.accumulo.core.spi.scan.SimpleScanDispatcher
   default    | table.scan.max.memory ..................... | 512k
   default    | table.security.scan.visibility.default .... |
   default    | table.split.endrow.size.max ............... | 10k
   default    | table.split.threshold ..................... | 1G
   default    | table.suspend.duration .................... | 0s
   default    | table.walog.enabled ....................... | true
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to