Skip to content

4.x MeterRegistry#meters() can throw IllegalStateException #8980

Closed
@tjquinno

Description

@tjquinno

Environment Details

  • Helidon Version: 4.x
  • Helidon SE or Helidon MP SE
  • JDK version:
  • OS:
  • Docker version (if applicable):

Problem Description

Occasionally, a user is seeing code that has invoked MeterRegistry#meters() throw an exception like the one below.

Presumably, this is because a meter has been registered by another thread while the meters() method is running.

Helidon should protect against this.

java.lang.IllegalStateException: Accept exceeded fixed size of 104
	at java.base/java.util.stream.Nodes$FixedNodeBuilder.accept(Nodes.java:1233)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
	at java.base/java.util.HashMap$ValueSpliterator.forEachRemaining(HashMap.java:1787)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:575)
	at java.base/java.util.stream.AbstractPipeline.evaluateToArrayNode(AbstractPipeline.java:260)
	at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:616)
	at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:622)
	at java.base/java.util.stream.ReferencePipeline.toList(ReferencePipeline.java:627)
	at io.helidon.metrics.providers.micrometer.MMeterRegistry.meters(MMeterRegistry.java:232)

Steps to reproduce

Metadata

Metadata

Assignees

Labels

4.xVersion 4.xP2SEbugSomething isn't workingmetrics

Type

No type

Projects

Status

Closed

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions