View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000643 | Plugins | FTP (old) | public | 2008-11-26 09:03 | 2008-11-28 23:48 |
Reporter | DiRTy_GaRRy | Assigned To | yjh | ||
Priority | normal | Severity | block | Reproducibility | sometimes |
Status | closed | Resolution | fixed | ||
Platform | x86 | OS | Windows | OS Version | 2003 SP2 |
Product Version | 1.71 | ||||
Fixed in Version | 1.71 | ||||
Summary | 0000643: В некоторых ситуациях плагин может портить скачиваемые файлы | ||||
Description | В некоторых ситуациях плагин может портить скачиваемые файлы. Поясняю. Пагин портит скачиваемые файлы при совпадении следующего ряда факторов: 1. Скачанный с ftp буфер (размер буфера задаётся в настройках плагина для каждого сервера) данных заполненен на размер меньший размера буфера записи на диск (буфер записи на диск автоматически выбирается плагином в зависмости от размера кластера); 2. При скачке порции данных возникла некоторая зедержка. При выполнении данных условий из буфера чтения на диск сбрасывается не размер полученных данных, а размер буфера записи, что приводит к записи в файл поимимо нужных данных так же и мусора. Так же, так как алгоритм отрабатывает неправильно, возникает ещё всякая фигня с позиционированием в буферах. | ||||
Tags | No tags attached. | ||||
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 |
|
Надо бы проверить мою логику тому, кто делал оптимизацию записи для ftp. |
|
Там Юра закомитил изменёный фикс, надобно погонять. |
|
У меня, вроде, теперь не повторяется ошибка. Подожду денёк-два и закрою. |
|
Для порядку вот ссыдка на исходную тему: http://forum.farmanager.com/viewtopic.php?f=9&t=3583 |
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) |