Skip to content

java.io.EOFException: EOF while reading packet #653

@ghost

Description

We are currently evaluating smbj and tested it using 3 shares (cannot add the real names here):

Share 1: \\samba_server\smb_with_optional_encryption
Share 2: \\windows_server\smb_with_enforced_encryption
Share 3: \\nas_server\smb_without_encryption

Using smbj 0.10.0 we saw the following behaviour:
Share 1 is OK: accessible (SMB_2_1)
Share 2 is OK: access denied (SMB_2_1)
Share 3 is OK: accessible (SMB_2_1)

Using smbj 0.11.1 we got an error with share 3:
Share 1 is OK: accessible (SMB_3_1_1)
Share 2 is OK: accessible (SMB_3_0_2)
Share 3 is not OK: throws the following error, no matter which configuration parameters we use or if we use no configuration at all:

Exception in thread "main" com.hierynomus.smbj.common.SMBRuntimeException: com.hierynomus.protocol.transport.TransportException: java.util.concurrent.ExecutionException: com.hierynomus.smbj.common.SMBRuntimeException: com.hierynomus.protocol.transport.TransportException: java.io.EOFException: EOF while reading packet
	at com.hierynomus.smbj.connection.SMBSessionBuilder.establish(SMBSessionBuilder.java:114)
	at com.hierynomus.smbj.connection.Connection.authenticate(Connection.java:192)
	at com.my.app.SmbTest.main(SmbTest.java:1676)
Caused by: com.hierynomus.protocol.transport.TransportException: java.util.concurrent.ExecutionException: com.hierynomus.smbj.common.SMBRuntimeException: com.hierynomus.protocol.transport.TransportException: java.io.EOFException: EOF while reading packet
	at com.hierynomus.protocol.transport.TransportException$1.wrap(TransportException.java:30)
	at com.hierynomus.protocol.transport.TransportException$1.wrap(TransportException.java:24)
	at com.hierynomus.protocol.commons.concurrent.Futures.get(Futures.java:47)
	at com.hierynomus.smbj.connection.Connection.sendAndReceive(Connection.java:232)
	at com.hierynomus.smbj.connection.SMBSessionBuilder.initiateSessionSetup(SMBSessionBuilder.java:197)
	at com.hierynomus.smbj.connection.SMBSessionBuilder.setupSession(SMBSessionBuilder.java:126)
	at com.hierynomus.smbj.connection.SMBSessionBuilder.setupSession(SMBSessionBuilder.java:142)
	at com.hierynomus.smbj.connection.SMBSessionBuilder.establish(SMBSessionBuilder.java:109)
	... 2 more
Caused by: java.util.concurrent.ExecutionException: com.hierynomus.smbj.common.SMBRuntimeException: com.hierynomus.protocol.transport.TransportException: java.io.EOFException: EOF while reading packet
	at com.hierynomus.protocol.commons.concurrent.PromiseBackedFuture.get(PromiseBackedFuture.java:59)
	at com.hierynomus.protocol.commons.concurrent.CancellableFuture.get(CancellableFuture.java:84)
	at com.hierynomus.protocol.commons.concurrent.Futures.get(Futures.java:42)
	... 7 more
Caused by: com.hierynomus.smbj.common.SMBRuntimeException: com.hierynomus.protocol.transport.TransportException: java.io.EOFException: EOF while reading packet
	at com.hierynomus.smbj.common.SMBRuntimeException$1.wrap(SMBRuntimeException.java:28)
	at com.hierynomus.smbj.common.SMBRuntimeException$1.wrap(SMBRuntimeException.java:22)
	at com.hierynomus.protocol.commons.concurrent.Promise.deliverError(Promise.java:95)
	at com.hierynomus.smbj.connection.OutstandingRequests.handleError(OutstandingRequests.java:88)
	at com.hierynomus.smbj.connection.Connection.handleError(Connection.java:282)
	at com.hierynomus.smbj.transport.PacketReader.run(PacketReader.java:54)
	at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: com.hierynomus.protocol.transport.TransportException: java.io.EOFException: EOF while reading packet
	at com.hierynomus.smbj.transport.tcp.direct.DirectTcpPacketReader.readFully(DirectTcpPacketReader.java:72)
	at com.hierynomus.smbj.transport.tcp.direct.DirectTcpPacketReader.readTcpHeader(DirectTcpPacketReader.java:59)
	at com.hierynomus.smbj.transport.tcp.direct.DirectTcpPacketReader.doRead(DirectTcpPacketReader.java:48)
	at com.hierynomus.smbj.transport.PacketReader.readPacket(PacketReader.java:70)
	at com.hierynomus.smbj.transport.PacketReader.run(PacketReader.java:48)
	... 1 more
Caused by: java.io.EOFException: EOF while reading packet
	... 6 more

We used the following code to test the library (only changed the SmbConfig using different parameters, e.g. withEncryptData(true) etc.):

SmbConfig config = SmbConfig.builder()
		.withSecurityProvider(new BCSecurityProvider())
		.build();
SMBClient client = new SMBClient(config);
SmbPath smbDir = SmbPath.parse("\\\\samba\\smb_with_optional_encryption");

try (com.hierynomus.smbj.connection.Connection connection = client.connect(smbDir.getHostname()))
{
	System.out.println("connected to: " + connection.getRemoteHostname() + "; protocol: "
			+ connection.getNegotiatedProtocol());
	AuthenticationContext ac = new AuthenticationContext("user1", pass.toCharArray(), "domain.com");
	Session session = connection.authenticate(ac);

	try (DiskShare share = (DiskShare) session.connectShare(smbDir.getShareName()))
	{
		for (FileIdBothDirectoryInformation f : share.list(smbDir.getPath()))
		{
			System.out.println("File : " + f.getFileName());
		}
	}
}

Any idea what's going wrong here?

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions