View Issue Details

IDProjectCategoryView StatusLast Update
0000724PluginsFTP (old)public2009-03-03 08:25
Reporterdolzenko Assigned To 
PrioritynormalSeverityminorReproducibilityalways
Status newResolutionopen 
Summary0000724: Парсер пропускает ошибки парсинга
DescriptionПри этом в лог попадают сообщения о ParserFAIL,
Обнаружено на файлах на сервере с 5-значной датой, подобные файлы игнорируются клиентов без предупреждения пользователя.
Детали здесь - http://forum.farmanager.com/viewtopic.php?p=39591#p39591
Additional InformationТ.к. тут http://forum.farmanager.com/viewtopic.php?p=39975#p39975 сказано что раньше выдавалась ошибка, и сигнатуры функции BadFormat рискну сделать предположение в патче даже каким вызовом это делалось :)
TagsNo tags attached.

Activities

2009-02-02 14:34

 

ftp_FtpAPI.patch (478 bytes)   
Index: plugins/ftp/ftp_FtpAPI.cpp
===================================================================
--- plugins/ftp/ftp_FtpAPI.cpp	(revision 2547)
+++ plugins/ftp/ftp_FtpAPI.cpp	(working copy)
@@ -650,6 +650,7 @@
                          Line1.c_str() ),
                 ldInt );
         Connect->AddCmdLine( Message("ParserFAIL: (%s) [%s]", Parser2Str(idx,&dl), Line1.c_str()) );
+        BadFormat( Connect,Line1.c_str(),TRUE );
         continue;
       }
 
ftp_FtpAPI.patch (478 bytes)   

DiRTy_GaRRy

2009-02-02 15:53

developer   bugnote:0002377

Не думаю, что хорошая идея выдавать это сообщение на каждую непропарсенную строчку. IMHO, лучше это делать один раз на весь литинг, иначе, при наличии кучи таких файлов, заколебёшся жать на ОК. Но это потребует больших переделок.

DiRTy_GaRRy

2009-02-02 17:51

developer   bugnote:0002378

Хотя... ситуация довольно редкая, так что хрен с ним. Но патчик немного не правильный. В нём в логе строки дублироваться будут. Прилагаю правильный патчик.

А на счёт дат нужно подумать... Хотя тут есть две тонкости: во-первых, нужно будет избавляться от SYSTEMTIME, так как оно не поддерживает до такой степени большие года (максимальный год — это 30827); во-вторых, сам фар всё равно вихуально никак не отображает более чем 4-х значные года (хотя и не падает). Так что фиг его знает стоит или не запариваться по этому поводу.

2009-02-02 17:51

 

ftp_parser_fail.patch (546 bytes)   
Index: ftp_FtpAPI.cpp
===================================================================
--- ftp_FtpAPI.cpp	(revision 2545)
+++ ftp_FtpAPI.cpp	(working copy)
@@ -649,7 +649,7 @@
                          Parser2Str(idx,&dl),
                          Line1.c_str() ),
                 ldInt );
-        Connect->AddCmdLine( Message("ParserFAIL: (%s) [%s]", Parser2Str(idx,&dl), Line1.c_str()) );
+        BadFormat(Connect, Message("ParserFAIL: (%s) [%s]", Parser2Str(idx,&dl), Line1.c_str()), TRUE );
         continue;
       }
 
ftp_parser_fail.patch (546 bytes)   

dolzenko

2009-02-02 23:35

reporter   bugnote:0002381

Ага, проглядел с лишним вызовом.

Меня в таком виде гораздо больше устраивает, ИМХО лучше увидеть ясно и как можно раньше, что есть проблемы и воспользоваться для проблемного случая просто другим клиентом, чем потом искать "пропавшие" файлы.

vskirdin

2009-03-02 11:02

administrator   bugnote:0002647

Народ, предлагается немного патч переделать :-)
1. В лог выводить всегда (если не отключен)
2. Вывести диалог первый/N раз (первый в "этом" сеансе коннекта), в нем 2-3 кнопки - типа, "Продолжить", "Прервать парсинг", "ХЗ...". Ну и... например, 1 чекбоск - "показывать ошибки дальше"

Второй пункт нужен по любому (в принципе может быть настраиваемым через конфиг), т.к.... лог-файл может быть отключен, и пользователь может "пропустить гол"...

dolzenko

2009-03-02 17:45

reporter   bugnote:0002660

Что-то не осознаю зачем может быть нужна кнопка "Продолжить", про отключенный лог - тоже не осознал, но если там как-то завязано на лог, то почему бы просто не убрать зависимость и просто свалиться?
ftp плагин ведь вообще любит это делать :D

vskirdin

2009-03-03 06:45

administrator   bugnote:0002663

Не придирайся к "продолжить" - это были мысли вслух :-)
"Продолжить" - это когда...
...хмм, когда происходят ошибки парсинга - однозначно _ВСЁ_ криво парсится или все же часть данных нормально отображается?

"если лог отключен" - если это так, то как пользователь узнает, что ему лажу на панели подсовывают? (это в тему "нужен диалог", хотя бы для первого неправильного парсинга)

dolzenko

2009-03-03 07:53

reporter   bugnote:0002668

В моем случае - часть данных отображается нормально (ну т.е. файлы с нормальными датами, а не в 60000м году), однако как я уже писал такое "нормальное" отображание может и с ума свести :) (всмысле когда часть файлов просто отсутсвует в папке)

vskirdin

2009-03-03 08:25

administrator   bugnote:0002670

ну. все правильно.
зато ты будешь знать, что что-то не так.
без диалога ты это не узнаешь (лог может быть отключен, ты в лог не посмотришь)

Issue History

Date Modified Username Field Change
2009-02-02 14:34 dolzenko New Issue
2009-02-02 14:34 dolzenko File Added: ftp_FtpAPI.patch
2009-02-02 15:53 DiRTy_GaRRy Note Added: 0002377
2009-02-02 17:51 DiRTy_GaRRy Note Added: 0002378
2009-02-02 17:51 DiRTy_GaRRy File Added: ftp_parser_fail.patch
2009-02-02 23:35 dolzenko Note Added: 0002381
2009-03-02 11:02 vskirdin Note Added: 0002647
2009-03-02 17:45 dolzenko Note Added: 0002660
2009-03-03 06:45 vskirdin Note Added: 0002663
2009-03-03 07:53 dolzenko Note Added: 0002668
2009-03-03 08:25 vskirdin Note Added: 0002670
2013-05-20 20:30 alexy Category FTP => FTP (old)