loadkeys fails with the error message: $ loadkeys /usr/lib/kbd/keymaps/i386/qwerty/gr.kmap.gz Loading /usr/lib/kbd/keymaps/i386/qwerty/gr.kmap.gz findfile(): timeout waiting for undead child(ren) ? Note that it doesn't happen with the unzipped gr.kmap or with the other zipped kmaps. For example $ loadkeys /usr/lib/kbd/keymaps/i386/qwerty/gr-pc.kmap.gz Loading /usr/lib/kbd/keymaps/i386/qwerty/gr-pc.kmap.gz succeeds as well as $ loadkeys /tmp/gr.kmap Loading /tmp/gr.kmap
strace indicates that gunzip can't uncompress the file because of a broken pipe, looking into this
This is definitely odd... Can't be a gzip problem (gunzip uncompresses the file properly, and the problem still happens when the file is bzip2ed instead), and the file isn't handled differently from any other keymaps.
When debugging with strace -f, it seems to reap all of its children. I don't really know how strace interacts with the actual executable, but it (strace) seems to insert the necessary delays for the executable (loadkeys) to catch the undead children.
This has nothing to do with delays - adding tons of sleep()s doesn't fix the problem. It's something even weirder. If you get rid of the exit conditions, you can strace the pid of the hanging gzip process, and it hangs while writing the decompressed data to fd 1. ATM I'm suspecting this happens when the feeder dies before the decompressor is finished.
Can the gr.kmap keymap be shipped unzipped with the next stable version? It seems that the unzipped version of the file is ok with loadkeys. The gzipped one is unusable and leads to manual gunzip after frustration. I know that the correct fix is to fix the package, but since you are on a deadline to ship a new version and the maintainer of console-tools seems inactive, could at least this bandaid be applied?
Done in -34