Skip to content
This repository was archived by the owner on Dec 15, 2021. It is now read-only.
This repository was archived by the owner on Dec 15, 2021. It is now read-only.

Can not create Java functions #964

@dheerajjoshim

Description

@dheerajjoshim

Is this a BUG REPORT or FEATURE REQUEST?:
BUG REPORT

What happened:
Creating Java function will make function as NOT_READY and pod is marked as Init:CrashLoopBackOff

What you expected to happen:
Function should have been created successfully

How to reproduce it (as minimally and precisely as possible):
Create Java file. Hello.java

package io.kubeless;

import io.kubeless.Event;
import io.kubeless.Context;

import java.lang.RuntimeException;

public class Hello {
    public String hello(Event event, Context context) {
        return "Hello world!";
    }
}

Add pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <artifactId>function</artifactId>
  <name>function</name>
  <version>1.0-SNAPSHOT</version>
  <dependencies>
    <dependency>
      <groupId>io.kubeless</groupId>
      <artifactId>params</artifactId>
      <version>1.0-SNAPSHOT</version>
    </dependency>
  </dependencies>
  <parent>
    <groupId>io.kubeless</groupId>
    <artifactId>kubeless</artifactId>
    <version>1.0-SNAPSHOT</version>
  </parent>
</project>

Deploy function

kubeless function deploy hello-java -f Hello.java -d pom.xml --handler Hello.hello -r java1.8
�[36mINFO�[0m[0000] Deploying function...
�[36mINFO�[0m[0000] Function hello-java submitted for deployment
�[36mINFO�[0m[0000] Check the deployment status executing 'kubeless function ls hello-java'

Kubeless function list

kubeless function ls
NAME            NAMESPACE       HANDLER         RUNTIME         DEPENDENCIES                                            STATUS
hello           default         hello.world     python2.7                                                               1/1 READY
hello-java      default         Hello.hello     java1.8         <project xmlns="http://maven.apache.org/POM/4.0.0"      0/1 NOT READY
                                                                xmlns:xsi="http://www.w3.org/2001/XMLSchema-ins...
                                                                xsi:schemaLocation="http://maven.apache.org/POM...
                                                                http://maven.apache.org/xsd/maven-4.0.0.xsd">
                                                                  <modelVersion>4.0.0</modelVersion>
                                                                  <artifactId>function</artifactId>
                                                                  <name>function</name>
                                                                  <version>1.0-SNAPSHOT</version>
                                                                  <dependencies>
                                                                    <dependency>
                                                                      <groupId>io.kubeless</groupId>
                                                                      <artifactId>params</artifactId>
                                                                      <version>1.0-SNAPSHOT</version>
                                                                    </dependency>
                                                                  </dependencies>
                                                                  <parent>
                                                                    <groupId>io.kubeless</groupId>
                                                                    <artifactId>kubeless</artifactId>
                                                                    <version>1.0-SNAPSHOT</version>
                                                                  </parent>
                                                                </project>
nodejs          default         node.less       nodejs8                                                                 1/1 READY

Pod status

NAME                                                READY     STATUS                  RESTARTS   AGE
hello-94657547f-4th28                               1/1       Running                 0          1h
hello-java-57c87d8cd-s9l65                          0/1       Init:CrashLoopBackOff   3          1m
nodejs-798475b6cf-g6k4h                             1/1       Running                 0          38m

Pod description

kubectl.exe describe pods hello-java-57c87d8cd-s9l65
Name:           hello-java-57c87d8cd-s9l65
Namespace:      default
Node:           docker-for-desktop/192.168.65.3
Start Time:     Tue, 27 Nov 2018 13:36:45 +0530
Labels:         created-by=kubeless
                function=hello-java
                pod-template-hash=137438478
Annotations:    prometheus.io/path=/metrics
                prometheus.io/port=8080
                prometheus.io/scrape=true
Status:         Pending
IP:             10.1.16.188
Controlled By:  ReplicaSet/hello-java-57c87d8cd
Init Containers:
  prepare:
    Container ID:  docker://348af8d0208fb87aeabdc962da9fa1c3b225b0a84ee5933c3a9f7e0c9fd91503
    Image:         kubeless/unzip@sha256:f162c062973cca05459834de6ed14c039d45df8cdb76097f50b028a1621b3697
    Image ID:      docker-pullable://kubeless/unzip@sha256:f162c062973cca05459834de6ed14c039d45df8cdb76097f50b028a1621b3697
    Port:          <none>
    Host Port:     <none>
    Command:
      sh
      -c
    Args:
      echo '73cae57c53af18d70df64876eda1d4efd7b14e490fecbbf50851ad930bfc9b49  /src/Hello.java' > /tmp/func.sha256 && sha256sum -c /tmp/func.sha256 && cp /src/Hello.java /kubeless/Hello.java && cp /src/pom.xml /kubeless
    State:          Terminated
      Reason:       Completed
      Exit Code:    0
      Started:      Tue, 27 Nov 2018 13:36:47 +0530
      Finished:     Tue, 27 Nov 2018 13:36:47 +0530
    Ready:          True
    Restart Count:  0
    Environment:    <none>
    Mounts:
      /kubeless from hello-java (rw)
      /src from hello-java-deps (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-l2t6z (ro)
  compile:
    Container ID:  docker://e6281ba7ec3c188b56ea31ffa0234e8b35096d32e5e530ef9c586e243d894cf5
    Image:         kubeless/java-init@sha256:a14d846bfe53f359f706a260b95f0a9a755883b053dbd17b724e7a3cdff5bae6
    Image ID:      docker-pullable://kubeless/java-init@sha256:a14d846bfe53f359f706a260b95f0a9a755883b053dbd17b724e7a3cdff5bae6
    Port:          <none>
    Host Port:     <none>
    Command:
      sh
      -c
    Args:
      /compile-function.sh
    State:       Waiting
      Reason:    CrashLoopBackOff
    Last State:  Terminated
      Reason:    Error
      Message:   [INFO] Scanning for projects...
[ERROR] [ERROR] Some problems were encountered while processing the POMs:
[ERROR] Child module /kubeless/function/params of /kubeless/function/pom.xml does not exist @
[ERROR] Child module /kubeless/function/function of /kubeless/function/pom.xml does not exist @
[ERROR] Child module /kubeless/function/handler of /kubeless/function/pom.xml does not exist @
 @
[ERROR] The build could not read 1 project -> [Help 1]
[ERROR]
[ERROR]   The project io.kubeless:kubeless:1.0-SNAPSHOT (/kubeless/function/pom.xml) has 3 errors
[ERROR]     Child module /kubeless/function/params of /kubeless/function/pom.xml does not exist
[ERROR]     Child module /kubeless/function/function of /kubeless/function/pom.xml does not exist
[ERROR]     Child module /kubeless/function/handler of /kubeless/function/pom.xml does not exist
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException

      Exit Code:    1
      Started:      Tue, 27 Nov 2018 13:40:09 +0530
      Finished:     Tue, 27 Nov 2018 13:40:11 +0530
    Ready:          False
    Restart Count:  5
    Environment:
      KUBELESS_INSTALL_VOLUME:  /kubeless
      KUBELESS_FUNC_NAME:       hello
    Mounts:
      /kubeless from hello-java (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-l2t6z (ro)
Containers:
  hello-java:
    Container ID:
    Image:          kubeless/java@sha256:d2a59e50e8181174ad3c6096cd5d3ce82f46b7e22a6f3a109b0816787e7190d9
    Image ID:
    Port:           8080/TCP
    Host Port:      0/TCP
    State:          Waiting
      Reason:       PodInitializing
    Ready:          False
    Restart Count:  0
    Liveness:       http-get http://:8080/healthz delay=3s timeout=1s period=30s #success=1 #failure=3
    Environment:
      FUNC_HANDLER:             hello
      MOD_NAME:                 Hello
      FUNC_TIMEOUT:             180
      FUNC_RUNTIME:             java1.8
      FUNC_MEMORY_LIMIT:        0
      FUNC_PORT:                8080
      KUBELESS_INSTALL_VOLUME:  /kubeless
    Mounts:
      /kubeless from hello-java (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-l2t6z (ro)
Conditions:
  Type           Status
  Initialized    False
  Ready          False
  PodScheduled   True
Volumes:
  hello-java:
    Type:    EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:
  hello-java-deps:
    Type:      ConfigMap (a volume populated by a ConfigMap)
    Name:      hello-java
    Optional:  false
  default-token-l2t6z:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-l2t6z
    Optional:    false
QoS Class:       BestEffort
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s
                 node.kubernetes.io/unreachable:NoExecute for 300s
Events:
  Type     Reason                 Age              From                         Message
  ----     ------                 ----             ----                         -------
  Normal   Scheduled              4m               default-scheduler            Successfully assigned hello-java-57c87d8cd-s9l65 to docker-for-desktop
  Normal   SuccessfulMountVolume  4m               kubelet, docker-for-desktop  MountVolume.SetUp succeeded for volume "hello-java"
  Normal   SuccessfulMountVolume  4m               kubelet, docker-for-desktop  MountVolume.SetUp succeeded for volume "default-token-l2t6z"
  Normal   SuccessfulMountVolume  4m               kubelet, docker-for-desktop  MountVolume.SetUp succeeded for volume "hello-java-deps"
  Normal   Pulled                 4m               kubelet, docker-for-desktop  Container image "kubeless/unzip@sha256:f162c062973cca05459834de6ed14c039d45df8cdb76097f50b028a1621b3697" already present on machine
  Normal   Created                4m               kubelet, docker-for-desktop  Created container
  Normal   Started                4m               kubelet, docker-for-desktop  Started container
  Normal   Created                2m (x4 over 4m)  kubelet, docker-for-desktop  Created container
  Normal   Started                2m (x4 over 4m)  kubelet, docker-for-desktop  Started container
  Warning  BackOff                2m (x6 over 3m)  kubelet, docker-for-desktop  Back-off restarting failed container
  Normal   Pulled                 2m (x5 over 4m)  kubelet, docker-for-desktop  Container image "kubeless/java-init@sha256:a14d846bfe53f359f706a260b95f0a9a755883b053dbd17b724e7a3cdff5bae6" already present on machine

Anything else we need to know?:

Environment:

  • Kubernetes version (use kubectl version):
Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.3", GitCommit:"2bba0127d85d5a46ab4b778548be28623b32d0b0", GitTreeState:"clean", BuildDate:"2018-05-21T09:17:39Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"windows/amd64"}
Server Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.3", GitCommit:"2bba0127d85d5a46ab4b778548be28623b32d0b0", GitTreeState:"clean", BuildDate:"2018-05-21T09:05:37Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}
  • Kubeless version (use kubeless version):
    Kubeless version: v1.0.0
  • Cloud provider or physical cluster:
    Using kubernetes on docker edge channel for windows.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions