-
Notifications
You must be signed in to change notification settings - Fork 298
Driver deadlock #22
Comments
Thanks for the report but could you please monitor the situation with the latest driver version as well? What you run is very outdated. |
...Wow, that IS really old! I missed the latest stable release somehow. Will do! |
Same issue with latest stable. I will do some experimenting to see if I can narrow down the issue. |
I have been getting the same problem, wasn't sure if it was steam, glosc or vigem, I assume it's vigem since trying to disable it causes driver manager to freeze up, only fix I have found is to reboot the pc, oddly it never happens during play only after (not all the time only some times) |
Dammit 😅 |
I completely uninstalled vigem and glosc, and reinstalled vigem first then glosc and so far I have had no issues, the last time I installed I just installed glosc like normal, which installed vigem (or was supposed to) but when I first used glosc that time I got the couldn't initialize vigem error, I then installed vigem without uninstalling anything, perhaps that caused the issue, I will keep and eye on it Edit: I can also disable and enable vigem in device manager without issue now |
Any news @michael-fadely ? |
Still exhibiting the exact same behavior, unfortunately. Just having the virtual Xbox 360 device present when attempting to launch an application that uses XInput will sometimes cause this deadlock and require a hard reboot to allow any other physical devices to connect to, or disconnect from, the system. |
Could this be due to my program's multi-threading? I am using ViGEmClient. I call |
In my program, everything appears to continue working. I simply unplug the DualShock 4 and it calls |
This seems very similar to a problem I'm experiencing. I'm using DS4Windows, on Windows 10 1909 and the latest version of the driver. After about 3 days of uptime, during which I leave a controller connected by USB at all times, Monster Hunter World will stall on its black startup screen and not proceed to the dev logo, but Special K's overlay is drawn, and Chrome can still start a new, GPU-accelerated video, so it's not a video driver failure. Attempting to "stop" and "start" DS4Windows may appear to work but results in a CPU-spinning thread. Attempting to reboot Windows causes it to hang on "Restarting" for several minutes, then BSOD. I have not yet narrowed this down to being caused by ViGEmBus. It does seem like a likely culprit, especially after reading this thread. The next time this happens, I'll try disabling the device to see if it hangs, like it does for MtDewFella, and I'll try uninstalling it after the reboot. I will also attempt to get an xperf trace on the shutdown process that includes stacks. If ViGEmBus does wind up being the culprit, is there anything else I can do to help diagnose this? It seems reliably reproducible for me; I just have to wait 3 days each time. |
In fact, if it's going to do it again, today's the day. I have about 7 or 8 hours before I'm going to commence playing games, at which time I'll be doing the trace and so on if it did deadlock. If you have any advice or suggestions on helping diagnose this, providing them now would be timely. |
Make sure kernel memory dumps are enabled and keep the dump file somewhere. It shouldn't be shared publicly but is the best start to get the culprit. |
Roger. Seems I'll have to reboot to enable that, so I'll get it ready for next time. I wouldn't get my hopes up, though; it didn't record the bugcheck event to the log the last time, despite the BSOD. (And it rebooted to BIOS setup instead of Windows for some reason; I was able to just exit with no changes and go right back to Windows.) I could only guess as to why. It wrote one of those "Dump file creation failed" events after booting up. Since the last time it happened, I removed an old Logitech driver I had and replaced it with a newer one. If that was the actual culprit, I won't be seeing this situation again. |
It happened again today, so I took some traces. I'll link them to you in an email. I launched MHW, and it froze on its black startup screen. I ran a trace for maybe 30 seconds and produced "out.etl" and "kernel.etl". Upon unplugging the controller, DS4Windows reported losing connection to it, and MHW suddenly continued as normal. I was also able to exit and launch it again normally. Plugging the controller back in, DS4Windows did not log any new messages, such as connecting to it. Attempting to restart got stuck, as before. I took a trace during that restart, and I hit reset after it was clear that it wasn't going anywhere, rather than let it play out for 10 minutes. Unfortunately, xbootmgr was not able to assemble a finalized trace file once Windows started up; it claimed it couldn't load something from the registry. Therefore, you have "shutdown_BASE+DIAG+LATENCY+PROFILE+INTERRUPT+DPC_1_um_premerge.etl", and "shutdown_BASE+DIAG+LATENCY+PROFILE+INTERRUPT+DPC_1_km_premerge.etl". There's also the less-inclusive "shutdown_BASE+DIAG+LATENCY_1.etl" that is from a previous attempt at a restart trace during this stuck condition. If it happens again in a few days, I now have kernel memory dumping enabled, so I'll force a bugcheck in the hopes that'll actually dump it, following Microsoft's instructions for doing so. edit: The "kernel.etl" file is actually related to the trace while MHW was running, not the restart trace. The comment has been corrected to reflect this. |
The deadlock has not yet triggered again, but I'm still being vigilant and and ready to catch a memory dump when it does. |
Damn, failure. It finally happened again, and I initiated a crash, but Windows once again failed to write a dump file due to an unspecified error. It looks like the only other option for getting a kernel memory dump is enabling kernel debugging mode and dumping it with windbg. I'll try to get that set up for next time. |
@Corrodias shame, but was it "random" or while a game accessed the controller? Because I was thinking about writing a small "fuzzing" application which may get us to the goal faster. Like rapid (dis-)connects, calling XInput APIs automated many many times etc. Might be with the try other than waiting and hoping 😅 |
I am hesitant to enable kernel debugging for several days at a time because I'm wary of a performance impact, and Monster Hunter: World is already a very demanding game. Having a way of reproducing it that doesn't require waiting upward of 3 days would be excellent. I'd be eager to try such an application and wouldn't have a reason to avoid the debugging mode then. I only notice it happening right as the game's initializing, while the window is black and Special K has drawn its banner, but before it displays the splash screens, most likely during xinput initialization. That said, I can't guarantee that the truth isn't that the state is being triggered before that and the game is merely encountering it. I'm using DS4Windows with "exclusive mode" enabled, so the game cannot see the original DS4. This may be important: my DS4 is actually connected through a third-party adapter called the Titan Two. That's connected to the PC by USB at all times, and I merely swap the controller between bluetooth and USB. It's supposed to perfectly emulate a DualShock 4 and by all appearances is successful in doing so. However, if it deviates in some small way, perhaps that could be triggering this issue? I could try connecting the controller directly by USB for a couple of weeks to see if that prevents the problem. However, if the Titan Two is misbehaving in some small way, I think it would benefit both its devs and you to understand how and why it's causing a problem, so one or both ends can mitigate it. Thinking back, unfortunately, I see no pattern between things I do before a gaming session that works and things I do before one that doesn't. It's all the same stuff. I connect and disconnect my USB headset on occasion. I swap the controller between bluetooth and USB so it can charge. edit: Of course it could be DS4Windows doing something wrong. Somewhere among the Titan Two, DS4Windows, and ViGEmBus, one of them is doing something wrong. Now, I haven't been running the very latest version of DS4Windows. The last few versions don't have anything the changelog that seem obviously related to this, but I can update it anyway. But I'd really like to find a method of reproducing the problem quickly, first, so I can tell whether it goes away just from doing that. |
I have the XinputTest program from x360ce, so I can try opening and closing that 30 times under various conditions. I did mange to trigger it now but not on a second attempt. Maybe I have to have Steam open. Maybe I have to swap to bluetooth once first. I have to wait until after my pirate anime stream with friends before I can continue testing, but I'll see if I can get this thing to trigger manually afterward. |
Things that don't trigger it: There really seems to be a time component to this, somehow. It just won't do it for me on demand. |
I gave in and enabled kernel debugging. Surprisingly, it seems to have no appreciable effect on performance, at least when the debugger isn't attached. Nice! My plan is to run livekd64.exe and run a full dump from kernel mode in kd (with /f), while the system's running, the next time it happens. That'll be 32 GB, since that's how much RAM I have, and apparently when you tell it you want a "full" dump, you mean full. Would you like me to use any other options instead? Unfortunately, the documentation says you specifically can't make a "kernel memory dump" from a debugger in kernel mode; it has to be a full dump or a small one, which would have precious little information in it. edit: Of course, it hasn't happened again, yet. It has to draw this out as long as possible. :) I'm using the game in DX12 mode now, but that should have no effect on this part. |
Starting to think that the game running in DX12 mode just doesn't trigger it, so I'm going to switch back to DX11 mode. Shrug emoji. |
A combination that tends to have this issue a lot for me is uplay + Rainbow Six: Siege, if you've got that handy. |
@michael-fadely I don't, unfortunately. If you can reproduce it as well, then you could submit a memory dump. I'm still waiting for it to happen, and I fear it won't with DX12 mode, but for unrelated reasons, I can't play in DX11 mode right now. There are 2 ways:
References for method number 2: |
Well, after several weeks of thinking I found a way around it, the deadlock started happening again. And this is the fastest record it's had, less than 1 day after the last reboot and it happens after a few hours in Dolphin. I do have a memory dump after waiting for this to happen again, so if it helps, I can send it. |
Please do send it to nefarius. I assume the email address in their profile is accurate. @nefarius edit: Took long enough to upload, but it's finally done and a link sent. |
|
Hi, My pc is also getting stuck on reboot. Running driver version 1.17.333. |
Send me your PC, I wanna finally find out what's wrong here 😅 |
After a couple of days with the 2009 driver installed I can confirm that the deadlock issue is gone. Everything is working perfectly fine now. |
Any specific version of the driver?
Haha. Sorry, please let me know of any info/logs i can send as evidence. |
So far, my PC hasn't misbehaved, with the default Win 10 driver for xbox gamepads, version 10.0.19041.1 from 2019-12-06. But that build date is barely before I reported the problem myself, so I may have had an older version at the time. Hmm! And I haven't been using the gamepad, and I'm not sure whether that makes a difference. I also believe I upgraded to Win 10 version 20H2 between then (version 1908, if I'm right) and now. I did share a couple of memory dumps with Nefarius and Mega back then, but as I understand it, they didn't find anything illuminating. A couple of days may not be enough; I've had it work for a week before failing, in the past. That said, I remember people saying back then that using the older xbox driver helped then, too. My old PC that I haven't used in a year still has Windows 7 and has some kind of fan problem causing vibration. I could try to fix it up and update the OS, then see if it experiences the issue and ship it if so. 😆 |
That's not conflicting, that means the device is in error state, double-click to see the error message and code it reports. |
No more deadlocks for me since I installed the 2009 driver, I'm just saying... I've been using my controller often these days. |
I think i've identified a pattern on the issue for me. If I play using 1 controller only, no issues. But If i play a co-op game using 2 controllers (Streets of rafe 4, tetris), then i get the issue when shutting down or rebooting. |
I played Horizon Zero Dawn on and off this week without issue. Finally rebooted today for updates, which went fine. For those of you still experiencing the problem, what driver version for the Xbox 360 Controller do you have? Looking at that properties dialog, the date and version number are the useful information. I already said what mine is, and I don't seem to be experiencing the issue any more. |
Finally experienced the deadlock again, so this combination with the newest 360 driver is unfortunately still a problem. |
I have installed the new version since December, and it only happened to me 2 times the first days. During January and February I used it a lot, and I didn't have any deadlocks. |
Even once is too much though, thanks for the feedback nonetheless! |
Pity, I left it running overnight ONE DAY and it happened again. 😆 Is there any thing further I can do to help you diagnose this, other than shipping you my PC? I provided some (unfortunately massive) memory dumps, but evidently those weren't enough on their own. |
I'll just scratch everything and start anew 👻 |
I am STILL getting a driver deadlock issue with the 2021 Xbox 360 controller driver. Not an issue with the 2009 driver. This is a problem though because the 2009 driver prevents me from activating Core Isolation in the Device Security settings. Tested this on both Windows 10 and 11 leaked build. |
I've pretty much given up on this to be honest. There's simply no resources I or any potential contributor could come up with to tackle this mystery and I'm tired of it and will move on. Sorry. |
Hi, I'm facing a 100% reproducible issue which might be relevant? The issue is that when I start to use my Xbox 360 controller over Parsec, the host system hangs and must be forced shut down. Steps:
It kind of seems like a deadlock and I came across this thread and noticed you were stuck, maybe same root cause? |
I tried the 2009 driver and my pc still freezes when I use my controller. Do you guys have any suggestions? |
Found this topic by accident, realized it was the same issue I had with (as I thought) DS4Windows forever ago, ended up giving up on it and just setting a hotkey to disable the whole thing when not needed. |
It will be solved by the rewrite I am working on in the dev dungeon ⚒️ |
Time to close this. Can't fix something I can not replicate. Sorry. |
I have the driver installed again in windows 11, in PC and laptop, and never again get deadlock. |
This issue isn't about a bluescreen. |
Sorry, deadlock
|
I know this repo is no longer being updated in favour of whatever new one nefarius is working on, but I still want to comment on this Anyway, two things:
This suggests that the problem could be tied to the basic Xbox 360 controller driver itself, and not something that originates in Vigembus (Though Vigembus somehow likely exacerbates the problem, leading to the driver being stuck even after you pull out the controller) I will be following the recommendation to downgrade to the 2009 Xbox 360 controller driver. Will report back if I face this problem again. Though it's going to be hard to tell if it's fixed per se, as this problem only pops up very randomly (Sometimes it may happen twice in a week, but sometimes it may not happen for three to four months at a stretch) |
Describe the bug
With a virtual Xbox 360 controller enabled, programs that poll controller input will be unable to launch. They deadlock attempting to open a handle to the device. This happens with feeder applications as well.
It also prevents any real devices from connecting to or disconnecting from my system.
To Reproduce
I've been unable to consistently reproduce it. It happens fairly frequently, but with no specific steps that I could identify. If applications begin failing to launch with a feeder and Xbox 360 endpoint, however:
Expected behavior
Some kind of error handling or error logging. ViGEmClient has error logging, but it doesn't appear to encounter any errors when this deadlock occurs.
Screenshots
I attempted to disable the device, Device Manager stalled, and both the Game Controllers dialog and Battle.net immediately launched. Opening another instance of Device Manager reveals that the device is still enabled:
System details (please complete the following information):
Additional context
It very well could be something I'm doing with my feeder, but I've been unable to figure it out.
The text was updated successfully, but these errors were encountered: