DPC_WATCHDOG_VIOLATION [Solved]

Discussions related to Visual Prolog
Harrison Pratt
VIP Member
Posts: 299
Joined: 5 Nov 2000 0:01

DPC_WATCHDOG_VIOLATION [Solved]

Unread post by Harrison Pratt » 29 Jul 2019 15:52

This is a too-long FYI tale of a one-time problem that is solved, but not understood. (VIP 8 Build 802, 32 bit application on Win10/64)

PROBLEM: My PC began freezing when compiling a particular application and I had to power-off/on to regain control. It turns out that power cycling may been a mistake because it scrambled something and I would get a DPC_WATCHDOG_VIOLATION message on rebooting. It would go into BSOD (blue screen of death) screen, show the message and then reboot itself. The app task window never even flickered so I was pretty sure the problem was very early in the load/launch process.

I then rolled Windows back to a previous working version and found that launching the app would instantly cause a freeze up followed by BSOD DPC_WATCHDOG_VIOLATION error but if I would wait a minute or two it would automatically reboot in a normal state.

So, I did a "Rebuild All" in the IDE and observed the same behavior. I rebuilt again after deleting the Deb and Obj directories from the project and it behaved the same. There is nothing in the main.pro or TaskWindow.pro files that looks significantly different than my other apps and there are no clauses which read files or the registry.

Then I compared the various DLLs in the app Exe directory with their sources in the Visual Prolog 8/dll directory using BeyondCompare and they were binary identical.

SOLUTION: Finally, I renamed the DLLs in the app Exe directory and rebuilt the project letting the IDE restore the DLLs -- and that seems to have cured the problem. The copied DLLs were binary identical to the renamed ones.

I suspect that something became scrambled during a Win10 update which happened the day that the problem occurred.

What is mysterious to me is that bringing in new apparently identical DLLs would solve the problem.

Addendum 2019-08-02:

I now think what happened is that during the initial freeze the TaskWindow package build process became mangled because the various predicates etc. didn't show in the IDE, although the application would compile normally (even after deleting /Obj/ & /Deb/ directories. After I specifically did a "Rebuild Directory" for TaskWindow from the IDE the problem now seems to be permanently cured. Having the IDE restore the renamed DLLs seemed to fix the problem only for a few days.

This, of course, is not a Visual Prolog problem, but a fortunately uncommon Win10 issue.

Suggestion: Give Windows a few minutes to resolve what seems like a hard freeze before doing a power off/on cycle.

Post Reply