ok, after tracing back and forth, I think ti's a plymouth bug after all.

The problem appears to be in ply_boot_client_process_incoming_replies - 
whenever it receives data from the server, it calls 
ply_list_get_first_node (client->requests_waiting_for_replies) and passes the 
returned data to this client requetor.  This means that if 
watch_for_keystroke() is called, and then another request is made that 
generates a reply, the keystroke handler gets the reply to the *next* request, 
discards it as "Received odd keys <foo>", and never gets the real keypress when 
it happens!

So I guess our requests_waiting_for_replies list needs to be tagged with
the type of reply each one is expecting; the responses will be FIFO
within each class, but may be out of order wrt responses of other types.

And the reason other keys aren't missed (for 'skip' or 'maintenance
shell') is that only during fsck do we send more messages to plymouth
after setting a key watch.

Scott, given this, I'm not sure why it *wasn't* reproducible for you...
am I overlooking something?

** Package changed: mountall (Ubuntu) => plymouth (Ubuntu)

-- 
[Lucid] fsck cannot be cancelled in Plymouth
https://bugs.launchpad.net/bugs/562811
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to