Opened 9 years ago

Closed 9 years ago

Last modified 21 months ago

#5400 closed defect (fixed)

OHM crashes when X does.

Reported by: cjb Owned by: cjb
Priority: blocker Milestone:
Component: power manager (OHM) Version:
Keywords: Cc:
Blocked By: Blocking:
Deployments affected: Action Needed:
Verified: no


As noticed by jg; after ctrl+alt+delete, X returns but ohm doesn't.

OHM appears to notice that the dpy has gone away and frees it, but then attempts to reuse it later.

Change History (5)

comment:1 Changed 9 years ago by cjb

OHM crashes when X does because X forces all of its clients to exit when it crashes. Adding an XSetIOErrorHandler() callback doesn't help.

There is no workaround short of longjmp()ing to ensure the handler method never actually returns to Xlib (or moving the X client into a separate process from the rest of OHM). How ridiculous.

The shortest workaround is going to be to have OHM respawn via inittab in the same way that X does. I don't know how well that will work yet, though.

comment:2 Changed 9 years ago by bernie

I think libxcb would be an elegant solution to this problem. The library itself is just 100KB, plus a bunch of ancilliary libraries of a few KBs each, one per extension.

We can conveniently install the Fedora 8 libxcb package on our F7+ system.

comment:3 Changed 9 years ago by cjb

Temporary workaround (Bernie's idea) is to exec() /usr/sbin/ohmd in the X handler. Long-time fix is to move to Xcb sometime after Update.1.

Tested and pushed to Joyride.

comment:4 Changed 9 years ago by cjb

  • Resolution set to fixed
  • Status changed from new to closed

Tested working in Joyride; closing (without the verified tag).

comment:5 Changed 21 months ago by Quozl

  • Milestone Update.1 deleted

Milestone Update.1 deleted

Note: See TracTickets for help on using tickets.