Ticket #404 (closed defect: fixed)
CPU resource stays requested in some situations
| Reported by: | ainulindale | Owned by: | mickey |
|---|---|---|---|
| Priority: | blocker | Milestone: | milestone5.5 |
| Component: | framework/oeventsd | Version: | |
| Keywords: | Cc: | seba.dos1@…, tommy.b@… |
Description
Use case :
Make a call with no carrier Call is outgoing and immediately released Meanwhile oeventsd picks up the outgoing signal, and requests the CPU resource. This resource will stay requested as long as it won't be explicitely not requested.
Logs follow. Please check line 420. ophonekitd.log is given as a proof that it won't receive idle status suspend.
Attachments
Change History
Changed 4 years ago by ainulindale
- Attachment frameworkd.log added
comment:1 Changed 4 years ago by jluebbe
Could you post your rules.yaml? If it is the same as the default, it think it is a problem in oeventsd, there are race conditions in the CallStatus? handling. The problems with it's design are really showing up now... :/
comment:2 Changed 4 years ago by ainulindale
It's the same as default, and the log shows clearly there is a race (line 420)
comment:3 Changed 4 years ago by mickey
- Status changed from new to assigned
- Owner changed from jluebbe to mickey
comment:4 Changed 4 years ago by mickey
- Status changed from assigned to in_testing
The new queued resource handling should have fixed this bug. => testing.
comment:6 Changed 4 years ago by tommyb
- Cc tommy.b@… added
I'm still seeing problems like this with SHR-unstable 20090703 with current frameworkd and fsousaged. I can reliably reproduce it by letting my Freerunner suspend, calling it from my landline and immediately hanging up when the Freerunner has woken up and the call is displayed. After that, the Display resource doesn't get released (see the attached part of frameworkd.log), the display stays on and auto-suspend doesn't work anymore.
After some investigation, I think I've found a bug in oeventsd's fso_actions.py: If OccupyResource? is untriggered before the trigger has been completed (i.e. before onResourceRequestReply has been executed), then ReleaseResource? doesn't get called. The attached patch seems to fix this.
Changed 4 years ago by tommyb
- Attachment display-resource-never-released.log added
Part of frameworkd.log where Display resource doesn't get released after missed call
Changed 4 years ago by tommyb
- Attachment call_updatepending_when_untriggering_occupyresource.patch added
Patch that tries to make sure that ReleaseResource? is correctly called

Frameworkd log