Attempted to read or write protected memory.

Attempted to read or write protected memory.
Atom
1/21/2011


Михаил, добрый день.
Помогите, пожалуйста, найти причину ошибки.

Описание ситуации:
периодически, приблизительно раза два в неделю, при работе S# c Квиком возникает ошибка.
В остальное время все работает без ошибки.

Описание исключения из дебагера:
Code

ex    {"Attempted to read or write protected memory. This is often an indication that other memory is corrupt."}
[System.AccessViolationException]    {"Attempted to read or write protected memory. This is often an indication that other memory is corrupt."}
Data    {System.Collections.ListDictionaryInternal}
HelpLink    null
InnerException    null
Message    "Attempted to read or write protected memory. This is often an indication that other memory is corrupt."
Source    "mscorlib
StackTrace

at System.StubHelpers.ValueClassMarshaler.ConvertToManaged(IntPtr dst, IntPtr src, IntPtr pMT)\r\n
at Ecng.Interop.WinApi.GetMenuItemInfo(IntPtr hMenu, UInt32 uItem, Boolean fByPosition, MenuItemInfo& lpmii)\r\n
at Ecng.Interop.ManagedWinApiHelper.GetMenuItems(IntPtr hMenu, SystemWindow window)\r\n
at Ecng.Interop.SystemMenu..ctor(IntPtr hMenu, SystemWindow window)\r\n
at Ecng.Interop.ManagedWinApiHelper.GetMenu(SystemWindow window)\r\n
at Ecng.Trading.Quik.QuikTerminal.GetAccounts()\r\n
at Ecng.Trading.Quik.QuikTrader.#=qOpBiLK4QqpviIWtcch8OWgvUqP3awIStT7FRqaHhRZY=.#=qCEoE_nVJQF0bssPXr1HgDhv_eIFFIbEByDSR6PGDD1A=()\r\n
at Ecng.Trading.Algo.BaseTrader.ProcessEvents(Action handler)
        
TargetSite    {Void ConvertToManaged(IntPtr, IntPtr, IntPtr)}





Ошибка возникает при исполнении участка кода:

Code

// Подписываемся на событие соединения с квик
Global.Quik.Connected += () =>
{
    _waitConnected.Set();
};

// Подписываемся на событие появление портфеля
Global.Quik.NewPortfolios += portfolios =>
{
    Portfolio _portfolio = portfolios.FirstOrDefault(p => p.Name == Global.SqlQuikProperty.QuikAccount);

    if (_portfolio != null)
    {
        Global.Portfolio = _portfolio;
        _waitPortfolio.Set();
    }
};

// Соединяемся с Quik
Global.Quik.Connect();

if (_waitConnected.WaitOne(10000) == false)
    throw new Exception("We try connect to Quik, but have reach timeout");

if (_waitPortfolio.WaitOne(10000) == false)
    throw new Exception("We try connect to get Portfolio, but have reach timeout");



Более конкретно — ошибка возникает при исполнении вот этой строчки:
Code

if (_waitPortfolio.WaitOne(10000) == false)



При этом ошибка возникает не в выше описанном коде, а ошибка ловится обработчиком события BaseTrader.ProcessDataError

Решить вопрос удается только логофом пользователя, после чего необходимо подождать некоторое время,
прежде чем повторно входить под этим пользователем.


Tags:


Thanks:


< 1 2 
Maxim

Avatar
Date: 2/13/2011
Reply


Михаил, получилось ли воспроизвести ошибку?
Когда то была похожая проблема: возникала ошибка, если был развернут на все окно график.
Ошибка, правда, была какая-то другая, подробности не смог найти в истории форума.
Thanks:

Mikhail Sukhov

Avatar
Date: 2/13/2011
Reply


Maxim Go to
Михаил, получилось ли воспроизвести ошибку?


Вы же привели закономерность. Она не работает?
Thanks:

Maxim

Avatar
Date: 2/13/2011
Reply


Quote:
Вы же привели закономерность. Она не работает?


Немного не понял вопрос.


Наблюдается баг:
если окно заявки развернуто на максимум, то при попытке соединится с Квиком посредсвтом S#
возникает исключение: "Attempted to read or write protected memory. This is often an indication that other memory is corrupt.»


Баг не критичный, но хотелось бы его устранить.
Thanks:

Mikhail Sukhov

Avatar
Date: 2/13/2011
Reply


Maxim Go to
Quote:
Вы же привели закономерность. Она не работает?


Немного не понял вопрос.


Наблюдается баг:
если окно заявки развернуто на максимум, то при попытке соединится с Квиком посредсвтом S#
возникает исключение: "Attempted to read or write protected memory. This is often an indication that other memory is corrupt.»


Баг не критичный, но хотелось бы его устранить.


Вопрос в чем? Как воспроизвести багу или как ее устранить?
Thanks:

Maxim

Avatar
Date: 2/13/2011
Reply


Вопрос как его устранить?
И считаете ли Вы это багом?
Thanks:

Mikhail Sukhov

Avatar
Date: 2/13/2011
Reply


Maxim Go to
Вопрос как его устранить?
И считаете ли Вы это багом?


Устранить - использовать S# 3.0. И да, конечно же это баг.
Thanks:

Maxim

Avatar
Date: 2/13/2011
Reply


Вроде Вас понял.
У нас недопонимание получилось.

Надо было спросить, устранен ли этот баг в 3 версии.
Насколько я понял из ответа — устранен.

Я только начал переход на 3.0
Thanks:
< 1 2 

Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy