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

Jared Stehler updated FLINK-6663:
---------------------------------
    Description: 
The web frontend fails to start when I disable web submissions, with a null 
pointer for upload dir:

2017-05-22 16:56:42.818 [main] ERROR 
org.apache.flink.runtime.webmonitor.WebMonitorUtils  - WebServer could not be 
created
java.lang.NullPointerException: null
        at 
org.apache.flink.util.Preconditions.checkNotNull(Preconditions.java:58)
        at 
org.apache.flink.runtime.webmonitor.utils.WebFrontendBootstrap.<init>(WebFrontendBootstrap.java:65)
        at 
org.apache.flink.runtime.webmonitor.WebRuntimeMonitor.<init>(WebRuntimeMonitor.java:385)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at 
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
        at 
org.apache.flink.runtime.webmonitor.WebMonitorUtils.startWebRuntimeMonitor(WebMonitorUtils.java:140)
        at 
org.apache.flink.runtime.clusterframework.BootstrapTools.startWebMonitorIfConfigured(BootstrapTools.java:195)
        at 
org.apache.flink.mesos.runtime.clusterframework.MesosApplicationMasterRunner.runPrivileged(MesosApplicationMasterRunner.java:325)
        at 
org.apache.flink.mesos.runtime.clusterframework.MesosApplicationMasterRunner$1.call(MesosApplicationMasterRunner.java:181)
        at 
org.apache.flink.mesos.runtime.clusterframework.MesosApplicationMasterRunner$1.call(MesosApplicationMasterRunner.java:178)
        at 
org.apache.flink.runtime.security.HadoopSecurityContext$1.run(HadoopSecurityContext.java:43)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:422)
        at 
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657)
        at 
org.apache.flink.runtime.security.HadoopSecurityContext.runSecured(HadoopSecurityContext.java:40)
        at 
org.apache.flink.mesos.runtime.clusterframework.MesosApplicationMasterRunner.run(MesosApplicationMasterRunner.java:178)
        at 
org.apache.flink.mesos.runtime.clusterframework.MesosApplicationMasterRunner.main(MesosApplicationMasterRunner.java:139)

This seems to be due to the code explicitly setting it to null?
{code:java}
                final boolean webSubmitAllow = cfg.isProgramSubmitEnabled();
                if (webSubmitAllow) {
                        // create storage for uploads
                        this.uploadDir = getUploadDir(config);
                        // the upload directory should either 1. exist and 
writable or 2. can be created and writable
                        if (!(uploadDir.exists() && uploadDir.canWrite()) && 
!(uploadDir.mkdir() && uploadDir.canWrite())) {
                                throw new IOException(
                                        String.format("Jar upload directory %s 
cannot be created or is not writable.",
                                                uploadDir.getAbsolutePath()));
                        }
                        LOG.info("Using directory {} for web frontend JAR file 
uploads", uploadDir);
                }
                else {
                        this.uploadDir = null;
                }
{code}

  was:
The web frontend fails to start when I disable web submissions, with a null 
pointer for upload dir:

2017-05-22 16:56:42.818 [main] ERROR 
org.apache.flink.runtime.webmonitor.WebMonitorUtils  - WebServer could not be 
created
java.lang.NullPointerException: null
        at 
org.apache.flink.util.Preconditions.checkNotNull(Preconditions.java:58)
        at 
org.apache.flink.runtime.webmonitor.utils.WebFrontendBootstrap.<init>(WebFrontendBootstrap.java:65)
        at 
org.apache.flink.runtime.webmonitor.WebRuntimeMonitor.<init>(WebRuntimeMonitor.java:385)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at 
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
        at 
org.apache.flink.runtime.webmonitor.WebMonitorUtils.startWebRuntimeMonitor(WebMonitorUtils.java:140)
        at 
org.apache.flink.runtime.clusterframework.BootstrapTools.startWebMonitorIfConfigured(BootstrapTools.java:195)
        at 
org.apache.flink.mesos.runtime.clusterframework.MesosApplicationMasterRunner.runPrivileged(MesosApplicationMasterRunner.java:325)
        at 
org.apache.flink.mesos.runtime.clusterframework.MesosApplicationMasterRunner$1.call(MesosApplicationMasterRunner.java:181)
        at 
org.apache.flink.mesos.runtime.clusterframework.MesosApplicationMasterRunner$1.call(MesosApplicationMasterRunner.java:178)
        at 
org.apache.flink.runtime.security.HadoopSecurityContext$1.run(HadoopSecurityContext.java:43)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:422)
        at 
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657)
        at 
org.apache.flink.runtime.security.HadoopSecurityContext.runSecured(HadoopSecurityContext.java:40)
        at 
org.apache.flink.mesos.runtime.clusterframework.MesosApplicationMasterRunner.run(MesosApplicationMasterRunner.java:178)
        at 
org.apache.flink.mesos.runtime.clusterframework.MesosApplicationMasterRunner.main(MesosApplicationMasterRunner.java:139)

This seems to be due to the code explicitly setting it to null?

                final boolean webSubmitAllow = cfg.isProgramSubmitEnabled();
                if (webSubmitAllow) {
                        // create storage for uploads
                        this.uploadDir = getUploadDir(config);
                        // the upload directory should either 1. exist and 
writable or 2. can be created and writable
                        if (!(uploadDir.exists() && uploadDir.canWrite()) && 
!(uploadDir.mkdir() && uploadDir.canWrite())) {
                                throw new IOException(
                                        String.format("Jar upload directory %s 
cannot be created or is not writable.",
                                                uploadDir.getAbsolutePath()));
                        }
                        LOG.info("Using directory {} for web frontend JAR file 
uploads", uploadDir);
                }
                else {
                        this.uploadDir = null;
                }



> NPE on web startup when disabling web submissions
> -------------------------------------------------
>
>                 Key: FLINK-6663
>                 URL: https://issues.apache.org/jira/browse/FLINK-6663
>             Project: Flink
>          Issue Type: Bug
>          Components: Webfrontend
>    Affects Versions: 1.3.0
>            Reporter: Jared Stehler
>
> The web frontend fails to start when I disable web submissions, with a null 
> pointer for upload dir:
> 2017-05-22 16:56:42.818 [main] ERROR 
> org.apache.flink.runtime.webmonitor.WebMonitorUtils  - WebServer could not be 
> created
> java.lang.NullPointerException: null
>       at 
> org.apache.flink.util.Preconditions.checkNotNull(Preconditions.java:58)
>       at 
> org.apache.flink.runtime.webmonitor.utils.WebFrontendBootstrap.<init>(WebFrontendBootstrap.java:65)
>       at 
> org.apache.flink.runtime.webmonitor.WebRuntimeMonitor.<init>(WebRuntimeMonitor.java:385)
>       at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>       at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
>       at 
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>       at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
>       at 
> org.apache.flink.runtime.webmonitor.WebMonitorUtils.startWebRuntimeMonitor(WebMonitorUtils.java:140)
>       at 
> org.apache.flink.runtime.clusterframework.BootstrapTools.startWebMonitorIfConfigured(BootstrapTools.java:195)
>       at 
> org.apache.flink.mesos.runtime.clusterframework.MesosApplicationMasterRunner.runPrivileged(MesosApplicationMasterRunner.java:325)
>       at 
> org.apache.flink.mesos.runtime.clusterframework.MesosApplicationMasterRunner$1.call(MesosApplicationMasterRunner.java:181)
>       at 
> org.apache.flink.mesos.runtime.clusterframework.MesosApplicationMasterRunner$1.call(MesosApplicationMasterRunner.java:178)
>       at 
> org.apache.flink.runtime.security.HadoopSecurityContext$1.run(HadoopSecurityContext.java:43)
>       at java.security.AccessController.doPrivileged(Native Method)
>       at javax.security.auth.Subject.doAs(Subject.java:422)
>       at 
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657)
>       at 
> org.apache.flink.runtime.security.HadoopSecurityContext.runSecured(HadoopSecurityContext.java:40)
>       at 
> org.apache.flink.mesos.runtime.clusterframework.MesosApplicationMasterRunner.run(MesosApplicationMasterRunner.java:178)
>       at 
> org.apache.flink.mesos.runtime.clusterframework.MesosApplicationMasterRunner.main(MesosApplicationMasterRunner.java:139)
> This seems to be due to the code explicitly setting it to null?
> {code:java}
>               final boolean webSubmitAllow = cfg.isProgramSubmitEnabled();
>               if (webSubmitAllow) {
>                       // create storage for uploads
>                       this.uploadDir = getUploadDir(config);
>                       // the upload directory should either 1. exist and 
> writable or 2. can be created and writable
>                       if (!(uploadDir.exists() && uploadDir.canWrite()) && 
> !(uploadDir.mkdir() && uploadDir.canWrite())) {
>                               throw new IOException(
>                                       String.format("Jar upload directory %s 
> cannot be created or is not writable.",
>                                               uploadDir.getAbsolutePath()));
>                       }
>                       LOG.info("Using directory {} for web frontend JAR file 
> uploads", uploadDir);
>               }
>               else {
>                       this.uploadDir = null;
>               }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to