dbootstrap freezes the screen
Hello,
after I made some changes in busybox init to use the real console backend
(/dev/tty1 instead of /dev/console for VT), I now experience a big problem with
dbootstrap: screen is totally frozen when the welbome box is displayed :(
I finally pointed out the problem:
- using strace, I get infinite loop on select(5, [0 4], [], NULL, NULL).
return code is -1 EBADF (Bad file descriptor)
- this problem is not caused by dbootstrap itself because I also experience it
with a demo program from the newt distro
- when I run dbootstrap (or the newt demo) in a xterm, it runs quite well.
Under strace the select call is now: select(4, [3], NULL, NULL, {0, 0})
- I then unpacked newt sources to figure out what happens around the select
call and discovered some code to handle the mouse with GPM.
So I installed gpm and now dbootstrap don't freeze !
Setting TERM=xterm is also a workaround because newt don't use gpm then.
It's too late for me to fix the problem tonight. I will continue tomorrow...
Regards.
PS: the problem seems to be in form.c, line 914:
i = select(max + 1, &readSet, &writeSet, NULL, NULL);
if (i < 0) continue; /* ?? What should we do here? */
when select is reading from an invalid fd, it returns immediately with
i=-1. The continue statement tells the program to retry select, entering
in an infinite loop :(
--
Eric Delaunay | "La guerre justifie l'existence des militaires.
delaunay@lix.polytechnique.fr | En les supprimant." Henri Jeanson (1900-1970)
Reply to: