[ https://issues.apache.org/jira/browse/MAPREDUCE-3674?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Harsh J updated MAPREDUCE-3674: ------------------------------- Target Version/s: (was: 1.1.0) > If invoked with no queueName request param, jobqueue_details.jsp injects a > null queue name into schedulers. > ----------------------------------------------------------------------------------------------------------- > > Key: MAPREDUCE-3674 > URL: https://issues.apache.org/jira/browse/MAPREDUCE-3674 > Project: Hadoop Map/Reduce > Issue Type: Bug > Components: jobtracker > Affects Versions: 1.0.0 > Reporter: Harsh J > Assignee: Harsh J > Priority: Critical > Fix For: 1.1.0 > > Attachments: MAPREDUCE-3674.patch, MAPREDUCE-3674.patch, > MAPREDUCE-3674.patch, MAPREDUCE-3674.patch, hadoop-findbugs-report.html > > > When you access /jobqueue_details.jsp manually, instead of via a link, it has > queueName set to null internally and this goes for a lookup into the > scheduling info maps as well. > As a result, if using FairScheduler, a Pool with String name = null gets > created and this brings the scheduler down. I have not tested what happens to > the CapacityScheduler, but ideally if no queueName is set in that jsp, it > should fall back to 'default'. Otherwise, this brings down the JobTracker > completely. > FairScheduler must also add a check to not create a pool with 'null' name. > The following is the strace that ensues: > {code} > ERROR org.mortbay.log: /jobqueue_details.jsp > java.lang.NullPointerException > at > org.apache.hadoop.mapred.jobqueue_005fdetails_jsp._jspService(jobqueue_005fdetails_jsp.java:71) > > at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) > at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) > at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1221) > > at > org.apache.hadoop.http.HttpServer$QuotingInputFilter.doFilter(HttpServer.java:829) > > at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212) > > at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399) > at > org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) > at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) > at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766) > at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450) > at > org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) > > at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) > at org.mortbay.jetty.Server.handle(Server.java:326) > at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) > at > org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928) > > at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549) > at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) > at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) > at > org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410) > at > org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) > INFO org.apache.hadoop.ipc.Server: IPC Server handler 2 on 9001, call > heartbeat from XYZ:MNOP: error: java.io.IOException: > java.lang.NullPointerException > java.io.IOException: java.lang.NullPointerException > at > org.apache.hadoop.mapred.SchedulingAlgorithms$FairShareComparator.compare(SchedulingAlgorithms.java:95) > > at > org.apache.hadoop.mapred.SchedulingAlgorithms$FairShareComparator.compare(SchedulingAlgorithms.java:68) > > at java.util.Arrays.mergeSort(Unknown Source) > at java.util.Arrays.sort(Unknown Source) > at java.util.Collections.sort(Unknown Source) > at org.apache.hadoop.mapred.FairScheduler.assignTasks(FairScheduler.java:435) > at org.apache.hadoop.mapred.JobTracker.heartbeat(JobTracker.java:3226) > at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) > at java.lang.reflect.Method.invoke(Unknown Source) > at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:557) > at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1434) > at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1430) > at java.security.AccessController.doPrivileged(Native Method) > at javax.security.auth.Subject.doAs(Unknown Source) > at > org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1127) > > at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1428) > {code} -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira