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

Reply via email to