Re: wine and 2.3.99-pre3 followup (reproduced)

From: Alexander Viro (viro@math.psu.edu)
Date: Sun Mar 26 2000 - 13:17:03 EST


On Sun, 26 Mar 2000, Lawrence Manning wrote:

> OK.. reproduce is easy: try to run wine with MS IE4. When it crashes,
> quit the debugger and try a ps aux. It should hang... When I ls in the
> /proc/PID dir it hangs. But if I strace the ls it runs through ok, which
> strikes me as very odd. Incidently, the hang occures if I try to cat any
> of the files in the wine PIDs dir.
>
> But I am out of my depth now.... I hope this info is of use to someone. I
> don't have a clue how to proceed.

Basically it means that process in question is stuck in the middle of
exit. And just a zombie wouldn't suffice - it needs to get stuck in
do_exit() somewhere between task_lock() and task_unlock(). Could you
do the following:
1) add int foo_flag=0; into the beginning of exit.c
2) add extern int foo_flag; EXPORT_SYMBOL(foo_flag); into ksyms.c
3) put the following into foo.c and build it as a module:
#include <linux/module.h>
init_module() {
        foo_flag ^= 1;
        return -1;
}
4) put into the interesting interval of do_exit()
        if (foo_flag)
                printk(KERN_DEBUG "...something...\n");
(interesting == between task_lock() and task_unlock()).

Now insmod foo.o will switch this debugging stuff on/off.
Turn it on (insmod foo.o), reproduce the hang and turn it off again (one
more insmod foo.o). And look at the logs. Reasonable things to print are
fields of tsk - you definitely want tsk->pid, for one. Oh, and place where
it hangs, indeed ;-)

I would do all this crap myself, but I don't have Wine or any Windows
software (or Windows itself, for that matter).

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Fri Mar 31 2000 - 21:00:17 EST