View Issue Details

IDProjectCategoryView StatusLast Update
0000643PluginsFTP (old)public2008-11-28 23:48
ReporterDiRTy_GaRRy Assigned Toyjh  
PrioritynormalSeverityblockReproducibilitysometimes
Status closedResolutionfixed 
Platformx86OSWindowsOS Version2003 SP2
Product Version1.71 
Fixed in Version1.71 
Summary0000643: В некоторых ситуациях плагин может портить скачиваемые файлы
DescriptionВ некоторых ситуациях плагин может портить скачиваемые файлы.

Поясняю. Пагин портит скачиваемые файлы при совпадении следующего ряда факторов:
1. Скачанный с ftp буфер (размер буфера задаётся в настройках плагина для каждого сервера) данных заполненен на размер меньший размера буфера записи на диск (буфер записи на диск автоматически выбирается плагином в зависмости от размера кластера);
2. При скачке порции данных возникла некоторая зедержка.

При выполнении данных условий из буфера чтения на диск сбрасывается не размер полученных данных, а размер буфера записи, что приводит к записи в файл поимимо нужных данных так же и мусора. Так же, так как алгоритм отрабатывает неправильно, возникает ещё всякая фигня с позиционированием в буферах.
TagsNo tags attached.

Activities

2008-11-26 09:06

 

ftp_download_corrupt_files.patch (794 bytes)   
Index: ftp_cnDownload.cpp
===================================================================
--- ftp_cnDownload.cpp	(revision 2127)
+++ ftp_cnDownload.cpp	(working copy)
@@ -207,7 +207,10 @@
           b_ost -= c;
           if ( b_ost < wsz || CMP_TIME(e,bw) >= 3.0 ) {
             DWORD ost = 0;
-            if (wsz == 512) { // very small buffer :)
+            if (wsz == 512 || b_done <= wsz) {
+              // ���� �� ����� �� ����, ����:
+              //   1. ��� �������� �����;
+              //   2. �������� ������� � ��� ���� �������� ��� ���� ���� (Mantis #643).
               if ( Fwrite(fout.Handle,IOBuff,b_done) != b_done ) goto write_error;
             } else {
               // scatter-gatter for RAID in win32 is very bad on large buffer

DiRTy_GaRRy

2008-11-26 09:10

developer   bugnote:0002053

Надо бы проверить мою логику тому, кто делал оптимизацию записи для ftp.

alexy

2008-11-26 12:57

administrator   bugnote:0002054

Там Юра закомитил изменёный фикс, надобно погонять.

DiRTy_GaRRy

2008-11-26 14:22

developer   bugnote:0002055

У меня, вроде, теперь не повторяется ошибка. Подожду денёк-два и закрою.

DiRTy_GaRRy

2008-11-26 14:24

developer   bugnote:0002056

Для порядку вот ссыдка на исходную тему: http://forum.farmanager.com/viewtopic.php?f=9&t=3583

Issue History

Date Modified Username Field Change
2008-11-26 09:03 DiRTy_GaRRy New Issue
2008-11-26 09:06 DiRTy_GaRRy File Added: ftp_download_corrupt_files.patch
2008-11-26 09:10 DiRTy_GaRRy Note Added: 0002053
2008-11-26 09:21 alexy Status new => assigned
2008-11-26 09:21 alexy Assigned To => yjh
2008-11-26 12:57 alexy Note Added: 0002054
2008-11-26 12:59 alexy Status assigned => feedback
2008-11-26 14:22 DiRTy_GaRRy Note Added: 0002055
2008-11-26 14:24 DiRTy_GaRRy Note Added: 0002056
2008-11-27 13:40 DiRTy_GaRRy Status feedback => resolved
2008-11-27 13:40 DiRTy_GaRRy Resolution open => fixed
2008-11-28 23:48 alexy Status resolved => closed
2008-11-28 23:48 alexy Fixed in Version => 1.71
2013-05-20 21:30 alexy Category FTP => FTP (old)