You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tajo.apache.org by Jihoon Son <ji...@apache.org> on 2013/07/04 10:49:33 UTC

NullPointerException occurs during a junit test

Hi, guys

I faced a strange situation.
When I run 'mvn verify', all tests are passed.

However, when I run a test by 'mvn test
-Dtest=org.apache.tajo.SelectQuery#testSelect()', a NullPointerException
occurs.
The same errors occur for all tests in org.apache.tajo.SelectQuery.

The error code is as follows.

====================================================================================================
2013-07-04 17:30:30,003 ERROR master.TaskRunnerLauncherImpl
(TaskRunnerLauncherImpl.java:launch(419)) - Container launch failed for
container_1372926617706_0001_01_000001 : java.lang.NullPointerException
at
org.apache.hadoop.yarn.proto.YarnProtos$StringStringMapProto$Builder.setValue(YarnProtos.java:24622)
at
org.apache.hadoop.yarn.api.records.impl.pb.ContainerLaunchContextPBImpl$3$1.next(ContainerLaunchContextPBImpl.java:420)
at
org.apache.hadoop.yarn.api.records.impl.pb.ContainerLaunchContextPBImpl$3$1.next(ContainerLaunchContextPBImpl.java:408)
at
com.google.protobuf.AbstractMessageLite$Builder.addAll(AbstractMessageLite.java:310)
at
org.apache.hadoop.yarn.proto.YarnProtos$ContainerLaunchContextProto$Builder.addAllEnvironment(YarnProtos.java:21993)
at
org.apache.hadoop.yarn.api.records.impl.pb.ContainerLaunchContextPBImpl.addEnvToProto(ContainerLaunchContextPBImpl.java:431)
at
org.apache.hadoop.yarn.api.records.impl.pb.ContainerLaunchContextPBImpl.mergeLocalToBuilder(ContainerLaunchContextPBImpl.java:99)
at
org.apache.hadoop.yarn.api.records.impl.pb.ContainerLaunchContextPBImpl.mergeLocalToProto(ContainerLaunchContextPBImpl.java:112)
at
org.apache.hadoop.yarn.api.records.impl.pb.ContainerLaunchContextPBImpl.getProto(ContainerLaunchContextPBImpl.java:72)
at
org.apache.hadoop.yarn.api.protocolrecords.impl.pb.StartContainerRequestPBImpl.convertToProtoFormat(StartContainerRequestPBImpl.java:104)
at
org.apache.hadoop.yarn.api.protocolrecords.impl.pb.StartContainerRequestPBImpl.mergeLocalToBuilder(StartContainerRequestPBImpl.java:58)
at
org.apache.hadoop.yarn.api.protocolrecords.impl.pb.StartContainerRequestPBImpl.mergeLocalToProto(StartContainerRequestPBImpl.java:65)
at
org.apache.hadoop.yarn.api.protocolrecords.impl.pb.StartContainerRequestPBImpl.getProto(StartContainerRequestPBImpl.java:50)
at
org.apache.hadoop.yarn.api.impl.pb.client.ContainerManagerPBClientImpl.startContainer(ContainerManagerPBClientImpl.java:103)
at
org.apache.tajo.master.TaskRunnerLauncherImpl$ContainerProxy.launch(TaskRunnerLauncherImpl.java:387)
at
org.apache.tajo.master.TaskRunnerLauncherImpl$LaunchRunner.run(TaskRunnerLauncherImpl.java:130)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:679)
=======================================================================================================

I think that this occurs because a ContainerManager is not ready before
TaskRunnerLauncher is launched.

Do you have any idea?

Thanks,
Jihoon

Re: NullPointerException occurs during a junit test

Posted by Jihoon Son <gh...@gmail.com>.
Hi, Hyunsik

It works well after configuring the JVM option.
Thanks!

Jihoon

2013/7/5 Hyunsik Choi <hy...@apache.org>

> TestSelectQuery is integration test. So, it requires the JVM option
> '-Dtajo.test=TRUE'. If this jvm option is not given, ContainerLauncherImpl
> tries to find shell environment variables set by bin/tajo script.
>
> Best regards,
> Hyunsik
>
>
> On Thu, Jul 4, 2013 at 5:49 PM, Jihoon Son <ji...@apache.org> wrote:
>
> > Hi, guys
> >
> > I faced a strange situation.
> > When I run 'mvn verify', all tests are passed.
> >
> > However, when I run a test by 'mvn test
> > -Dtest=org.apache.tajo.SelectQuery#testSelect()', a NullPointerException
> > occurs.
> > The same errors occur for all tests in org.apache.tajo.SelectQuery.
> >
> > The error code is as follows.
> >
> >
> >
> ====================================================================================================
> > 2013-07-04 17:30:30,003 ERROR master.TaskRunnerLauncherImpl
> > (TaskRunnerLauncherImpl.java:launch(419)) - Container launch failed for
> > container_1372926617706_0001_01_000001 : java.lang.NullPointerException
> > at
> >
> >
> org.apache.hadoop.yarn.proto.YarnProtos$StringStringMapProto$Builder.setValue(YarnProtos.java:24622)
> > at
> >
> >
> org.apache.hadoop.yarn.api.records.impl.pb.ContainerLaunchContextPBImpl$3$1.next(ContainerLaunchContextPBImpl.java:420)
> > at
> >
> >
> org.apache.hadoop.yarn.api.records.impl.pb.ContainerLaunchContextPBImpl$3$1.next(ContainerLaunchContextPBImpl.java:408)
> > at
> >
> >
> com.google.protobuf.AbstractMessageLite$Builder.addAll(AbstractMessageLite.java:310)
> > at
> >
> >
> org.apache.hadoop.yarn.proto.YarnProtos$ContainerLaunchContextProto$Builder.addAllEnvironment(YarnProtos.java:21993)
> > at
> >
> >
> org.apache.hadoop.yarn.api.records.impl.pb.ContainerLaunchContextPBImpl.addEnvToProto(ContainerLaunchContextPBImpl.java:431)
> > at
> >
> >
> org.apache.hadoop.yarn.api.records.impl.pb.ContainerLaunchContextPBImpl.mergeLocalToBuilder(ContainerLaunchContextPBImpl.java:99)
> > at
> >
> >
> org.apache.hadoop.yarn.api.records.impl.pb.ContainerLaunchContextPBImpl.mergeLocalToProto(ContainerLaunchContextPBImpl.java:112)
> > at
> >
> >
> org.apache.hadoop.yarn.api.records.impl.pb.ContainerLaunchContextPBImpl.getProto(ContainerLaunchContextPBImpl.java:72)
> > at
> >
> >
> org.apache.hadoop.yarn.api.protocolrecords.impl.pb.StartContainerRequestPBImpl.convertToProtoFormat(StartContainerRequestPBImpl.java:104)
> > at
> >
> >
> org.apache.hadoop.yarn.api.protocolrecords.impl.pb.StartContainerRequestPBImpl.mergeLocalToBuilder(StartContainerRequestPBImpl.java:58)
> > at
> >
> >
> org.apache.hadoop.yarn.api.protocolrecords.impl.pb.StartContainerRequestPBImpl.mergeLocalToProto(StartContainerRequestPBImpl.java:65)
> > at
> >
> >
> org.apache.hadoop.yarn.api.protocolrecords.impl.pb.StartContainerRequestPBImpl.getProto(StartContainerRequestPBImpl.java:50)
> > at
> >
> >
> org.apache.hadoop.yarn.api.impl.pb.client.ContainerManagerPBClientImpl.startContainer(ContainerManagerPBClientImpl.java:103)
> > at
> >
> >
> org.apache.tajo.master.TaskRunnerLauncherImpl$ContainerProxy.launch(TaskRunnerLauncherImpl.java:387)
> > at
> >
> >
> org.apache.tajo.master.TaskRunnerLauncherImpl$LaunchRunner.run(TaskRunnerLauncherImpl.java:130)
> > at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> > at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
> > at java.util.concurrent.FutureTask.run(FutureTask.java:166)
> > at
> >
> >
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
> > at
> >
> >
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> > at java.lang.Thread.run(Thread.java:679)
> >
> >
> =======================================================================================================
> >
> > I think that this occurs because a ContainerManager is not ready before
> > TaskRunnerLauncher is launched.
> >
> > Do you have any idea?
> >
> > Thanks,
> > Jihoon
> >
>



-- 
Jihoon Son

Database & Information Systems Group,
Prof. Yon Dohn Chung Lab.
Dept. of Computer Science & Engineering,
Korea University
1, 5-ga, Anam-dong, Seongbuk-gu,
Seoul, 136-713, Republic of Korea

Tel : +82-2-3290-3580
E-mail : jihoonson@korea.ac.kr

Re: NullPointerException occurs during a junit test

Posted by Hyunsik Choi <hy...@apache.org>.
TestSelectQuery is integration test. So, it requires the JVM option
'-Dtajo.test=TRUE'. If this jvm option is not given, ContainerLauncherImpl
tries to find shell environment variables set by bin/tajo script.

Best regards,
Hyunsik


On Thu, Jul 4, 2013 at 5:49 PM, Jihoon Son <ji...@apache.org> wrote:

> Hi, guys
>
> I faced a strange situation.
> When I run 'mvn verify', all tests are passed.
>
> However, when I run a test by 'mvn test
> -Dtest=org.apache.tajo.SelectQuery#testSelect()', a NullPointerException
> occurs.
> The same errors occur for all tests in org.apache.tajo.SelectQuery.
>
> The error code is as follows.
>
>
> ====================================================================================================
> 2013-07-04 17:30:30,003 ERROR master.TaskRunnerLauncherImpl
> (TaskRunnerLauncherImpl.java:launch(419)) - Container launch failed for
> container_1372926617706_0001_01_000001 : java.lang.NullPointerException
> at
>
> org.apache.hadoop.yarn.proto.YarnProtos$StringStringMapProto$Builder.setValue(YarnProtos.java:24622)
> at
>
> org.apache.hadoop.yarn.api.records.impl.pb.ContainerLaunchContextPBImpl$3$1.next(ContainerLaunchContextPBImpl.java:420)
> at
>
> org.apache.hadoop.yarn.api.records.impl.pb.ContainerLaunchContextPBImpl$3$1.next(ContainerLaunchContextPBImpl.java:408)
> at
>
> com.google.protobuf.AbstractMessageLite$Builder.addAll(AbstractMessageLite.java:310)
> at
>
> org.apache.hadoop.yarn.proto.YarnProtos$ContainerLaunchContextProto$Builder.addAllEnvironment(YarnProtos.java:21993)
> at
>
> org.apache.hadoop.yarn.api.records.impl.pb.ContainerLaunchContextPBImpl.addEnvToProto(ContainerLaunchContextPBImpl.java:431)
> at
>
> org.apache.hadoop.yarn.api.records.impl.pb.ContainerLaunchContextPBImpl.mergeLocalToBuilder(ContainerLaunchContextPBImpl.java:99)
> at
>
> org.apache.hadoop.yarn.api.records.impl.pb.ContainerLaunchContextPBImpl.mergeLocalToProto(ContainerLaunchContextPBImpl.java:112)
> at
>
> org.apache.hadoop.yarn.api.records.impl.pb.ContainerLaunchContextPBImpl.getProto(ContainerLaunchContextPBImpl.java:72)
> at
>
> org.apache.hadoop.yarn.api.protocolrecords.impl.pb.StartContainerRequestPBImpl.convertToProtoFormat(StartContainerRequestPBImpl.java:104)
> at
>
> org.apache.hadoop.yarn.api.protocolrecords.impl.pb.StartContainerRequestPBImpl.mergeLocalToBuilder(StartContainerRequestPBImpl.java:58)
> at
>
> org.apache.hadoop.yarn.api.protocolrecords.impl.pb.StartContainerRequestPBImpl.mergeLocalToProto(StartContainerRequestPBImpl.java:65)
> at
>
> org.apache.hadoop.yarn.api.protocolrecords.impl.pb.StartContainerRequestPBImpl.getProto(StartContainerRequestPBImpl.java:50)
> at
>
> org.apache.hadoop.yarn.api.impl.pb.client.ContainerManagerPBClientImpl.startContainer(ContainerManagerPBClientImpl.java:103)
> at
>
> org.apache.tajo.master.TaskRunnerLauncherImpl$ContainerProxy.launch(TaskRunnerLauncherImpl.java:387)
> at
>
> org.apache.tajo.master.TaskRunnerLauncherImpl$LaunchRunner.run(TaskRunnerLauncherImpl.java:130)
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
> at java.util.concurrent.FutureTask.run(FutureTask.java:166)
> at
>
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
> at
>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> at java.lang.Thread.run(Thread.java:679)
>
> =======================================================================================================
>
> I think that this occurs because a ContainerManager is not ready before
> TaskRunnerLauncher is launched.
>
> Do you have any idea?
>
> Thanks,
> Jihoon
>