You are viewing a plain text version of this content. The canonical link for it is here.
Posted to mapreduce-issues@hadoop.apache.org by "Harsh J (Updated) (JIRA)" <ji...@apache.org> on 2012/04/05 09:27:26 UTC

[jira] [Updated] (MAPREDUCE-3674) If invoked with no queueName request param, jobqueue_details.jsp injects a null queue name into schedulers.

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

Harsh J updated MAPREDUCE-3674:
-------------------------------

    Attachment: hadoop-findbugs-report.html
                MAPREDUCE-3674.patch

New patch with one test added.

{code}
-1 overall.  

    +1 @author.  The patch does not contain any @author tags.

    +1 tests included.  The patch appears to include 3 new or modified tests.

    +1 javadoc.  The javadoc tool did not generate any warning messages.

    +1 javac.  The applied patch does not increase the total number of javac compiler warnings.

    -1 findbugs.  The patch appears to introduce 196 new Findbugs (version 2.0.0) warnings.
{code}

None of the 196 findbugs are me. Report attached.
                
> 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
>         Attachments: 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