← Back

Баги в новой гидре

Последняя версия текущего дня. При выключении коннектора к финаму вылетает без каких-либо сообщений.

Также был замечен баг, при включении новой гидры с параметром автостарт и неудаленной бд с прошлой версии, дальше загрузки коннекторов дело не идет, на обработке UX встает намертво.

Comments (24)

Login or Create account, Log in or register to leave a comment

Moadip
Moadip

При выключении коннектора к финаму вылетает без каких-либо сообщений. Проверил, останавливается нормально, не вылетает. Опишите по шагам что и как вы делаете, чтобы воспроизвести ошибку.

Также был замечен баг, при включении новой гидры с параметром автостарт и неудаленной бд с прошлой версии, дальше загрузки коннекторов дело не идет, на обработке UX встает намертво. Не понял как это у вас получилось сделать.

До этого все настройки хранились в config файле. Допустим у вас был включен автостарт. Изменилась БД - все настройки были перенесены в БД. Изменился и код в Гидре. Соответственно при запуске Гидра ищет настройки в БД, а не в config файле. А раз БД была старая, в ней не было настроек, то и автозапуск невозможен.

yammm
yammm Author

Включаю гидру:

Перетаскиваю ползунок на коннекторе финама в положение I.

Гидра вылетает:

Настройки финама:

Общие настройки:

Ось Win 7 ultimate 64 eng

Moadip
Moadip

Попробовал еще раз на чистой Гидре. Выставил точно такие же настройки. Включаю источник Финам, предлагает обновить справочник. Ничего не вылетает.

Ось: Win 7 ultimate 64 ru.

Берите исходники, ставьте бряки и смотрите из за чего вылетает.

yammm
yammm Author

На чистой win 8 русской идет, на чистой win 7 eng не идет. Кстати не первый раз такое замечаю, что под англ версиями все работает немного иначе :)

Mikhail Sukhov
Mikhail Sukhov

yammm: На чистой win 8 русской идет, на чистой win 7 eng не идет. Кстати не первый раз такое замечаю, что под англ версиями все работает немного иначе :)

Если Гидра вылетает молча, то это какой-то баг во фреймворке. Потому что обработчик ошибок есть, и он не может не сработать. Не срабатывает только если что-то критическое произошло (нехватка памяти, ее перезапись и прочее). Так что тут только дебаг.

VassilSanych
VassilSanych

Mikhail Sukhov: Если Гидра вылетает молча, то это какой-то баг во фреймворке. Это маловероятно Mikhail Sukhov: Потому что обработчик ошибок есть, и он не может не сработать. Стартовый файл Гидры выглядит так


namespace StockSharp.Hydra
{
 public partial class App
	{
	}
}

Обработки неотловленных ошибок потоков как-то не заметно. Любые другие обработчики обрабатывают только отдельные куски кода. Так что обработчик может и не сработать.

VassilSanych
VassilSanych

yammm: На чистой win 8 русской идет, на чистой win 7 eng не идет. Кстати не первый раз такое замечаю, что под англ версиями все работает немного иначе :) Под англ. версиями иначе работает то, что разрабатывалось под русской версией. Особенно если никто толком продукт не тестировал. Точнее с русскими настройками, потому что локальных версий уже вобщем-то уже и нет. Последняя моя "локальная" версия ОС была Win 98 SE. Все остальные изначально были многоязычными, но везде кнопка Пуск называлась "Пуск". Даже в Win 8 ;) Настройте параметры данных и интерфейса на русский язык, иначе у вас и Quik нормально работать не будет. Я не имею в виду даже Local pack, настройте хотя бы формат данных и шрифты по-умолчанию.

Mikhail Sukhov
Mikhail Sukhov

VassilSanych: Обработки неотловленных ошибок потоков как-то не заметно.

Это достаточно легко проверить.

Jeta
Jeta

Собрал гидру из транка (22848) Скачал тики с Финама. При генерации нестандартных свечек из тиков (например 4 мин) происходит следующее: Генерация свечек

Время первой сделки получается, происходит 10.28, цена соответствует первой сделки в 10.30 (цена 11250). По идее, время открытия свечек д.б. 10.30,10.34, 10.38 и т.д?! При генерации 1мин,5мин свечек время и цена правильная 10.30(11250)...

MenDel
MenDel

Гидра 4.1.7 выкидывает при запуске вот такую ошибку, а 4.1.6 запускается без проблем

А 4.1.6 когда нажимаю стоп, загрузка данных не останавливается

Moadip
Moadip

MenDel: Гидра 4.1.7 выкидывает при запуске вот такую ошибку, а 4.1.6 запускается без проблем

Попробуйте последнюю версию с codeplex, вроде как это проблема была решена.

Moadip
Moadip

jTr: Собрал гидру из транка (22848) Скачал тики с Финама. При генерации нестандартных свечек из тиков (например 4 мин) происходит следующее: Генерация свечек

Время первой сделки получается, происходит 10.28, цена соответствует первой сделки в 10.30 (цена 11250). По идее, время открытия свечек д.б. 10.30,10.34, 10.38 и т.д?! При генерации 1мин,5мин свечек время и цена правильная 10.30(11250)...

Гидра скорее всего не причем, бага в самом S#. Посмотрим.

MenDel
MenDel

Moadip: Попробуйте последнюю версию с codeplex, вроде как это проблема была решена.

Она там не скомпилирована? Я не могу ее на 2010 студии запустить, точнее запускаю, а она просит ссылку StockSharp.Hydra.Core.dll, я чет ее не найду

Moadip
Moadip

Commit 22603

Михаил фиксил проблему. Вроде как больше не появлялась. Сейчас последний коммит 22879 - codeplex

Она там не скомпилирована? Я не могу ее на 2010 студии запустить, точнее запускаю, а она просит ссылку StockSharp.Hydra.Core.dll, я чет ее не найду

Нет, там лежат исходники. StockSharp.Hydra.Core.dll - это скомпиленный проект Core в Гидре.

Запускайте проект целиком trunk\StockSharp.sln и собирайте его полностью. Так точно соберется все что нужно.

MenDel
Jeta
Jeta

Не понятно, как работает гидра в случае, когда гидра останавливается по причине нехватки места на диске. Как в этом случае происходит дальнейшее скачивание?

Moadip
Moadip

Хм. Интересный вопрос, надо будет проэкспериментировать. Думаю при нехватке места в логи будет писаться сообщение об ошибке, и при наборе определенного количества exceptions, источник будет остановлен. По крайней мере сейчас так.

Jeta
Jeta

Moadip: ...Думаю при нехватке места в логи будет писаться сообщение об ошибке, и при наборе определенного количества exceptions, источник будет остановлен. По крайней мере сейчас так. Сейчас так и есть, ничего фатального не происходит, но как в таком случае продолжить скачивание?

Jeta
Jeta

Moadip: Сейчас так и есть, ничего фатального не происходит, но как в таком случае продолжить скачивание? Ан нет, поторопился. При нехватке места на диске, все-таки выход по ексепшен, с выбором отладчика...

Jeta
Jeta

Собрал некоторое количество exceptions)) Запустить гидру на скачивание не получалось. Интересный момент в том, что гидра с каждым разом "пробегает" "все с начала" и дальше выход на эксепшн. Метод тыка))) Скачался полностью другой инструмент...Скачивание прерванного инструмента возобновилась...

  • такое чувство, что гидра "не знает" что скачала ранее.(проход по логам?)
Jeta
Jeta

Идем дальше! Выгрузка свечек в .txt формат, через раз.Не думаю что ограничение .txt формата 12-16 мб...

Moadip
Moadip

Собрал некоторое количество exceptions)) Запустить гидру на скачивание не получалось. Интересный момент в том, что гидра с каждым разом "пробегает" "все с начала" и дальше выход на эксепшн. Метод тыка))) Скачался полностью другой инструмент...Скачивание прерванного инструмента возобновилась...

  • такое чувство, что гидра "не знает" что скачала ранее.(проход по логам?) Какой источник? Что значит "пробегает все с начала"? Какая ошибка при скачивании?

Сейчас так и есть, ничего фатального не происходит, но как в таком случае продолжить скачивание? Да вроде как ответ очевиден. Если не хватает места, то наверное его надо освободить. Или вопрос в другом?

Идем дальше! Выгрузка свечек в .txt формат, через раз.Не думаю что ограничение .txt формата 12-16 мб... Приведите пошаговые действия, когда появляется данная ошибка.

Jeta
Jeta

Одна из последних ошибок Гидры... Задача: скачать данные за период 01.01.2009-08.02.2013 по SPFB.RTS@RTS. Скачивание прекращается (довольно продолжительное). Версия из транка (22848)

00:05:13.437|Error  |Finam     |System.Net.WebException: Сервер нарушил протокол. Section=ResponseStatusLine
   в System.Net.WebClient.DownloadDataInternal(Uri address, WebRequest& request)
   в System.Net.WebClient.DownloadString(Uri address)
   в StockSharp.Algo.History.Finam.FinamHistorySource.#=qJs$6$bo78j0D5KtkZiF2xA==(Uri #=qnS2IEguL$xmTNxXhz2pdMw==)
   в StockSharp.Algo.History.Finam.FinamHistorySource.#=qYY4_54y1TtpX1q44diOy0mOxY24_tsYSTKuZGgJLO8Q=.#=qKXc6$JrTvx4ucZEkz7PEuFNVrrpIRMJEMMmkj$NR67k=()
   в StockSharp.Algo.History.Finam.FinamHistorySource.#=qD9oAKJ$GEARGfcJzgMhM$g==[T](String #=qnO0Ips9PCGTHpJZLYngtIw==, Func`1 #=q4QaBVWbRJ6OXHOSbMPTJcQ==, Func`2 #=qMN_MvtLc_r$VTLD4lBmVbA==)
   в StockSharp.Algo.History.Finam.FinamHistorySource.GetTrades(Security security, DateTime time)
   в StockSharp.Hydra.Finam.FinamSource.LoadTrades(Security security, List`1 allDates) в M:\My Download\stocksharp-22848\trunk\Hydra\Plugins\Finam\FinamSource.cs:строка 195
   в StockSharp.Hydra.Finam.FinamSource.Load() в M:\My Download\stocksharp-22848\trunk\Hydra\Plugins\Finam\FinamSource.cs:строка 164
   в StockSharp.Hydra.Worker.Downloader.Download() в M:\My Download\stocksharp-22848\trunk\Hydra\Hydra\Worker.cs:строка 175

При последующем старте Гидры происходит следующее:

  • Гидра начинает "скачивание", с указанной даты в настройках источника (Finam), т.е. все сначала, . с 01.01.2009. По факту, происходит "верификация" данных с самого начала!?
  • как только гидра доходит до последнего скачанного дня, наблюдается следующее:
02:18:33.656|Error  |Finam     |System.OutOfMemoryException: Выдано исключение типа "System.OutOfMemoryException".
   в System.String.Split(String[] separator, Int32 count, StringSplitOptions options)
   в Ecng.Common.StringHelper.Split(String str, String separator)
   в StockSharp.Algo.History.Finam.FinamHistorySource.#=qJs$6$bo78j0D5KtkZiF2xA==(Uri #=qnS2IEguL$xmTNxXhz2pdMw==)
   в StockSharp.Algo.History.Finam.FinamHistorySource.#=qYY4_54y1TtpX1q44diOy0mOxY24_tsYSTKuZGgJLO8Q=.#=qKXc6$JrTvx4ucZEkz7PEuFNVrrpIRMJEMMmkj$NR67k=()
   в StockSharp.Algo.History.Finam.FinamHistorySource.#=qD9oAKJ$GEARGfcJzgMhM$g==[T](String #=qnO0Ips9PCGTHpJZLYngtIw==, Func`1 #=q4QaBVWbRJ6OXHOSbMPTJcQ==, Func`2 #=qMN_MvtLc_r$VTLD4lBmVbA==)
   в StockSharp.Algo.History.Finam.FinamHistorySource.GetTrades(Security security, DateTime time)
   в StockSharp.Hydra.Finam.FinamSource.LoadTrades(Security security, List`1 allDates) в M:\My Download\stocksharp-22848\trunk\Hydra\Plugins\Finam\FinamSource.cs:строка 195
   в StockSharp.Hydra.Finam.FinamSource.Load() в M:\My Download\stocksharp-22848\trunk\Hydra\Plugins\Finam\FinamSource.cs:строка 164
   в StockSharp.Hydra.Worker.Downloader.Download() в M:\My Download\stocksharp-22848\trunk\Hydra\Hydra\Worker.cs:строка 175

Дальше все сначала. Вопросы:

  • как в таком случае продолжить скачивание?
  • как Гидра запоминает текущий таск, т.е что уже скачано и что еще предстоит скачать? С чем это связано и как можно это решить?
Moadip
Moadip

как Гидра запоминает текущий таск, т.е что уже скачано и что еще предстоит скачать? С финама выкачиваются "сырцы" в формате txt(в папке с данными появляется папка TemporaryFiles, куда они складываются), затем сохраняются в формате bin. При новом старте, гидра проверяет, за какой период/по каким дням есть данные, если есть дырки в сохраненных данных, то по этим дням будет идти закачка.

К примеру стоит дата скачки по SPFB.RTS@RTS с 01.01.2009, но данные начинаются только с 11 числа, до этого приходят "пустые" txt. Соответственно и сохранятся данные в формате bin будут с 11 числа. Поэтому при следующем старте и проверке по каким дням нет данных, гидра посчитает что с 1 по 10 нет данных, и опять будут выкачиваться данные по этим дням.

Задача: скачать данные за период 01.01.2009-12.02.2013 по SPFB.RTS@RTS. При скачивании с финама надо знать несколько нюансов: Финам не дает скачивать большой объем тиков в торговое время. Данные с финама нередко "кривые", надо делать "верификацию", хотя бы визуальную по графику. Серваки финама не всегда доступны. И если не получается скачать, это не значит что проблема именно в Гидре.

Сегодня на ночь, для теста, поставил выкачивать SPFB.RTS@RTS за 01.01.2009-08.02.2013 В итоге выкачалось 3 года из 4. Была одна ошибка - сервер не доступен. "Сырцов" выкачалось 7,6 Гига. Это к тому, что надо заранееосвобождать место на винте, если планируется выкачивать большой объем.

как только гидра доходит до последнего скачанного дня, наблюдается следующее: Попробуйте удалить папку TemporaryFiles.

Jeta
Moadip
Moadip

Пофиксил баг. Наличие данных по дням проверялось не в алфавитных папках.