The cause of this is ROX-Filer failing to start. ROX-Filer is not just a file manager, it also handles the desktop icons, including the drive icons, and the background wallpaper. So, ROX is almost a complete desktop environment on it's own, but we use JWM window manager to handle the tray-bar.
I have many times tried to understand why ROX fails to startup, and have implemented various attempts to fix it.
This morning I was getting some PCs out of the garage and setting them up. One of them gave this "partial black screen" problem, booting Precise 5.6.
So, this was an opportunity to rethink the problem.
I think that the cause of the crash is /sbin/pup_event_frontend_d attempting to "talk" to ROX before it is fully running. I have reasoned about this before, and put in a delay before pup_event_frontend_d "talks" to ROX -- which did work with some PCs.
Still, however, the problem sometimes does occur, as in my case today.
I have experimented with another fix, launching pup_event_frontend_d later from the /root/.xinitrd script.
I built a CD, booted up the PC that had exhibited the problem, got a normal desktop. Booted four more times (twice a warm reboot, twice a cold start), all pristine first-boots, consistently got the full desktop.
I am not saying that this is finally, definitely, fixed, but it is looking good.
Comments:Posted on 25 May 2013, 17:51 by Iguleder
Get Rid of It
Barry, why don't we just get rid of this ugly thing? It could be easily replaced with a lightweight daemon which reads events from libudev.
Posted on 25 May 2013, 17:53 by L 18 L
Posted on 25 May 2013, 18:14 by BarryK
Re get rid of it
Yeah, I know it needs to be rewritten, in C or BaCon (or other compiled language) and have various improvements, including work nicely with kmod and also the new libudev2 in systemd (extracting only the udev components).
It is on my to-do list.
Posted on 25 May 2013, 21:05 by Iguleder
Barry: here. Wrote this now :)