Opened 2 years ago

Last modified 2 years ago

#12803 new Bug report

Connect count as active when actually dead on long run

Reported by: User85488925 Owned by:
Priority: normal Component: FileZilla Client
Keywords: Cc:
Component version: 3.62.0 x86 Operating system type: Windows
Operating system version: 7

Description

This bug exists very long time and look like nobody notice it, since most users not run Client for days, weeks and months. But I do.

It is look like - Client will be open with connection to some servers. You return here and start work with server. Like change directory.
Client write in log something like "retrieving directory content" and not follow your requests anymore.

You need wait end timeout when Client realize there no connection and goes reconnect and command.
Or you can press "interrupt connection" (yes, this button active when there no active connection), say yes. Client goes glitch and show some BS like travel on non sync dir, but after resolve it all goes fine.

As I see this happen because in code exists simple check connected server or no. It is done as 32-bit timestamp of last connection/action vs current timestamp. This timestamp overflowed on some intervals. Which leads to pass check and Client start work like there active connection.

I not sure what exact interval for appear this bug, but possible near 48 hour.

Change History (3)

comment:1 by Tim Kosse, 2 years ago

Status: newmoreinfo

As I see this happen because in code exists simple check connected server or no. It is done as 32-bit timestamp of last connection/action vs current timestamp

Where?

comment:2 by User85488925, 2 years ago

Status: moreinfonew

It is just pure guessing, based on some experience. I not study code.

comment:3 by User85488925, 2 years ago

Example of debug level 4:

Command:	cd "/some_dir"
Status:	Sending keep-alive command
Command:	TYPE I
Trace:	tls_layer_impl::on_read()
Trace:	CFtpControlSocket::OnReceive()
Response:	200 Type set to I.
Trace:	Skipping reply after cancelled operation or keepalive command.
Error:	Connection timed out after 30 seconds of inactivity
Trace:	CControlSocket::DoClose(2050)
Trace:	CControlSocket::ResetOperation(2114)
Trace:	CSftpChangeDirOpData::Reset(2114) in state 2
Trace:	CControlSocket::ResetOperation(2114)
Trace:	CSftpListOpData::Reset(2114) in state 1
Error:	Failed to retrieve directory listing
Trace:	CFileZillaEnginePrivate::ResetOperation(2114)
Status:	Disconnected from server
Trace:	CControlSocket::DoClose(66)
Trace:	CControlSocket::ResetOperation(66)
Trace:	CFileZillaEnginePrivate::ResetOperation(66)
Trace:	CControlSocket::DoClose(66)
Trace:	CControlSocket::ResetOperation(66)
Trace:	CFileZillaEnginePrivate::ResetOperation(66)
Trace:	CControlSocket::DoClose(66)
Trace:	CControlSocket::ResetOperation(66)
Trace:	CFileZillaEnginePrivate::ResetOperation(66)
Trace:	CFileZillaEnginePrivate::ResetOperation(0)
Trace:	CControlSocket::SendNextCommand()
Trace:	CSftpConnectOpData::Send() in state 0
Status:	Connecting to **********

Used sftp connection. Possible it related to it.

Note: See TracTickets for help on using tickets.