Skip to content

File upload stucks #14

Description

@nilshenrich

It could happen, that on a file upload (STOR) command, the runtime gets stuck.

Reason

The workOnClosed process never terminates and stays blocked and so, the listenMessage loop gets blocked for this client connection.

Description

Filezilla allowes 2 data connection in parallel.

Filezilla: The file upload seems complete, but the process stucks at this point.
Image

Terminal output:

(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7ffc407e8360)::listenMessage: Message from client 0x5: TYPE A
(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7ffc407e8360)::listenMessage: Message from client 0x6: PASV
(PN3tcp9TcpServerE at 0x7ffc407e8360)::writeMsg: Send to client 0x5: 200 Switching to ASCII mode.

(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7ffc407e8360)::listenMessage: Message from client 0x5: PASV
(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7f0878000c60)::start: Server started on port 0xef9a
(PN3tcp9TcpServerE at 0x7ffc407e8360)::writeMsg: Send to client 0x6: 227 Entering Passive Mode (127,0,0,1,239,154).

(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7f0874000c60)::start: Server started on port 0x5475
(PN3tcp9TcpServerE at 0x7ffc407e8360)::writeMsg: Send to client 0x5: 227 Entering Passive Mode (127,0,0,1,84,117).

(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7ffc407e8360)::listenMessage: Message from client 0x6: STOR small-parallel_2.txt
(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7ffc407e8360)::listenMessage: Message from client 0x5: STOR small-parallel_1.txt
(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7f0878000c60)::listenConnection: New client connected: 0x10
[Test] Start writing to <user>'s file '/small-parallel_2.txt' in mode '16'(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7f0878000c60)::listenMessage: Connection to client 0x10 broken
(PN3tcp9TcpServerE at 0x7ffc407e8360)::writeMsg: Send to client 0x6: 150 Ready to receive data.

Done closing data connection to client 0x10
(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7f0878000c60)::stop: Server stopped
(PN3tcp9TcpServerE at 0x7ffc407e8360)::writeMsg: Send to client 0x6: 226 File upload OK.

(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7ffc407e8360)::listenMessage: Message from client 0x6: PASV
(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7f0874000e60)::start: Server started on port 0xdaae
(PN3tcp9TcpServerE at 0x7ffc407e8360)::writeMsg: Send to client 0x6: 227 Entering Passive Mode (127,0,0,1,218,174).

(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7ffc407e8360)::listenMessage: Message from client 0x6: STOR small-parallel_3.txt
(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7f0874000e60)::listenConnection: New client connected: 0x10
([Test] Start writing to PN3tcp6ServerIiSt14default_deleteIiEEE at <user>0x7f0874000e60)::listenMessage: Connection to client 0x10 broken's file '/small-parallel_3.txt' in mode '16'
(PN3tcp9TcpServerE at 0x7ffc407e8360)::writeMsg: Send to client 0x6: 150 Ready to receive data.

Done closing data connection to client 0x10
(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7f0874000e60)::stop: Server stopped
(PN3tcp9TcpServerE at 0x7ffc407e8360)::writeMsg: Send to client 0x6: 226 File upload OK.

(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7ffc407e8360)::listenMessage: Message from client 0x6: PASV
(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7f0874000e60)::start: Server started on port 0x9875
(PN3tcp9TcpServerE at 0x7ffc407e8360)::writeMsg: Send to client 0x6: 227 Entering Passive Mode (127,0,0,1,152,117).

(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7ffc407e8360)::listenMessage: Message from client 0x6: STOR small-parallel_4.txt
(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7f0874000e60)::listenConnection: New client connected: 0x10
(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7f0874000e60)::listenMessage: Connection to client 0x10 broken
[Test] Start writing to <user>'s file '/small-parallel_4.txt' in mode '16'(PN3tcp9TcpServerE at 0x7ffc407e8360)::writeMsg: Send to client 0x6: 150 Ready to receive data.

Done closing data connection to client 0x10
(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7f0874000e60)::stop: Server stopped
(PN3tcp9TcpServerE at 0x7ffc407e8360)::writeMsg: Send to client 0x6: 226 File upload OK.

(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7ffc407e8360)::listenMessage: Message from client 0x6: PASV
(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7f0874000e60)::start: Server started on port 0xe083
(PN3tcp9TcpServerE at 0x7ffc407e8360)::writeMsg: Send to client 0x6: 227 Entering Passive Mode (127,0,0,1,224,131).

(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7ffc407e8360)::listenMessage: Message from client 0x6: STOR small-parallel_5.txt
(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7f0874000e60)::listenConnection: New client connected: 0x10
(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7f0874000e60)::listenMessage: Connection to client 0x10 broken
[Test] Start writing to <user>'s file '/small-parallel_5.txt' in mode '16'(PN3tcp9TcpServerE at 0x7ffc407e8360)::writeMsg: Send to client 0x6: 150 Ready to receive data.

Done closing data connection to client 0x10
(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7f0874000e60)::stop: Server stopped
(PN3tcp9TcpServerE at 0x7ffc407e8360)::writeMsg: Send to client 0x6: 226 File upload OK.

(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7ffc407e8360)::listenMessage: Message from client 0x6: PASV
(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7f0874000e60)::start: Server started on port 0x6d8b
(PN3tcp9TcpServerE at 0x7ffc407e8360)::writeMsg: Send to client 0x6: 227 Entering Passive Mode (127,0,0,1,109,139).

(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7ffc407e8360)::listenMessage: Message from client 0x6: STOR small-parallel_6.txt
(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7f0874000e60)::listenConnection: New client connected: 0x10
(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7f0874000e60)::listenMessage: Connection to client 0x10 broken
[Test] Start writing to <user>'s file '/small-parallel_6.txt' in mode '16'(PN3tcp9TcpServerE at 0x7ffc407e8360)::writeMsg: Send to client 0x6: 150 Ready to receive data.

Done closing data connection to client 0x10
(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7f0874000e60)::stop: Server stopped
(PN3tcp9TcpServerE at 0x7ffc407e8360)::writeMsg: Send to client 0x6: 226 File upload OK.

(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7ffc407e8360)::listenMessage: Message from client 0x6: PASV
(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7f0874000e60)::start: Server started on port 0x144d
(PN3tcp9TcpServerE at 0x7ffc407e8360)::writeMsg: Send to client 0x6: 227 Entering Passive Mode (127,0,0,1,20,77).

(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7ffc407e8360)::listenMessage: Message from client 0x6: STOR small-parallel_7.txt
(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7f0874000e60)::listenConnection: New client connected: 0x10
(PN3tcp6ServerIiSt14default_deleteIiEEE[Test] Start writing to  at <user>0x7f0874000e60)::listenMessage: Connection to client 0x10 broken
's file '/small-parallel_7.txt' in mode '16'(PN3tcp9TcpServerE at Done closing data connection to client 0x7ffc407e83600x10)::
writeMsg: Send to client 0x6: 150 Ready to receive data.

(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7f0874000e60)::stop: Server stopped
(PN3tcp9TcpServerE at 0x7ffc407e8360)::writeMsg: Send to client 0x6: 226 File upload OK.

(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7ffc407e8360)::listenMessage: Message from client 0x6: PASV
(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7f0874000e60)::start: Server started on port 0x2800
(PN3tcp9TcpServerE at 0x7ffc407e8360)::writeMsg: Send to client 0x6: 227 Entering Passive Mode (127,0,0,1,40,0).

(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7ffc407e8360)::listenMessage: Message from client 0x6: STOR small-parallel_8.txt
(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7f0874000e60)::listenConnection: New client connected: 0x10
(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7f0874000e60)::listenMessage: Connection to client 0x10 broken[Test] Start writing to <user>
's file '/small-parallel_8.txt' in mode '16'(PN3tcp9TcpServerE at 0x7ffc407e8360Done closing data connection to client )::0x10
writeMsg: Send to client 0x6: 150 Ready to receive data.

(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7f0874000e60)::stop: Server stopped
(PN3tcp9TcpServerE at 0x7ffc407e8360)::writeMsg: Send to client 0x6: 226 File upload OK.

(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7ffc407e8360)::listenMessage: Connection to client 0x5 broken
(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7ffc407e8360)::listenConnection: New client connected: 0x7
(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7ffc407e8360)::listenConnection: New client connected: 0xf
(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7ffc407e8360)::listenMessage: Connection to client 0x4 broken
(PN3tcp6ServerIiSt14default_deleteIiEEE at 0x7ffc407e8360)::listenMessage: Connection to client 0x6 broken

Debugging output added at the end of the workOnClosed process:

cout << "Done closing data connection to client " << dataClientId << endl;

Observation

[Test] Start writing to <user>'s file ... printed for all uploaded files, except small-parallel_1.txt, the one for which the upload stuck

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingfeature - ftpAbout the FTP featuresporadicHappens sporadically

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions