[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

dbootstrap freezes the screen


  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...


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: