← Voltar

Баги

Версия 4.2.3.6, коннектор для p2fortsgate - реал. 1)Не работает уровень логирования - флудит даже не уровне Warning: ... 21:40:56.266| |Plaza |Для GD1860BR4@FORTS загружено 4 SecurityChange. 21:40:56.267| |Plaza |Для GD1870BF4@FORTS загружено 2 SecurityChange. 21:40:56.268| |Plaza |Для GD1870BR4@FORTS загружено 4 SecurityChange. 21:40:56.268| |Plaza |Для GD1880BF4@FORTS загружено 2 SecurityChange. ... 2)Крашится программа, логи Exceptions log 3)Перестал работать выбор поток/таблиц - при открытии все галки сняты и показывает 11 таблиц по умолчанию.

ps не баг - на виртуальной машине с одним ядром крашится - system out of memory exception, не успевает обрабатывать данные.

Este tópico foi útil?

Compartilhar tópico

Comentários (15)

Entrar ou Criar conta, Faça login ou cadastre-se para deixar um comentário

skuvv
skuvv Autor

Вот такая ошибка появляется очень часто, 1000+ за час: 11:10:20.494|Error |Plaza |System.ArgumentOutOfRangeException: Version's parameters must be greater than or equal to zero. Parameter name: major at System.Version..ctor(Int32 major, Int32 minor) at StockSharp.Algo.Storages.LocalMarketDataDrive.#=qHbNCOTbQ2RTZ4HhU5oUWoEi$DAYrVn52gb79hjV8rks=.#=qhBkufFajeEgaj1pw_ZS4XA==() at StockSharp.Algo.Storages.LocalMarketDataDrive.#=qHbNCOTbQ2RTZ4HhU5oUWoEi$DAYrVn52gb79hjV8rks=.#=qGnPWZcmJEpY$pMgFtvAw4w==() at System.Lazy1.CreateValue() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Lazy1.get_Value() at StockSharp.Algo.Storages.LocalMarketDataDrive.#=qHbNCOTbQ2RTZ4HhU5oUWoEi$DAYrVn52gb79hjV8rks=.#=q4uMGdkK8rfY48KUCULzOnA==(DateTime #=qyaKHET4Zws1azsAyMPaltQ==, Action1 #=qFhmu$iT353ymGDWwOYEbpQ==) at StockSharp.Algo.Storages.LocalMarketDataDrive.#=qHbNCOTbQ2RTZ4HhU5oUWoEi$DAYrVn52gb79hjV8rks=.#=qIyXQt2__bXaP80pgT8q$ZNcFx$fuz2fpU_ou3zCT56S6lwRLylSANtegmuXaKvWj4AdBgHbysXDdrl6fsto83w==(DateTime #=qzhkIffYHu2swtVZY0qiNSw==, Byte[] #=qjmAFRdlKh36D_vOW4nR0Ng==) at #=q0AcKdzxrcEaczuTXtGV_7$0Q6kf_e0W2PpHTduqYbS9vh8UyWubXVz6HgfAQulTU.#=qqZ3UkQ6HiDE5kxQxlHqWCg==(DateTime #=qUFhMpfWGZ8NaUx0HVCSXuA==, #=qLf3ak3vMf7hRt1x61V08CA==[] #=qeNRuCwPbA1MZUv6t_RCB1A==, Boolean #=qmogCwIE923b6$wKVqg5YHw==) at #=q0AcKdzxrcEaczuTXtGV_7$0Q6kf_e0W2PpHTduqYbS9vh8UyWubXVz6HgfAQulTU.Save(IEnumerable1 #=queVl0xhSjWu8TzibGSPRqg==) at StockSharp.Hydra.Core.BaseHydraTask.SafeSave(Security security, IEnumerable1 values, Func2 getTime, IEnumerable1 errorChecks, Func3 getStorage)

Mikhail Sukhov
Mikhail Sukhov

skuvv: Вот такая ошибка появляется очень часто, 1000+ за час:

http://stocksharp.com/forum/4472/Oshibki-v-v-Gidrie-2-2-2-27/

devruss
devruss

На самом деле вопрос все еще актуальный. Базу я удалять не стал, но как и было рекомендовано в ветке удалил все файлы с датами - это не помогло

skuvv
skuvv Autor

База была чистая, апдейтов небыло, в моем случае очень вероятно что связано с крашами всей гидры. Еще один баг на 32 битной версии, в тот момент окно интерфейса было свернуто:

15:59:33.429|Error |Unhandled Exception|System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown. at MS.Internal.WindowsBase.SafeSecurityHelper.CleanupCollectedAssemblies(Object state) at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() at System.Threading.ThreadPoolWorkQueue.Dispatch() at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

15:59:01.476|Error |S#.Data |System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown. at System.Collections.ArrayList..ctor(Int32 capacity) at System.Windows.Data.ListCollectionView.PrepareLocalArray() at System.Windows.Data.ListCollectionView.RefreshOverride() at System.Windows.Data.CollectionView.RefreshInternal() at System.Windows.Data.CollectionView.RefreshOrDefer() at System.Windows.Data.ListCollectionView.ProcessCollectionChanged(NotifyCollectionChangedEventArgs args) at System.Windows.Data.CollectionView.OnCollectionChanged(Object sender, NotifyCollectionChangedEventArgs args) at System.Collections.Specialized.NotifyCollectionChangedEventHandler.Invoke(Object sender, NotifyCollectionChangedEventArgs e) at System.Collections.ObjectModel.ObservableCollection1.OnCollectionChanged(NotifyCollectionChangedEventArgs e) at Ecng.Xaml.ThreadSafeObservableCollection1.OnAddRange(IEnumerable1 items) at StockSharp.Xaml.LogMessageCollection.OnAddRange(IEnumerable1 items) at Ecng.Xaml.ThreadSafeObservableCollection1.AddRange(IEnumerable1 items) at StockSharp.Xaml.Monitor.WriteMessages(ILogSource source, IEnumerable1 messages) at StockSharp.Xaml.Monitor.<WriteMessages>b__1(IGrouping2 g) at MoreLinq.MoreEnumerable.ForEach(IEnumerable1 source, Action1 action) at StockSharp.Xaml.Monitor.WriteMessages(IEnumerable`1 messages) at StockSharp.Xaml.GuiLogListener.<>c__DisplayClass1.<OnWriteMessages>b__0() at Ecng.Xaml.GuiDispatcher.ActionInfo.Process() at Ecng.Xaml.GuiDispatcher.OnTimerTick(Object sender, EventArgs e) at System.Windows.Threading.DispatcherTimer.FireTick(Object unused) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler) 15:59:33.237|Error |S#.Data |System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown. at MS.Internal.WindowsBase.SafeSecurityHelper.CleanupCollectedAssemblies(Object state) at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() at System.Threading.ThreadPoolWorkQueue.Dispatch() at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

Mikhail Sukhov
Mikhail Sukhov

skuvv: База была чистая, апдейтов небыло, в моем случае очень вероятно что связано с крашами всей гидры.

Возможно. Сейчас глянул код. Там запись синхронизована, кроме обновления файла с датами. В след версии будет синхронизация. Возможно, она поможет. А сейчас надо удалить файлы с неправильными датами.

skuvv: Еще один баг на 32 битной версии, в тот момент окно интерфейса было свернуто:

В 32 битном процессе для .NET выделяется чуть меньше 1.5 гига памяти. Проще смигрировать на 64 бита.

skuvv
skuvv Autor

А не подскажите как можно найти(или определить) файлы с неправильными датами? При миграции на x64 требуются какие-нибудь действия со стороны гидры?

skuvv
skuvv Autor

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

skuvv
skuvv Autor

По поводу логов, в коннекторе[Plaza2com] стоит Off - но в журнал идет все с уровня trace. За день набегает несколько гигабайт и всё висит в памяти. Как отключить?

Mikhail Sukhov
Mikhail Sukhov

По настройкам самой плазы и ее логам к МБ

skuvv
skuvv Autor

Михаил Сухов: По настройкам самой плазы и ее логам к МБ Видно мы не правильно поняли друг друга, вот скрин для наглядности ps почти 200к событий за пол часа работы, за день память раздувается на гигабайты.

Mikhail Sukhov
Mikhail Sukhov

Сделайте дамп через профайлер. Например dotmemory

skuvv
skuvv Autor

Михаил Сухов: Сделайте дамп через профайлер. Например dotmemory Сделал дамп в dotmemory, dump

Mikhail Sukhov
Mikhail Sukhov

skuvv:

Михаил Сухов: Сделайте дамп через профайлер. Например dotmemory Сделал дамп в dotmemory, dump

Как видно из dump - LogMessage там занимает очень скромный объем памяти.

skuvv
skuvv Autor

Михаил Сухов:

skuvv:

Михаил Сухов: Сделайте дамп через профайлер. Например dotmemory Сделал дамп в dotmemory, dump

Как видно из dump - LogMessage там занимает очень скромный объем памяти. Это наверно гут, хотя утечки памяти значит в других местах.

Mikhail Sukhov
Mikhail Sukhov

skuvv: Это наверно гут, хотя утечки памяти значит в других местах.

Да вроде нет, если судить по дампу.