You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@iotdb.apache.org by "Bo Zhang (Jira)" <ji...@apache.org> on 2022/07/26 02:26:00 UTC

[jira] [Commented] (IOTDB-3961) bug for Tsfile compact

    [ https://issues.apache.org/jira/browse/IOTDB-3961?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17571168#comment-17571168 ] 

Bo Zhang commented on IOTDB-3961:
---------------------------------

root cause is : when report Metric to Prometheus, it triggers exception, which casue CompactionWorker.run exists and can not recover.

=================================================================

2022-07-25 17:49:12,907 [pool-8-IoTDB-Compaction-3] ERROR o.a.i.d.e.c.CompactionWorker:80 - run(), CompactionWorker exception.

java.lang.IllegalArgumentException: Prometheus requires that all meters with the same name have the same set of tag keys. There is already an existing meter named 'compaction_task_count' containing tag keys [name]. The meter you are attempting to register has keys [name, type].

        at io.micrometer.prometheus.PrometheusMeterRegistry.lambda$throwExceptionOnRegistrationFailure$17(PrometheusMeterRegistry.java:444)

        at io.micrometer.core.instrument.MeterRegistry.meterRegistrationFailed(MeterRegistry.java:1028)

        at io.micrometer.prometheus.PrometheusMeterRegistry.lambda$applyToCollector$16(PrometheusMeterRegistry.java:419)

        at java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1877)

        at io.micrometer.prometheus.PrometheusMeterRegistry.applyToCollector(PrometheusMeterRegistry.java:406)

        at io.micrometer.prometheus.PrometheusMeterRegistry.newCounter(PrometheusMeterRegistry.java:109)

        at io.micrometer.core.instrument.MeterRegistry.lambda$registerMeterIfNecessary$5(MeterRegistry.java:561)

        at io.micrometer.core.instrument.MeterRegistry.getOrCreateMeter(MeterRegistry.java:614)

        at io.micrometer.core.instrument.MeterRegistry.registerMeterIfNecessary(MeterRegistry.java:568)

        at io.micrometer.core.instrument.MeterRegistry.registerMeterIfNecessary(MeterRegistry.java:561)

        at io.micrometer.core.instrument.MeterRegistry.counter(MeterRegistry.java:284)

        at io.micrometer.core.instrument.Counter$Builder.register(Counter.java:128)

        at io.micrometer.core.instrument.composite.CompositeCounter.registerNewMeter(CompositeCounter.java:50)

        at io.micrometer.core.instrument.composite.CompositeCounter.registerNewMeter(CompositeCounter.java:23)

        at io.micrometer.core.instrument.composite.AbstractCompositeMeter.add(AbstractCompositeMeter.java:66)

        at java.lang.Iterable.forEach(Iterable.java:75)

        at java.util.Collections$SetFromMap.forEach(Collections.java:5530)

        at io.micrometer.core.instrument.composite.CompositeMeterRegistry.lambda$new$0(CompositeMeterRegistry.java:65)

        at io.micrometer.core.instrument.composite.CompositeMeterRegistry.lock(CompositeMeterRegistry.java:184)

        at io.micrometer.core.instrument.composite.CompositeMeterRegistry.lambda$new$1(CompositeMeterRegistry.java:65)

        at io.micrometer.core.instrument.MeterRegistry.getOrCreateMeter(MeterRegistry.java:624)

        at io.micrometer.core.instrument.MeterRegistry.registerMeterIfNecessary(MeterRegistry.java:568)

        at io.micrometer.core.instrument.MeterRegistry.registerMeterIfNecessary(MeterRegistry.java:561)

        at io.micrometer.core.instrument.MeterRegistry.counter(MeterRegistry.java:284)

        at io.micrometer.core.instrument.Counter$Builder.register(Counter.java:128)

        at io.micrometer.core.instrument.MeterRegistry.counter(MeterRegistry.java:391)

        at io.micrometer.core.instrument.MeterRegistry.counter(MeterRegistry.java:402)

        at org.apache.iotdb.metrics.micrometer.MicrometerMetricManager.lambda$count$7(MicrometerMetricManager.java:218)

        at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660)

        at org.apache.iotdb.metrics.micrometer.MicrometerMetricManager.count(MicrometerMetricManager.java:217)

        at org.apache.iotdb.db.service.metrics.recorder.CompactionMetricsRecorder.recordTaskInfo(CompactionMetricsRecorder.java:151)

        at org.apache.iotdb.db.engine.compaction.CompactionTaskManager.removeRunningTaskFuture(CompactionTaskManager.java:286)

        at org.apache.iotdb.db.engine.compaction.task.AbstractCompactionTask.start(AbstractCompactionTask.java:81)

        at org.apache.iotdb.db.engine.compaction.CompactionWorker.run(CompactionWorker.java:75)

        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)

        at java.util.concurrent.FutureTask.run(FutureTask.java:266)

        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)

        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)

        at java.lang.Thread.run(Thread.java:748)

> bug for Tsfile compact
> ----------------------
>
>                 Key: IOTDB-3961
>                 URL: https://issues.apache.org/jira/browse/IOTDB-3961
>             Project: Apache IoTDB
>          Issue Type: Bug
>          Components: Core/Compaction
>            Reporter: Bo Zhang
>            Priority: Major
>
> find 1 critial bug during  long term stabliity testing.
> After 4 hours stabliity testing, the tsfiles' number will become bigger and bigger.
>  
> !https://aone.alibaba-inc.com/v2/api/workitem/adapter/file/url?fileIdentifier=workitem%2Falibaba%2Fdefault%2F1658719978006image.png!



--
This message was sent by Atlassian Jira
(v8.20.10#820010)