Looks good to me. I also noticed the hang and tried to debug it a
little, but I gave up after a while cause it looked to me that it is
something yum-internal. I did some "time profiling" to find out which
place is waiting for something, but there was no result of it. The only
thing I found out was that the hang ends with some info about ignored
exception in yum printed to tty1. Maybe that's where the problem lies.
In making this patch yesterday, I went a little farther so I do actually
know where the problems lie. I just worded the commit message like I
didn't. There's two things going on:
(1) _first_refresh in spokes/software.py is marked as @gtk_thread_wait,
which means all that metadata downloading can happen in the main thread.
I've untangled that a bit to where it should happen in the other thread
instead.
(2) baseRepo is where the locking problem is, most likely updating a
spoke's status. Fixing that is today's first task.
- Chris