I noticed that, wenn the remote directory is empty, the FTP connection is closed by QUIT.
Reproduction:
Have an empty directory on the FTP server
Sync your files to that server
it tries to download the file list (which is empty)
then closed the FTP connection
then collect local files
tries to make the first directory on the ftp
crashes as the connection was closed on the remote side, because of the QUIT.
If you found this project helpful, please support it
by giving it a β on Github --> https://github.com/SamKirkland/FTP-Deploy-Action
or add a badge π·οΈ to your projects readme --> https://github.com/SamKirkland/FTP-Deploy-Action#badge
Using the following excludes filters: ["**/.git*","**/.git*/**","**/node_modules/**"]
Creating local state at ./htdocs/.ftp-deploy-sync-state.json
Local state created
Connected to 202.x.x.x:21 (No encryption)
< 220 ProFTPD Server (ProFTPD) [202.x.x.x]
> AUTH TLS
< 234 AUTH TLS successful
Control socket is using: TLSv1.3
Login security: TLSv1.3
> USER xxx
< 331 Password required for xxx
> PASS ###
< 230 User xxx logged in
> FEAT
< 211-Features:
...
> TYPE I
< 200 Type set to I
> STRU F
< 200 Structure set to F
> OPTS UTF8 ON
< 200 UTF8 set to on
> OPTS MLST type;size;modify;unique;unix.mode;unix.owner;unix.group;unix.ownername;unix.groupname;
< 200 MLST OPTS type;size;modify;unique;UNIX.mode;UNIX.owner;UNIX.group;UNIX.ownername;UNIX.groupname;
> PBSZ 0
< 200 PBSZ 0 successful
> PROT P
< 200 Protection set to Private
changing dir to ./httpdocs/
> MKD .
< 550 .: File exists
> CWD .
< 250 CWD command successful
> MKD httpdocs
< 550 httpdocs: File exists
> CWD httpdocs
< 250 CWD command successful
dir changed
Trying to find optimal transfer strategy...
> EPSV
< 229 Entering Extended Passive Mode (|||64293|)
Optimal transfer strategy found.
> RETR .ftp-deploy-sync-state.json
> QUIT
----------------------------------------------------------------
No file exists on the server "./httpdocs/.ftp-deploy-sync-state.json" - this must be your first publish! π
The first publish will take a while... but once the initial sync is done only differences are published!
If you get this message and its NOT your first publish, something is wrong.
----------------------------------------------------------------
Local Files: 1,175
Server Files: 0
----------------------------------------------------------------
Calculating differences between client & server
----------------------------------------------------------------
π Create: admin
....
----------------------------------------------------------------
Making changes to 1175 files/folders to sync server state
Uploading: 20.9 MB -- Deleting: 0 B -- Replacing: 0 B
----------------------------------------------------------------
creating folder "admin/"
changing dir to admin
----------------------------------------------------------------
-------------- π₯π₯π₯ an error occurred π₯π₯π₯ --------------
----------------------------------------------------------------
----------------------------------------------------------------
---------------------- full error below ----------------------
----------------------------------------------------------------
Error: Client is closed because read ECONNRESET (data socket)
at /home/runner/work/_actions/SamKirkland/FTP-Deploy-Action/v4.3.4/dist/index.js:5197:29
at new Promise (<anonymous>)
at FTPContext.handle (/home/runner/work/_actions/SamKirkland/FTP-Deploy-Action/v4.3.4/dist/index.js:5179:16)
at Client.sendIgnoringError (/home/runner/work/_actions/SamKirkland/FTP-Deploy-Action/v4.3.4/dist/index.js:4226:25)
at Client._openDir (/home/runner/work/_actions/SamKirkland/FTP-Deploy-Action/v4.3.4/dist/index.js:[47](https://github.com/xx#step:3:48)44:20)
at Client.ensureDir (/home/runner/work/_actions/SamKirkland/FTP-Deploy-Action/v4.3.4/dist/index.js:4735:24)
at /home/runner/work/_actions/SamKirkland/FTP-Deploy-Action/v4.3.4/dist/index.js:3555:126
at Generator.next (<anonymous>)
at /home/runner/work/_actions/SamKirkland/FTP-Deploy-Action/v4.3.4/dist/index.js:3[54](https://github.com/xx)0:[71](https://github.com/xxx)
at new Promise (<anonymous>)
Closing reason: Error: read ECONNRESET
at TLSWrap.onStreamRead (node:internal/stream_base_commons:[217](https://github.com/xxx):20) {
code: 'ECONNRESET'
}
The workaround would be to just put any file to the remote dir
Hi, I am basically using the github action.
I noticed that, wenn the remote directory is empty, the FTP connection is closed by
QUIT
.Reproduction:
The workaround would be to just put any file to the remote dir