← 返回

Баги

Версия 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, не успевает обрабатывать данные.

本主题对您有帮助吗?

分享主题

评论 (15)

登录创建账户, 登录或注册以发表评论

skuvv
skuvv 作者

Вот такая ошибка появляется очень часто, 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 作者

База была чистая, апдейтов небыло, в моем случае очень вероятно что связано с крашами всей гидры. Еще один баг на 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 作者

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

skuvv
skuvv 作者

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

skuvv
skuvv 作者

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

Mikhail Sukhov
Mikhail Sukhov

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

skuvv
skuvv 作者

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

Mikhail Sukhov
Mikhail Sukhov

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

skuvv
skuvv 作者

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

Mikhail Sukhov
Mikhail Sukhov

skuvv:

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

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

skuvv
skuvv 作者

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

skuvv:

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

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

Mikhail Sukhov
Mikhail Sukhov

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

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