JetBrains / teamcity-deployer-plugin

Deployer plugin for TeamCity CI server
http://confluence.jetbrains.net/display/TW/Deployer+plugin
Apache License 2.0
39 stars 29 forks source link

Out of Memory Exception #20

Closed nskvortsov closed 9 years ago

nskvortsov commented 9 years ago

I'm consistently getting a Java out of memory exception when trying to copy zip files around 15 MB using the SMB Deployer.

I've set the wrapper.java.maxmemory property in the wrapper.conf of the agent to 900MB, it had previously set to the default (64). This did not seem to make a difference.

Let me know if there is any more information i can provide.

Stack: [Step 2/2] Failed to start build runner 'smb-deploy-runner' java.lang.OutOfMemoryError: unable to create new native thread at java.lang.Thread.start0(Native Method) at java.lang.Thread.start(Unknown Source) at jcifs.UniAddress.lookupServerOrWorkgroup(UniAddress.java:173) at jcifs.UniAddress.getAllByName(UniAddress.java:290) at jcifs.UniAddress.getByName(UniAddress.java:245) at jcifs.smb.Dfs.getTrustedDomains(Dfs.java:62) at jcifs.smb.Dfs.resolve(Dfs.java:167) at jcifs.smb.SmbFile.resolveDfs(SmbFile.java:671) at jcifs.smb.SmbFile.send(SmbFile.java:773) at jcifs.smb.SmbFileOutputStream.writeDirect(SmbFileOutputStream.java:245) at jcifs.smb.SmbFileOutputStream.write(SmbFileOutputStream.java:216) at jetbrains.buildServer.util.TCStreamUtil.writeBinary(TCStreamUtil.java:103) at jetbrains.buildServer.util.TCStreamUtil.writeBinary(TCStreamUtil.java:89) at jetbrains.buildServer.util.FileUtil.copyStreams(FileUtil.java:469) at jetbrains.buildServer.util.FileUtil.copy(FileUtil.java:1316) at jetbrains.buildServer.deployer.agent.smb.SMBBuildProcessAdapter.upload(SMBBuildProcessAdapter.java:117) at jetbrains.buildServer.deployer.agent.smb.SMBBuildProcessAdapter.runProcess(SMBBuildProcessAdapter.java:80) at jetbrains.buildServer.deployer.agent.SyncBuildProcessAdapter.start(SyncBuildProcessAdapter.java:58) at jetbrains.buildServer.agent.impl.buildStages.runnerStages.start.CallRunnerStage.doBuildStage(CallRunnerStage.java:58) at jetbrains.buildServer.agent.impl.buildStages.RunnerStagesExecutor$1.callStage(RunnerStagesExecutor.java:25) at jetbrains.buildServer.agent.impl.buildStages.RunnerStagesExecutor$1.callStage(RunnerStagesExecutor.java:18) at jetbrains.buildServer.agent.impl.buildStages.StagesExecutor.callRunStage(StagesExecutor.java:78) at jetbrains.buildServer.agent.impl.buildStages.StagesExecutor.doStages(StagesExecutor.java:37) at jetbrains.buildServer.agent.impl.buildStages.RunnerStagesExecutor.doStages(RunnerStagesExecutor.java:18) at jetbrains.buildServer.agent.impl.buildStages.startStages.steps.RunnerContextExecutor.callRunnerStages(RunnerContextExecutor.java:43) at jetbrains.buildServer.agent.impl.buildStages.startStages.steps.StepExecutor.doProcessNextStep(StepExecutor.java:89) at jetbrains.buildServer.agent.impl.buildStages.startStages.steps.StepExecutor.processNextStep(StepExecutor.java:44) at jetbrains.buildServer.agent.impl.buildStages.startStages.steps.ForEachBuildRunnerStage.doBuildStage(ForEachBuildRunnerStage.java:77) at jetbrains.buildServer.agent.impl.buildStages.BuildStagesExecutor$1.callStage(BuildStagesExecutor.java:31) at jetbrains.buildServer.agent.impl.buildStages.BuildStagesExecutor$1.callStage(BuildStagesExecutor.java:24) at jetbrains.buildServer.agent.impl.buildStages.StagesExecutor.callRunStage(StagesExecutor.java:78) at jetbrains.buildServer.agent.impl.buildStages.StagesExecutor.doStages(StagesExecutor.java:37) at jetbrains.buildServer.agent.impl.buildStages.BuildStagesExecutor.doStages(BuildStagesExecutor.java:24) at jetbrains.buildServer.agent.impl.BuildRunAction.doStages(BuildRunAction.java:70) at jetbrains.buildServer.agent.impl.BuildRunAction.runBuild(BuildRunAction.java:50) at jetbrains.buildServer.agent.impl.BuildAgentImpl.doActualBuild(BuildAgentImpl.java:247) at jetbrains.buildServer.agent.impl.BuildAgentImpl.access$100(BuildAgentImpl.java:48) at jetbrains.buildServer.agent.impl.BuildAgentImpl$1.run(BuildAgentImpl.java:220) at java.lang.Thread.run(Unknown Source)


nskvortsov commented 9 years ago

I submitted this bug wasn't signed in - adding comment for tracking


Original comment by: Dan Nash

nskvortsov commented 9 years ago

I experience the same problem. Sometimes it works and another time we get an error.


Original comment by: arelium

nskvortsov commented 9 years ago

Possible workaround: based on this JCIFS mail list thread there is a work around to add specific options:

jcifs.resolveOrder=DNS

jcifs.smb.client.dfs.disabled=true

to set this options on build agent startup see this documentation page


Original comment by: Nikita Skvortsov

nskvortsov commented 9 years ago

I will be out of the office until Monday, December 23 returning Thursday December 26th. I will be checking emails periodically and will get back to you as soon as possible.


Original comment by: Dan Nash

nskvortsov commented 9 years ago

@dtmnash did you have a chance to try the workaround?


Original comment by: Nikita Skvortsov

nskvortsov commented 9 years ago

I will be out of the office returning Friday, June 20th through Friday June 29th. I will respond to your email as soon as possible.


Original comment by: Dan Nash

nskvortsov commented 9 years ago

Yes, it worked!


Original comment by: Dan Nash

nskvortsov commented 9 years ago

@dtmnash thank you for the followup


Original comment by: Nikita Skvortsov

nskvortsov commented 9 years ago

So far, this is the limitation of SMB library used in the project. The workaround is available, and the fix requires new SMB Java library, which does not seem to be available at the moment.


Original comment by: Nikita Skvortsov

nskvortsov commented 9 years ago

Hallo, I experience the same problem. What is the workaround ?


Original comment by: Jerome Mohanan

nskvortsov commented 9 years ago

@nskvortsov responded with the work around.

Worked great for me!

Possible workaround: based on this JCIFS mail list thread there is a work around to add specific options: jcifs.resolveOrder=DNS jcifs.smb.client.dfs.disabled=true to set this options on build agent startup see this documentation page


Original comment by: Dan Nash

nskvortsov commented 9 years ago

Added an option on web ui "use DNS only name resolution", which is an equivalent of existing workaround. Implemented in this build


Original comment by: Nikita Skvortsov