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.

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
It could happen, that on a file upload (STOR) command, the runtime gets stuck.
Reason
The
workOnClosedprocess never terminates and stays blocked and so, thelistenMessageloop 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.

Terminal output:
Debugging output added at the end of the
workOnClosedprocess: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