SMB upload runner authentication problem
After install teamcity build agent cannot deploy artifacts via SMB uploader with SecurityException-NoSuchAlgorithmException:
Build log:
Step 2/11: WCF other (SMB Upload)
Using SMB v2/v3 protocol
Starting upload via SMBj to \\192.168.0.205\EL12_SERVICES\NAV\OTHER
com.hierynomus.ntlm.NtlmException: com.hierynomus.security.SecurityException: java.security.NoSuchAlgorithmException: MD4 MessageDigest not available at com.hierynomus.ntlm.functions.NtlmFunctions.NTOWFv1(NtlmFunctions.java:96) at com.hierynomus.ntlm.functions.NtlmFunctions.NTOWFv2(NtlmFunctions.java:61) at com.hierynomus.smbj.auth.NtlmAuthenticator.authenticate(NtlmAuthenticator.java:95) at com.hierynomus.smbj.connection.Connection.processAuthenticationToken(Connection.java:212) at com.hierynomus.smbj.connection.Connection.authenticate(Connection.java:177) at jetbrains.buildServer.deployer.agent.smb.SMBJBuildProcessAdapter.runProcess(SMBJBuildProcessAdapter.java:121) at jetbrains.buildServer.deployer.agent.SyncBuildProcessAdapter.start(SyncBuildProcessAdapter.java:79) at jetbrains.buildServer.agent.impl.buildStages.runnerStages.start.CallRunnerStage.doBuildStage(CallRunnerStage.java:60) at jetbrains.buildServer.agent.impl.buildStages.RunnerStagesExecutor$1.callStage(RunnerStagesExecutor.java:27) at jetbrains.buildServer.agent.impl.buildStages.RunnerStagesExecutor$1.callStage(RunnerStagesExecutor.java:18) at jetbrains.buildServer.agent.impl.buildStages.StagesExecutor.callRunStage(StagesExecutor.java:76) at jetbrains.buildServer.agent.impl.buildStages.StagesExecutor.doStages(StagesExecutor.java:35) at jetbrains.buildServer.agent.impl.buildStages.RunnerStagesExecutor.doStages(RunnerStagesExecutor.java:18) at jetbrains.buildServer.agent.impl.buildStages.startStages.steps.RunnerContextExecutor.executeBuildStepStages(RunnerContextExecutor.java:45) at jetbrains.buildServer.agent.impl.buildStages.startStages.steps.RunAllBuildStepsStage.runBuildStep(RunAllBuildStepsStage.java:190) at jetbrains.buildServer.agent.impl.buildStages.startStages.steps.RunAllBuildStepsStage.runStep(RunAllBuildStepsStage.java:176) at jetbrains.buildServer.agent.impl.buildStages.startStages.steps.RunAllBuildStepsStage.executeBuildRunners(RunAllBuildStepsStage.java:126) at jetbrains.buildServer.agent.impl.buildStages.startStages.steps.RunAllBuildStepsStage.doBuildStage(RunAllBuildStepsStage.java:58) at jetbrains.buildServer.agent.impl.buildStages.BuildStagesExecutor$1.callStage(BuildStagesExecutor.java:33) at jetbrains.buildServer.agent.impl.buildStages.BuildStagesExecutor$1.callStage(BuildStagesExecutor.java:24) at jetbrains.buildServer.agent.impl.buildStages.StagesExecutor.callRunStage(StagesExecutor.java:76) at jetbrains.buildServer.agent.impl.buildStages.StagesExecutor.doStages(StagesExecutor.java:35) at jetbrains.buildServer.agent.impl.buildStages.BuildStagesExecutor.doStages(BuildStagesExecutor.java:24) at jetbrains.buildServer.agent.impl.BuildRunActionImpl.doStages(BuildRunActionImpl.java:93) at jetbrains.buildServer.agent.impl.BuildRunActionImpl.runBuild(BuildRunActionImpl.java:65) at jetbrains.buildServer.agent.impl.BuildAgentImpl.doActualBuild(BuildAgentImpl.java:345) at jetbrains.buildServer.agent.impl.BuildAgentImpl.access$100(BuildAgentImpl.java:63) at jetbrains.buildServer.agent.impl.BuildAgentImpl$1.run(BuildAgentImpl.java:294) at java.base/java.lang.Thread.run(Thread.java:833) Caused by: com.hierynomus.security.SecurityException: java.security.NoSuchAlgorithmException: MD4 MessageDigest not available at com.hierynomus.security.jce.JceMessageDigest.tryMd4(JceMessageDigest.java:59) at com.hierynomus.security.jce.JceMessageDigest.<init>(JceMessageDigest.java:40) at com.hierynomus.security.jce.JceSecurityProvider.getDigest(JceSecurityProvider.java:44) at com.hierynomus.ntlm.functions.NtlmFunctions.NTOWFv1(NtlmFunctions.java:92) ... 28 more Caused by: java.security.NoSuchAlgorithmException: MD4 MessageDigest not available at java.base/sun.security.jca.GetInstance.getInstance(GetInstance.java:159) at java.base/java.security.MessageDigest.getInstance(MessageDigest.java:185) at com.hierynomus.security.jce.JceMessageDigest.<init>(JceMessageDigest.java:36) ... 30 more
Failed to start build runner 'smb-deploy-runner'
Step WCF other (SMB Upload) failed with unexpected error
Please sign in to leave a comment.
The problem is agent has newer version of jre. When wrapper.java.command path changed to older jre, it works.
jre works:
IMPLEMENTOR="Amazon.com Inc."
IMPLEMENTOR_VERSION="Corretto-11.0.15.9.1"
JAVA_VERSION="11.0.15"
JAVA_VERSION_DATE="2022-04-19"
jre with NoSuchAlgorithmException:
IMPLEMENTOR="Amazon.com Inc."
IMPLEMENTOR_VERSION="Corretto-17.0.7.7.1"
JAVA_VERSION="17.0.7"
JAVA_VERSION_DATE="2023-04-18"
Is there bug or need some config changes in teamcity agent?
This is a known issue about using SMB runner with Java 17; it is fixed in scope of https://youtrack.jetbrains.com/issue/TW-81807/SMB-runner-is-unable-to-start-on-Java-17 and fix will be a part of 2023.05.1 bugfix release which should be made available shortly. Please consider upgrading to it when it is available - as you have pointed out, switching to different version of Java also works.
Thanks for you responce and clearance.