hierynomus / smbj

Server Message Block (SMB2, SMB3) implementation in Java
Other
707 stars 180 forks source link

com.hierynomus.mssmb2.SMBApiException: STATUS_ACCESS_DENIED (0xc0000022): Create failed for #742

Open sreenath-koannki opened 1 year ago

sreenath-koannki commented 1 year ago

Hi Team, Our customer is seeing an issue/exception inconsistently while doing the below operation by using SMBv2. It is observed that the above exception is seen only after upgrading from SMBJ-0.9.0 to SMBJ-0.11.5. (Suggested to Customer for the upgradation of jar, since have seen few issues in SMBJ-0.9.0)

"FileAllInformation fileAllInformation = DiskShare.getFileInformation(path)"

 com.hierynomus.mssmb2.SMBApiException: STATUS_ACCESS_DENIED (0xc0000022): Create failed for << path >>
at com.hierynomus.smbj.share.Share.receive(Share.java:380) ~[smbj-0.11.5.jar:?]
at com.hierynomus.smbj.share.Share.sendReceive(Share.java:359) ~[smbj-0.11.5.jar:?]
at com.hierynomus.smbj.share.Share.createFile(Share.java:156) ~[smbj-0.11.5.jar:?]
at com.hierynomus.smbj.share.DiskShare.createFileAndResolve(DiskShare.java:75) ~[smbj-0.11.5.jar:?]
at com.hierynomus.smbj.share.DiskShare.access$100(DiskShare.java:55) ~[smbj-0.11.5.jar:?]
at com.hierynomus.smbj.share.DiskShare$2.apply(DiskShare.java:109) ~[smbj-0.11.5.jar:?]
at com.hierynomus.smbj.share.DiskShare$2.apply(DiskShare.java:105) ~[smbj-0.11.5.jar:?]
at com.hierynomus.smbj.paths.DFSPathResolver.step8(DFSPathResolver.java:314) ~[smbj-0.11.5.jar:?]
at com.hierynomus.smbj.paths.DFSPathResolver.step3(DFSPathResolver.java:177) ~[smbj-0.11.5.jar:?]
at com.hierynomus.smbj.paths.DFSPathResolver.step4(DFSPathResolver.java:209) ~[smbj-0.11.5.jar:?]
at com.hierynomus.smbj.paths.DFSPathResolver.step7(DFSPathResolver.java:294) ~[smbj-0.11.5.jar:?]
at com.hierynomus.smbj.paths.DFSPathResolver.step6(DFSPathResolver.java:272) ~[smbj-0.11.5.jar:?]
at com.hierynomus.smbj.paths.DFSPathResolver.step5(DFSPathResolver.java:231) ~[smbj-0.11.5.jar:?]
at com.hierynomus.smbj.paths.DFSPathResolver.step2(DFSPathResolver.java:150) ~[smbj-0.11.5.jar:?]
at com.hierynomus.smbj.paths.DFSPathResolver.step11(DFSPathResolver.java:379) ~[smbj-0.11.5.jar:?]
at com.hierynomus.smbj.paths.DFSPathResolver.step4(DFSPathResolver.java:207) ~[smbj-0.11.5.jar:?]
at com.hierynomus.smbj.paths.DFSPathResolver.step7(DFSPathResolver.java:294) ~[smbj-0.11.5.jar:?]
at com.hierynomus.smbj.paths.DFSPathResolver.step6(DFSPathResolver.java:272) ~[smbj-0.11.5.jar:?]
at com.hierynomus.smbj.paths.DFSPathResolver.step5(DFSPathResolver.java:231) ~[smbj-0.11.5.jar:?]
at com.hierynomus.smbj.paths.DFSPathResolver.step2(DFSPathResolver.java:150) ~[smbj-0.11.5.jar:?]
at com.hierynomus.smbj.paths.DFSPathResolver.step1(DFSPathResolver.java:133) ~[smbj-0.11.5.jar:?]
at com.hierynomus.smbj.paths.DFSPathResolver.start(DFSPathResolver.java:121) ~[smbj-0.11.5.jar:?]
at com.hierynomus.smbj.paths.DFSPathResolver.resolve(DFSPathResolver.java:109) ~[smbj-0.11.5.jar:?]
at com.hierynomus.smbj.share.DiskShare.resolveAndCreateFile(DiskShare.java:105) ~[smbj-0.11.5.jar:?]
at com.hierynomus.smbj.share.DiskShare.open(DiskShare.java:65) ~[smbj-0.11.5.jar:?]
at com.hierynomus.smbj.share.DiskShare.getFileInformation(DiskShare.java:295) ~[smbj-0.11.5.jar:?]
at com.hierynomus.smbj.share.DiskShare.getFileInformation(DiskShare.java:288) ~[smbj-0.11.5.jar:?]

However, the path has all the access permission to the user.

Adding more info below,

I have tried to debug from the server end since it is inconsistent and observed only after upgrading the jar.

Hence, I have captured the traffic and observed that there is a difference in SMB header while using the SMBJ-0.11.5. (A file is transferred from the client to server)

SMBJ-0.11.5

image

SMBJ-0.9.0

image

What could be the potential issue here?

sreenath-koannki commented 1 year ago

Hi Team, One more observation, sometimes DFS resolution is hanging and observed the below error Caused by: java.net.SocketTimeoutException: connect timed out at java.net.PlainSocketImpl.socketConnect(Native Method) ~[?:1.8.0_302] at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) ~[?:1.8.0_302] at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) ~[?:1.8.0_302] at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) ~[?:1.8.0_302] at java.net.Socket.connect(Socket.java:607) ~[?:1.8.0_302] at com.hierynomus.protocol.commons.socket.ProxySocketFactory.createSocket(ProxySocketFactory.java:87) ~[smbj-0.11.5.jar:?] at com.hierynomus.protocol.commons.socket.ProxySocketFactory.createSocket(ProxySocketFactory.java:63) ~[smbj-0.11.5.jar:?] at com.hierynomus.smbj.transport.tcp.direct.DirectTcpTransport.connect(DirectTcpTransport.java:88) ~[smbj-0.11.5.jar:?] at com.hierynomus.smbj.connection.Connection.connect(Connection.java:139) ~[smbj-0.11.5.jar:?] at com.hierynomus.smbj.SMBClient.getEstablishedOrConnect(SMBClient.java:96) ~[smbj-0.11.5.jar:?] at com.hierynomus.smbj.SMBClient.connect(SMBClient.java:83) ~[smbj-0.11.5.jar:?]