Opened 10 years ago

Last modified 5 years ago

#10923 assigned bug

[kernel] Descent 1X freezes the OS

Reported by: diver Owned by: stippi
Priority: normal Milestone: R1
Component: Servers/app_server Version: R1/Development
Keywords: Cc:
Blocked By: Blocking:
Platform: All

Description

Descent 1X found at http://www.bebits.com/app/343 frrezes Haiku on launch

Attachments (1)

Descent.zip (2.5 MB ) - added by diver 10 years ago.

Change History (6)

by diver, 10 years ago

Attachment: Descent.zip added

comment:1 by axeld, 7 years ago

Owner: changed from axeld to nobody
Status: newassigned

comment:2 by waddlesplash, 5 years ago

Component: System/KernelServers/app_server
Owner: changed from nobody to stippi

So at least on VirtualBox, this is a "soft hang" and not a freeze; the mouse cursor continues to function and windows can be moved around, but none redraw. On VMware, this is a "hard hang", although the game's window redraws for a few seconds before everything freezes completely.

Probably a BDirectWindow/app_server communication bug, then. Reassigning to stippi, he said he'd try to get back into Haiku development over the holidays, and this seems like a good place to start? :)

comment:3 by waddlesplash, 5 years ago

Yeah, a slightly deeper investigation in KDL shows that Descent has somehow acquired the HWInterface lock and isn't letting it go, and so app_server is deadlocked trying to acquire it itself.

Probably app_server should be made robust against these kinds of problems; we can't expect applications to not misbehave here. But I'm not sure how to do that here, so this really is a problem for someone who understands how app_server fits together better.

comment:4 by pulkomandy, 5 years ago

Well, when an app uses BWindowScreen and keeps the accelerant all for itself, there isn't much we can do. It's possible the game attempts to run, but our accelerant don't implement most of the acceleration hooks so it doesn't manage to draw its things?

comment:5 by jackburton, 5 years ago

Does it use BdirectWindow or BWindowScreen? The former is working well and it's well tested, the latter has been tested on a limited range of applications.

Note: See TracTickets for help on using tickets.