Opened 5 years ago

Last modified 2 months 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:
Has a Patch: no 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 5 years ago.

Change History (6)

Changed 5 years ago by diver

Attachment: Descent.zip added

comment:1 Changed 23 months ago by axeld

Owner: changed from axeld to nobody
Status: newassigned

comment:2 Changed 2 months ago by waddlesplash

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 Changed 2 months ago by waddlesplash

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 Changed 2 months ago by pulkomandy

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 Changed 2 months ago by jackburton

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.