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 20:30 | alexy | Category | FTP => FTP (old) |