Elek, Marton created HDFS-13071: ----------------------------------- Summary: Ozone: JMX name of RocksDbMetastore should be sanitized Key: HDFS-13071 URL: https://issues.apache.org/jira/browse/HDFS-13071 Project: Hadoop HDFS Issue Type: Sub-task Components: ozone Affects Versions: HDFS-7240 Reporter: Elek, Marton Assignee: Elek, Marton
JMX metrics are exposed from the RocksDB metastore since HDFS-12807. We use the filename as a property of the JMX ObjectName. Unfortunatelly the file name could contain non jmx compatible characters in case of cblock (eg. volume:iqn.2001-04.org.apache.hadoop:persistent contains : which is not allowed). {code:java} demo-datanode-2 datanode org.apache.hadoop.metrics2.MetricsException: javax.management.MalformedObjectNameException: Invalid character ':' in value part of property demo-datanode-2 datanode at org.apache.hadoop.metrics2.lib.DefaultMetricsSystem.newObjectName(DefaultMetricsSystem.java:135) demo-datanode-2 datanode at org.apache.hadoop.metrics2.lib.DefaultMetricsSystem.newMBeanName(DefaultMetricsSystem.java:110) demo-datanode-2 datanode at org.apache.hadoop.metrics2.util.MBeans.getMBeanName(MBeans.java:155) demo-datanode-2 datanode at org.apache.hadoop.metrics2.util.MBeans.register(MBeans.java:87) demo-datanode-2 datanode at org.apache.hadoop.utils.RocksDBStore.<init>(RocksDBStore.java:74) demo-datanode-2 datanode at org.apache.hadoop.utils.MetadataStoreBuilder.build(MetadataStoreBuilder.java:115) demo-datanode-2 datanode at org.apache.hadoop.ozone.container.common.helpers.ContainerUtils.createMetadata(ContainerUtils.java:260) demo-datanode-2 datanode at org.apache.hadoop.ozone.container.common.impl.ContainerManagerImpl.writeContainerInfo(ContainerManagerImpl.java:395) demo-datanode-2 datanode at org.apache.hadoop.ozone.container.common.impl.ContainerManagerImpl.createContainer(ContainerManagerImpl.java:328) demo-datanode-2 datanode at org.apache.hadoop.ozone.container.common.impl.Dispatcher.handleCreateContainer(Dispatcher.java:399) demo-datanode-2 datanode at org.apache.hadoop.ozone.container.common.impl.Dispatcher.containerProcessHandler(Dispatcher.java:158) demo-datanode-2 datanode at org.apache.hadoop.ozone.container.common.impl.Dispatcher.dispatch(Dispatcher.java:105) demo-datanode-2 datanode at org.apache.hadoop.ozone.container.common.transport.server.XceiverServerHandler.channelRead0(XceiverServerHandler.java:61) demo-datanode-2 datanode at org.apache.hadoop.ozone.container.common.transport.server.XceiverServerHandler.channelRead0(XceiverServerHandler.java:32) demo-datanode-2 datanode at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) demo-datanode-2 datanode at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:356) demo-datanode-2 datanode at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:342) demo-datanode-2 datanode at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:335) demo-datanode-2 datanode at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102) demo-datanode-2 datanode at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:356) demo-datanode-2 datanode at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:342) demo-datanode-2 datanode at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:335) demo-datanode-2 datanode at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:312) demo-datanode-2 datanode at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:286) demo-datanode-2 datanode at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:356) demo-datanode-2 datanode at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:342) demo-datanode-2 datanode at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:335) demo-datanode-2 datanode at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1302) demo-datanode-2 datanode at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:356) demo-datanode-2 datanode at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:342) demo-datanode-2 datanode at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) demo-datanode-2 datanode at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131) demo-datanode-2 datanode at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:646) demo-datanode-2 datanode at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:581) demo-datanode-2 datanode at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:498) demo-datanode-2 datanode at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:460) demo-datanode-2 datanode at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:131) demo-datanode-2 datanode at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138) demo-datanode-2 datanode at java.lang.Thread.run(Thread.java:748) demo-datanode-2 datanode Caused by: javax.management.MalformedObjectNameException: Invalid character ':' in value part of property demo-datanode-2 datanode at javax.management.ObjectName.construct(ObjectName.java:618) demo-datanode-2 datanode at javax.management.ObjectName.<init>(ObjectName.java:1382) demo-datanode-2 datanode at org.apache.hadoop.metrics2.lib.DefaultMetricsSystem.newObjectName(DefaultMetricsSystem.java:133) {code} It could be easily fixed with replacing the problematic characters. -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: hdfs-dev-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-dev-h...@hadoop.apache.org