Password variable masking in logs triggers an OutOfMemoryError: Java heap space
Problem
Your builds fail due to Tasks for AWS encountering an java.lang.OutOfMemoryError: Java heap space
:
2016-04-24 22:16:08,421 ERROR [16-BAM::Deployment::Agent:pool-32-thread-1] [TaskExecutorImpl] Error occurred while running Task 'Create Deplyoment Environment' of type net.utoolity.atlassian.bamboo.tasks-for-aws:aws.cloudformation.stack.
java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:3332)
at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:137)
at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:121)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:445)
at java.lang.StringBuffer.append(StringBuffer.java:312)
at java.lang.StringBuffer.append(StringBuffer.java:97)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:459)
at java.lang.StringBuffer.append(StringBuffer.java:340)
at java.util.regex.Matcher.appendReplacement(Matcher.java:890)
at java.util.regex.Matcher.replaceAll(Matcher.java:955)
at java.lang.String.replace(String.java:2240)
at com.atlassian.bamboo.util.PasswordMaskingUtils.mask(PasswordMaskingUtils.java:107)
at com.atlassian.bamboo.util.PasswordMaskingUtils.maskPossiblePasswordValues(PasswordMaskingUtils.java:163)
at com.atlassian.bamboo.build.logger.interceptors.PasswordMaskingLogMutator.createMutatedLog(PasswordMaskingLogMutator.java:32)
at com.atlassian.bamboo.build.logger.interceptors.PasswordMaskingLogMutator.mutate(PasswordMaskingLogMutator.java:21)
at com.atlassian.bamboo.build.logger.LogMutatorStack.mutate(LogMutatorStack.java:52)
at com.atlassian.bamboo.build.logger.AbstractBuildLogger.interceptAndMutate(AbstractBuildLogger.java:125)
at com.atlassian.bamboo.build.logger.AbstractBuildLogger.addBuildLogEntry(AbstractBuildLogger.java:104)
at com.atlassian.bamboo.build.logger.AbstractBuildLogger.addBuildLogEntry(AbstractBuildLogger.java:163)
at net.utoolity.atlassian.bamboo.taws.AWSTask.createAndLogSingleVariable(AWSTask.java:375)
at net.utoolity.atlassian.bamboo.taws.AWSTask.createAndLogVariables(AWSTask.java:359)
at net.utoolity.atlassian.bamboo.taws.CloudFormationTask.describeSingleResource(CloudFormationTask.java:1253)
at net.utoolity.atlassian.bamboo.taws.CloudFormationTask.describeResources(CloudFormationTask.java:1234)
at net.utoolity.atlassian.bamboo.taws.CloudFormationTask.waitForTransitionCompletion(CloudFormationTask.java:1080)
at net.utoolity.atlassian.bamboo.taws.CloudFormationTask.updateStack(CloudFormationTask.java:643)
at net.utoolity.atlassian.bamboo.taws.CloudFormationTask.executeUpdate(CloudFormationTask.java:443)
at net.utoolity.atlassian.bamboo.taws.CloudFormationTask.execute(CloudFormationTask.java:228)
at net.utoolity.atlassian.bamboo.taws.AWSTask.execute(AWSTask.java:145)
at com.atlassian.bamboo.task.TaskExecutorImpl.lambda$executeTasks$125(TaskExecutorImpl.java:273)
at com.atlassian.bamboo.task.TaskExecutorImpl$$Lambda$170/1230542041.call(Unknown Source)
at com.atlassian.bamboo.task.TaskExecutorImpl.executeTaskWithPrePostActions(TaskExecutorImpl.java:202)
at com.atlassian.bamboo.task.TaskExecutorImpl.executeTasks(TaskExecutorImpl.java:273)
Solution
This problem is caused by an upstream bug introduced in Bamboo 5.9.1 and addressed in Bamboo 5.12.0.2:
- BAM-17488Getting issue details... STATUS
Accordingly, you can address it by either upgrading Bamboo to a release that contains a respective fix, or by updating to Tasks for AWS 2.10.4, which provides a respective workaround (refer to https://utoolity.atlassian.net/browse/UAA-168 for details).
Feature flag
The workaround avoids the build log flooding by skipping the creation of variables if they are password variables (variable name contains "password"
, "awsSecretKey"
or "passphrase"
) and the variable value contains only asterisks.
For the (unlikely) case that this would affect any existing build configurations, the workaround can be disabled by setting a global or plan variable utoolity.flags.disableWorkaroundForBAM17488 to true.
Related articles
Amazon Web Services™, AWS™ and the “Powered by Amazon Web Services” logo are trademarks of Amazon.com, Inc. or its affiliates in the United States and/or other countries.
Utoolity® is a registered trademark of Utoolity GmbH.
© 2024 Utoolity GmbH. All rights reserved.