Skip to content

LCGDM-2928 Inter process race for gsiftp uploads

Petr Vokac requested to merge vokac/dmlite:gridftp-debug into develop

DPM in DOME mode threats delayed passive transfers differently and with completed data transfer DOME is informed only from globus trev callback. This is too late, because for GridFTP server reports to client file was successfully transferred before trev callback is called. This can lead to inter-process race, because from DOME point of view file was not yet successfully closed (its replica is still in kBeingPopulated state) while for GridFTP server everything was already finished and different process can try to serve next client requests - e.g. for TPC transfers with same source/destination storage there are two processes where one reads data and second write them to new location, when client try to stat uploaded file using process which read file (and already think transfer is complete) DOME can reject such request because write process did not yet reached globus trev callback.

This patch moves code that informs DOME about successfull transfer from trev callback directly to globus transfer callback where we already know when we received all data.

Merge request reports