ballerina-lang icon indicating copy to clipboard operation
ballerina-lang copied to clipboard

[Bug]: OOM when building health.hl7v2commons with bal9

Open nirmal070125 opened this issue 8 months ago • 7 comments

Description

https://github.com/ballerina-platform/module-ballerinax-health.hl7v2/tree/main/commons - update the ballerina version and remove those explicit dependencies from the Ballerina.toml.

bal build gives following error;

java.lang.OutOfMemoryError: Java heap space
	at java.base/java.util.Arrays.copyOf(Arrays.java:3537)
	at java.base/java.io.ByteArrayOutputStream.ensureCapacity(ByteArrayOutputStream.java:100)
	at java.base/java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:130)
	at java.base/java.io.DataOutputStream.write(DataOutputStream.java:112)
	at org.wso2.ballerinalang.compiler.bir.writer.BIRBinaryWriter.serialize(BIRBinaryWriter.java:90)
	at io.ballerina.projects.ModuleContext.generateBIR(ModuleContext.java:523)
	at io.ballerina.projects.ModuleContext.generateCodeInternal(ModuleContext.java:472)
	at io.ballerina.projects.ModuleCompilationState$4.generatePlatformSpecificCode(ModuleCompilationState.java:132)
	at io.ballerina.projects.ModuleContext.generatePlatformSpecificCode(ModuleContext.java:387)
	at io.ballerina.projects.JBallerinaBackend.performCodeGen(JBallerinaBackend.java:173)
	at io.ballerina.projects.JBallerinaBackend.<init>(JBallerinaBackend.java:142)
	at io.ballerina.projects.JBallerinaBackend.lambda$from$0(JBallerinaBackend.java:126)
	at io.ballerina.projects.JBallerinaBackend$$Lambda$405/0x00000008003d57c8.apply(Unknown Source)
	at java.base/java.util.HashMap.computeIfAbsent(HashMap.java:1220)
	at io.ballerina.projects.PackageCompilation.getCompilerBackend(PackageCompilation.java:179)
	at io.ballerina.projects.JBallerinaBackend.from(JBallerinaBackend.java:125)
	at io.ballerina.projects.JBallerinaBackend.from(JBallerinaBackend.java:113)
	at io.ballerina.cli.task.CompileTask.execute(CompileTask.java:216)
	at io.ballerina.cli.TaskExecutor.executeTasks(TaskExecutor.java:40)
	at io.ballerina.cli.cmd.BuildCommand.execute(BuildCommand.java:300)
	at io.ballerina.cli.launcher.Main$$Lambda$47/0x0000000800131210.accept(Unknown Source)
	at java.base/java.util.Optional.ifPresent(Optional.java:178)
	at io.ballerina.cli.launcher.Main.main(Main.java:58)

Eclipse memory analyser shows 2 problems;

The thread java.lang.Thread @ 0x7c0749a70 main keeps local variables with total size 136,159,096 (12.67%) bytes.

The memory is accumulated in one instance of java.lang.Thread, loaded by <system class loader>, which occupies 136,159,096 (12.67%) bytes.

main
  at java.lang.OutOfMemoryError.<init>()V (OutOfMemoryError.java:48)
  at java.util.Arrays.copyOf([BI)[B (Arrays.java:3537)
  at java.io.ByteArrayOutputStream.ensureCapacity(I)V (ByteArrayOutputStream.java:100)
  at java.io.ByteArrayOutputStream.write([BII)V (ByteArrayOutputStream.java:130)
  at java.io.DataOutputStream.write([BII)V (DataOutputStream.java:112)
  at org.wso2.ballerinalang.compiler.bir.writer.BIRBinaryWriter.serialize()[B (BIRBinaryWriter.java:90)
  at io.ballerina.projects.ModuleContext.generateBIR(Lio/ballerina/projects/ModuleContext;Lorg/wso2/ballerinalang/compiler/util/CompilerContext;)Ljava/io/ByteArrayOutputStream; (ModuleContext.java:523)
  at io.ballerina.projects.ModuleContext.generateCodeInternal(Lio/ballerina/projects/ModuleContext;Lio/ballerina/projects/CompilerBackend;Lorg/wso2/ballerinalang/compiler/util/CompilerContext;)V (ModuleContext.java:472)
  at io.ballerina.projects.ModuleCompilationState$4.generatePlatformSpecificCode(Lio/ballerina/projects/ModuleContext;Lorg/wso2/ballerinalang/compiler/util/CompilerContext;Lio/ballerina/projects/CompilerBackend;)V (ModuleCompilationState.java:132)
  at io.ballerina.projects.ModuleContext.generatePlatformSpecificCode(Lorg/wso2/ballerinalang/compiler/util/CompilerContext;Lio/ballerina/projects/CompilerBackend;)V (ModuleContext.java:387)
  at io.ballerina.projects.JBallerinaBackend.performCodeGen(Z)V (JBallerinaBackend.java:173)
  at io.ballerina.projects.JBallerinaBackend.<init>(Lio/ballerina/projects/PackageCompilation;Lio/ballerina/projects/JvmTarget;Z)V (JBallerinaBackend.java:142)
  at io.ballerina.projects.JBallerinaBackend.lambda$from$0(Lio/ballerina/projects/PackageCompilation;Lio/ballerina/projects/JvmTarget;ZLio/ballerina/projects/CompilerBackend$TargetPlatform;)Lio/ballerina/projects/JBallerinaBackend; (JBallerinaBackend.java:126)
  at io.ballerina.projects.JBallerinaBackend$$Lambda$425+0x0000000800427a70.apply(Ljava/lang/Object;)Ljava/lang/Object; ()
  at java.util.HashMap.computeIfAbsent(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object; (HashMap.java:1220)
  at io.ballerina.projects.PackageCompilation.getCompilerBackend(Lio/ballerina/projects/CompilerBackend$TargetPlatform;Ljava/util/function/Function;)Lio/ballerina/projects/CompilerBackend; (PackageCompilation.java:179)
  at io.ballerina.projects.JBallerinaBackend.from(Lio/ballerina/projects/PackageCompilation;Lio/ballerina/projects/JvmTarget;Z)Lio/ballerina/projects/JBallerinaBackend; (JBallerinaBackend.java:125)
  at io.ballerina.projects.JBallerinaBackend.from(Lio/ballerina/projects/PackageCompilation;Lio/ballerina/projects/JvmTarget;)Lio/ballerina/projects/JBallerinaBackend; (JBallerinaBackend.java:113)
  at io.ballerina.cli.task.CompileTask.execute(Lio/ballerina/projects/Project;)V (CompileTask.java:216)
  at io.ballerina.cli.TaskExecutor.executeTasks(Lio/ballerina/projects/Project;)V (TaskExecutor.java:40)
  at io.ballerina.cli.cmd.TestCommand.execute()V (TestCommand.java:377)
  at io.ballerina.cli.launcher.Main$$Lambda$47+0x0000000800131210.accept(Ljava/lang/Object;)V ()
  at java.util.Optional.ifPresent(Ljava/util/function/Consumer;)V (Optional.java:178)
  at io.ballerina.cli.launcher.Main.main([Ljava/lang/String;)V (Main.java:58)

947,983 instances of org.wso2.ballerinalang.compiler.diagnostic.BLangDiagnosticLocation, loaded by jdk.internal.loader.ClassLoaders$AppClassLoader @ 0x7c07390d0 occupy 113,757,984 (10.59%) bytes.

Steps to Reproduce

No response

Affected Version(s)

2201.9.0

OS, DB, other environment details and versions

No response

Related area

-> Compilation

Related issue(s) (optional)

No response

Suggested label(s) (optional)

No response

Suggested assignee(s) (optional)

No response

nirmal070125 avatar Jun 05 '24 17:06 nirmal070125