Исключение «заглушка получила неверные данные» в вызове Windows RPC - PullRequest
2 голосов
/ 04 апреля 2019

Мы сталкиваемся со следующей проблемой: Архитектура выглядит следующим образом: Собственное клиентское приложение c ++ подключается к серверному приложению c ++ через канал RPC на основе файла IDL.Я не особо разбираюсь в этом домене и не кодировал соответствующие части, но он работает уже долгое время.

С некоторых дней один из наших клиент-серверных тестов не проходит.Изучение проблемы показывает, что существует исключительная ситуация в коммуникационной части RPC очень низкого уровня:

Exception thrown at 0x00007FFF2649A388 (KernelBase.dll) in application.exe: 0x000006F7: The stub received bad data. occurred

Стек содержит вызовы функций в rpcrt4.dll .

Теперь дело в том, что у нас нет последних модификаций в этих частях кода.Ни в функциях клиента, участвующих в вызове RPC этого конкретного сервера.Кроме того, та же ошибка возникает на моем компьютере разработчика также со старой версией кода (для которой тесты прошли нормально, когда эта старая версия была протестирована на тестовых машинах).Так что я подозреваю какую-то внешнюю проблему, такую ​​как обновления библиотек Windows или тому подобное.

Кто-нибудь сталкивался с этой ошибкой внезапно?

Как я должен идти вперед, чтобы отладить и точно определить проблему?Что я сделал до сих пор: отладил клиент и сервер, и я вижу входящий вызов на сервере, и функция выполняется нормально.Это когда результат отправляется обратно клиенту, когда на клиенте запускается исключение.

Это в Windows 10 x64, разработанной в Visual C ++ 2017.

...