You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@hbase.apache.org by Ted Yu <yu...@gmail.com> on 2010/01/15 19:22:57 UTC

HBaseAdmin and ConcurrentModificationException

Hi,
We use hbase-0.20.1
I have seen this randomly fail with a ConcurrentModificationException:
      HBaseAdmin admin = new HBaseAdmin(hbaseConf);

Has anybody else seen this behavior ?

Thanks

Re: HBaseAdmin and ConcurrentModificationException

Posted by stack <st...@duboce.net>.
Don't make changes to the Configuration in your JVM after its been shared
amongst threads?  Configuration is not thread safe.  It'd be tough making it
thread-safe.  It comes from hadoop-common.
St.Ack

On Fri, Jan 15, 2010 at 11:14 AM, Ted Yu <yu...@gmail.com> wrote:

> Here is the stack:
> INFO   | jvm 1    | 2010/01/14 16:03:11 |
> java.util.ConcurrentModificationException
> INFO   | jvm 1    | 2010/01/14 16:03:11 |       at
> java.util.AbstractList$Itr.checkForComodification(Unknown Source)
> INFO   | jvm 1    | 2010/01/14 16:03:11 |       at
> java.util.AbstractList$Itr.next(Unknown Source)
> INFO   | jvm 1    | 2010/01/14 16:03:11 |       at
> org.apache.hadoop.conf.Configuration.loadResources(Configuration.java:1028)
> INFO   | jvm 1    | 2010/01/14 16:03:11 |       at
> org.apache.hadoop.conf.Configuration.getProps(Configuration.java:979)
> INFO   | jvm 1    | 2010/01/14 16:03:11 |       at
> org.apache.hadoop.conf.Configuration.get(Configuration.java:435)
> INFO   | jvm 1    | 2010/01/14 16:03:11 |       at
> org.apache.hadoop.hbase.client.HConnectionManager
> $TableServers.<init>(HConnectionManager.java:257)
> INFO   | jvm 1    | 2010/01/14 16:03:11 |       at
>
> org.apache.hadoop.hbase.client.HConnectionManager.getConnection(HConnectionManager.java:99)
> INFO   | jvm 1    | 2010/01/14 16:03:11 |       at
> org.apache.hadoop.hbase.client.HBaseAdmin.<init>(HBaseAdmin.java:68)
>
> This line in HConnectionManager caused the exception:
>      String serverClassName =
>        conf.get(REGION_SERVER_CLASS, DEFAULT_REGION_SERVER_CLASS);
>
> Strangely, reading config file threw ConcurrentModificationException:
> "Z:\kindsight\hbase\software\conf\hbase-default.xml"(117,11):
> <name>hbase.regionserver.class</name>
>
> Please advise.
>
> On Fri, Jan 15, 2010 at 10:28 AM, stack <st...@duboce.net> wrote:
>
> > You have multiple instances of HBaseAdmin floating around?   If so, why?
> >  Please paste full stack trace.  That'd help.
> > Yours,
> > St.Ack
> >
> > On Fri, Jan 15, 2010 at 10:22 AM, Ted Yu <yu...@gmail.com> wrote:
> >
> > > Hi,
> > > We use hbase-0.20.1
> > > I have seen this randomly fail with a ConcurrentModificationException:
> > >      HBaseAdmin admin = new HBaseAdmin(hbaseConf);
> > >
> > > Has anybody else seen this behavior ?
> > >
> > > Thanks
> > >
> >
>

Re: HBaseAdmin and ConcurrentModificationException

Posted by Ted Yu <yu...@gmail.com>.
Here is the stack:
INFO   | jvm 1    | 2010/01/14 16:03:11 |
java.util.ConcurrentModificationException
INFO   | jvm 1    | 2010/01/14 16:03:11 |       at
java.util.AbstractList$Itr.checkForComodification(Unknown Source)
INFO   | jvm 1    | 2010/01/14 16:03:11 |       at
java.util.AbstractList$Itr.next(Unknown Source)
INFO   | jvm 1    | 2010/01/14 16:03:11 |       at
org.apache.hadoop.conf.Configuration.loadResources(Configuration.java:1028)
INFO   | jvm 1    | 2010/01/14 16:03:11 |       at
org.apache.hadoop.conf.Configuration.getProps(Configuration.java:979)
INFO   | jvm 1    | 2010/01/14 16:03:11 |       at
org.apache.hadoop.conf.Configuration.get(Configuration.java:435)
INFO   | jvm 1    | 2010/01/14 16:03:11 |       at
org.apache.hadoop.hbase.client.HConnectionManager
$TableServers.<init>(HConnectionManager.java:257)
INFO   | jvm 1    | 2010/01/14 16:03:11 |       at
org.apache.hadoop.hbase.client.HConnectionManager.getConnection(HConnectionManager.java:99)
INFO   | jvm 1    | 2010/01/14 16:03:11 |       at
org.apache.hadoop.hbase.client.HBaseAdmin.<init>(HBaseAdmin.java:68)

This line in HConnectionManager caused the exception:
      String serverClassName =
        conf.get(REGION_SERVER_CLASS, DEFAULT_REGION_SERVER_CLASS);

Strangely, reading config file threw ConcurrentModificationException:
"Z:\kindsight\hbase\software\conf\hbase-default.xml"(117,11):
<name>hbase.regionserver.class</name>

Please advise.

On Fri, Jan 15, 2010 at 10:28 AM, stack <st...@duboce.net> wrote:

> You have multiple instances of HBaseAdmin floating around?   If so, why?
>  Please paste full stack trace.  That'd help.
> Yours,
> St.Ack
>
> On Fri, Jan 15, 2010 at 10:22 AM, Ted Yu <yu...@gmail.com> wrote:
>
> > Hi,
> > We use hbase-0.20.1
> > I have seen this randomly fail with a ConcurrentModificationException:
> >      HBaseAdmin admin = new HBaseAdmin(hbaseConf);
> >
> > Has anybody else seen this behavior ?
> >
> > Thanks
> >
>

Re: HBaseAdmin and ConcurrentModificationException

Posted by stack <st...@duboce.net>.
You have multiple instances of HBaseAdmin floating around?   If so, why?
 Please paste full stack trace.  That'd help.
Yours,
St.Ack

On Fri, Jan 15, 2010 at 10:22 AM, Ted Yu <yu...@gmail.com> wrote:

> Hi,
> We use hbase-0.20.1
> I have seen this randomly fail with a ConcurrentModificationException:
>      HBaseAdmin admin = new HBaseAdmin(hbaseConf);
>
> Has anybody else seen this behavior ?
>
> Thanks
>