[ 
https://issues.apache.org/jira/browse/HDFS-13071?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Elek, Marton updated HDFS-13071:
--------------------------------
    Attachment: HDFS-13071-HDFS-7240.001.patch

> 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
>            Priority: Major
>         Attachments: HDFS-13071-HDFS-7240.001.patch
>
>
> 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-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org

Reply via email to