Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Getting Java heap space Error while running k8s:build #561

Closed
aniketb1985 opened this issue Jan 30, 2021 · 12 comments
Closed

Getting Java heap space Error while running k8s:build #561

aniketb1985 opened this issue Jan 30, 2021 · 12 comments
Labels
bug Something isn't working duplicate This issue or pull request already exists

Comments

@aniketb1985
Copy link

aniketb1985 commented Jan 30, 2021

Description

Getting below error while running command: mvn clean package k8s:build

[ERROR] Java heap space -> [Help 1]
java.lang.OutOfMemoryError: Java heap space
	at java.util.Arrays.copyOf(Arrays.java:3236)
	at java.io.ByteArrayOutputStream.grow(ByteArrayOutputStream.java:118)
	at java.io.ByteArrayOutputStream.ensureCapacity(ByteArrayOutputStream.java:93)
	at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:153)
	at org.apache.commons.compress.utils.IOUtils.copy(IOUtils.java:86)
	at org.apache.commons.compress.utils.IOUtils.copy(IOUtils.java:60)
	at org.apache.commons.compress.utils.IOUtils.toByteArray(IOUtils.java:226)
	at org.eclipse.jkube.kit.common.archive.JKubeTarArchiver.createTarBall(JKubeTarArchiver.java:78)
	at org.eclipse.jkube.kit.build.api.assembly.JKubeBuildTarArchiver.createArchive(JKubeBuildTarArchiver.java:79)
	at org.eclipse.jkube.kit.build.api.assembly.AssemblyManager.createBuildTarBall(AssemblyManager.java:231)
	at org.eclipse.jkube.kit.build.api.assembly.AssemblyManager.createDockerTarArchive(AssemblyManager.java:110)
	at org.eclipse.jkube.kit.build.service.docker.ArchiveService.createArchive(ArchiveService.java:118)
	at org.eclipse.jkube.kit.build.service.docker.ArchiveService.createArchive(ArchiveService.java:113)
	at org.eclipse.jkube.kit.build.service.docker.BuildService.buildImage(BuildService.java:130)
	at org.eclipse.jkube.kit.build.service.docker.BuildService.buildImage(BuildService.java:77)
	at org.eclipse.jkube.kit.config.service.kubernetes.DockerBuildService.build(DockerBuildService.java:44)
	at org.eclipse.jkube.maven.plugin.mojo.build.AbstractDockerMojo.buildAndTag(AbstractDockerMojo.java:658)
	at org.eclipse.jkube.maven.plugin.mojo.build.AbstractDockerMojo.processImageConfig(AbstractDockerMojo.java:499)
	at org.eclipse.jkube.maven.plugin.mojo.build.AbstractDockerMojo.executeBuildGoal(AbstractDockerMojo.java:628)
	at org.eclipse.jkube.maven.plugin.mojo.build.BuildMojo.executeInternal(BuildMojo.java:49)
	at org.eclipse.jkube.maven.plugin.mojo.build.AbstractDockerMojo.execute(AbstractDockerMojo.java:440)
	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
	at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
	at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)

Tried setting the maven opts to -Xmx4g but Jkube is not picking. Is there any specific way to add the maven opts?

Info

  • Eclipse JKube version : 1.01
  • Maven version (mvn -v) : 3.3.3
@manusa
Copy link
Member

manusa commented Feb 1, 2021

Do you think this can be related to #544? (is your setup based on a Dockerfile living in your project's root path?)

@aniketb1985
Copy link
Author

Yes that is right. It is based on Dockerfile based on the root path.

@manusa manusa added bug Something isn't working duplicate This issue or pull request already exists labels Feb 2, 2021
@manusa
Copy link
Member

manusa commented Feb 2, 2021

We'll consider this a duplicate of #544.

I'm closing to keep everything related to this issue in #544. If the solution we provide for that issue doesn't work for you, feel free to open a new one.

@manusa manusa closed this as completed Feb 2, 2021
@aniketb1985
Copy link
Author

Just to clarify, by solution you mean the work around...right?

@manusa
Copy link
Member

manusa commented Feb 2, 2021

You can use the workaround now (please confirm if that works for you).

But we will provide a solution that doesn't require a workaround too (hopefully in our next release)

@aniketb1985
Copy link
Author

Thank you Marc. When I run the given example - https://github.com/eclipse/jkube/tree/5703f015643c70a6043a86d4ed6eb27521d5a381/quickstarts/maven/docker-file-provided on my local windows I get the below WARNING. Is this expected?

[WARNING] The requested profile "'docker-file'" could not be activated because it does not exist.

@aniketb1985
Copy link
Author

aniketb1985 commented Feb 2, 2021

And when I ran on Jenkins I got the same error:

[DEBUG] Trying to configure client from Kubernetes config...
[DEBUG] Did not find Kubernetes config at: [/var/lib/jenkins/.kube/config]. Ignoring.
[DEBUG] Trying to configure client from service account...
[DEBUG] Did not find service account ca cert at: [/var/run/secrets/kubernetes.io/serviceaccount/ca.crt].
[WARNING] Error reading service account token from: [/var/run/secrets/kubernetes.io/serviceaccount/token]. Ignoring.
[DEBUG] Trying to configure client namespace from Kubernetes service account namespace path...
[DEBUG] Did not find service account namespace at: [/var/run/secrets/kubernetes.io/serviceaccount/namespace]. Ignoring.
[WARNING] k8s: Cannot access cluster for detecting mode: Unknown host kubernetes.default.svc: Name or service not known
[DEBUG] Trying to configure client from Kubernetes config...
[DEBUG] Did not find Kubernetes config at: [/var/lib/jenkins/.kube/config]. Ignoring.
[DEBUG] Trying to configure client from service account...
[DEBUG] Did not find service account ca cert at: [/var/run/secrets/kubernetes.io/serviceaccount/ca.crt].
[WARNING] Error reading service account token from: [/var/run/secrets/kubernetes.io/serviceaccount/token]. Ignoring.
[DEBUG] Trying to configure client namespace from Kubernetes service account namespace path...
[DEBUG] Did not find service account namespace at: [/var/run/secrets/kubernetes.io/serviceaccount/namespace]. Ignoring.
[INFO] k8s: Running in Kubernetes mode
[INFO] k8s: Building Docker image in Kubernetes mode
[INFO] k8s: Generators:
[INFO] k8s:  - quarkus
[INFO] k8s:  - spring-boot
[INFO] k8s:  - wildfly-swarm
[INFO] k8s:  - thorntail-v2
[INFO] k8s:  - wildfly-jar
[INFO] k8s:  - openliberty
[INFO] k8s:  - karaf
[INFO] k8s:  - vertx
[INFO] k8s:  - java-exec
[INFO] k8s:  - webapp
[DEBUG] k8s: Build args set {}
[DEBUG] k8s: Build args set {}
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 9.760 s
[INFO] Finished at: 2021-02-02T01:52:18-05:00
[INFO] Final Memory: 86M/360M
[INFO] ------------------------------------------------------------------------
[INFO] [jenkins-event-spy] Generated 
[ERROR] Java heap space -> [Help 1]
java.lang.OutOfMemoryError: Java heap space
	at java.util.Arrays.copyOf(Arrays.java:3236)
	at java.io.ByteArrayOutputStream.grow(ByteArrayOutputStream.java:118)
	at java.io.ByteArrayOutputStream.ensureCapacity(ByteArrayOutputStream.java:93)
	at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:153)
	at org.apache.commons.compress.utils.IOUtils.copy(IOUtils.java:86)
	at org.apache.commons.compress.utils.IOUtils.copy(IOUtils.java:60)
	at org.apache.commons.compress.utils.IOUtils.toByteArray(IOUtils.java:226)
	at org.eclipse.jkube.kit.common.archive.JKubeTarArchiver.createTarBall(JKubeTarArchiver.java:78)
	at org.eclipse.jkube.kit.build.api.assembly.JKubeBuildTarArchiver.createArchive(JKubeBuildTarArchiver.java:79)
	at org.eclipse.jkube.kit.build.api.assembly.AssemblyManager.createBuildTarBall(AssemblyManager.java:231)
	at org.eclipse.jkube.kit.build.api.assembly.AssemblyManager.createDockerTarArchive(AssemblyManager.java:110)
	at org.eclipse.jkube.kit.build.service.docker.ArchiveService.createArchive(ArchiveService.java:118)
	at org.eclipse.jkube.kit.build.service.docker.ArchiveService.createArchive(ArchiveService.java:113)
	at org.eclipse.jkube.kit.build.service.docker.BuildService.buildImage(BuildService.java:130)
	at org.eclipse.jkube.kit.build.service.docker.BuildService.buildImage(BuildService.java:77)
	at org.eclipse.jkube.kit.config.service.kubernetes.DockerBuildService.build(DockerBuildService.java:44)
	at org.eclipse.jkube.maven.plugin.mojo.build.AbstractDockerMojo.buildAndTag(AbstractDockerMojo.java:658)
	at org.eclipse.jkube.maven.plugin.mojo.build.AbstractDockerMojo.processImageConfig(AbstractDockerMojo.java:499)
	at org.eclipse.jkube.maven.plugin.mojo.build.AbstractDockerMojo.executeBuildGoal(AbstractDockerMojo.java:628)
	at org.eclipse.jkube.maven.plugin.mojo.build.BuildMojo.executeInternal(BuildMojo.java:49)
	at org.eclipse.jkube.maven.plugin.mojo.build.AbstractDockerMojo.execute(AbstractDockerMojo.java:440)
	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
	at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
	at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
[ERROR] 
[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/OutOfMemoryError
[Pipeline] }

@manusa
Copy link
Member

manusa commented Feb 2, 2021

The profile is not being detected, what command are you running exactly?

@aniketb1985
Copy link
Author

I tried with both the commands below:

mvn clean -X package k8s:build -P'context-dir'

mvn clean -X package k8s:build -P'docker-file'

@manusa
Copy link
Member

manusa commented Feb 2, 2021

Try removing the single quote, maybe that has problems in windows.

@aniketb1985
Copy link
Author

Thank you. That worked on windows. Will let you know the results on Jenkins.

@aniketb1985
Copy link
Author

aniketb1985 commented Feb 2, 2021

@manusa - It looks when we add repackage goal for spring boot as shown below.

<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<executions>
					<execution>
						<goals>
							<goal>repackage</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

Posting the error again for for reference:

[INFO] k8s: Running in Kubernetes mode [INFO] k8s: Building Docker image in Kubernetes mode [DEBUG] k8s: Build args set {} [DEBUG] k8s: Build args set {} [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 01:43 min [INFO] Finished at: 2021-02-02T07:55:04-05:00 [INFO] Final Memory: 90M/357M [INFO] ------------------------------------------------------------------------ [ERROR] Java heap space -> [Help 1] java.lang.OutOfMemoryError: Java heap space at java.util.Arrays.copyOf(Arrays.java:3236) at java.io.ByteArrayOutputStream.grow(ByteArrayOutputStream.java:118) at java.io.ByteArrayOutputStream.ensureCapacity(ByteArrayOutputStream.java:93) at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:153) at org.apache.commons.compress.utils.IOUtils.copy(IOUtils.java:86) at org.apache.commons.compress.utils.IOUtils.copy(IOUtils.java:60) at org.apache.commons.compress.utils.IOUtils.toByteArray(IOUtils.java:226) at org.eclipse.jkube.kit.common.archive.JKubeTarArchiver.createTarBall(JKubeTarArchiver.java:78) at org.eclipse.jkube.kit.build.api.assembly.JKubeBuildTarArchiver.createArchive(JKubeBuildTarArchiver.java:79) at org.eclipse.jkube.kit.build.api.assembly.AssemblyManager.createBuildTarBall(AssemblyManager.java:231) at org.eclipse.jkube.kit.build.api.assembly.AssemblyManager.createDockerTarArchive(AssemblyManager.java:110) at org.eclipse.jkube.kit.build.service.docker.ArchiveService.createArchive(ArchiveService.java:118) at org.eclipse.jkube.kit.build.service.docker.ArchiveService.createArchive(ArchiveService.java:113) at org.eclipse.jkube.kit.build.service.docker.BuildService.buildImage(BuildService.java:130) at org.eclipse.jkube.kit.build.service.docker.BuildService.buildImage(BuildService.java:77) at org.eclipse.jkube.kit.config.service.kubernetes.DockerBuildService.build(DockerBuildService.java:44) at org.eclipse.jkube.maven.plugin.mojo.build.AbstractDockerMojo.buildAndTag(AbstractDockerMojo.java:658) at org.eclipse.jkube.maven.plugin.mojo.build.AbstractDockerMojo.processImageConfig(AbstractDockerMojo.java:499) at org.eclipse.jkube.maven.plugin.mojo.build.AbstractDockerMojo.executeBuildGoal(AbstractDockerMojo.java:628) at org.eclipse.jkube.maven.plugin.mojo.build.BuildMojo.executeInternal(BuildMojo.java:49) at org.eclipse.jkube.maven.plugin.mojo.build.AbstractDockerMojo.execute(AbstractDockerMojo.java:440) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106) [ERROR] [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/OutOfMemoryError [Pipeline] }

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working duplicate This issue or pull request already exists
Projects
None yet
Development

No branches or pull requests

2 participants