Archie, > > My application is failing because of a NullPointerException, and a little > debugging show that getLock() is returning NULL in the function waitCond() > in "kaffe/kaffevm/locks.c": > This is apparently so because a mutex was already freed before you try to wait on it. Try -vmdebug VMLOCKS, and see what that says. > > This happens completely deterministically, as far as I can tell. > This is kaffe vintage july 29 snapshot (yesterday). > How can I help debug this problem? > Do you have a short reproducible test case that you could send me? > On another note, sometimes Kaffe will not respond to Control-C (SIGINT). > In fact, it often only stops with kill -9 when running a certain application. > What's the theory on how SIGINT is handled? > The theory is that in jthreads.c, catchSignal(SIGINT, restore_fds_and_exit); should cause a call to `restore_fds_and_exit', which restores the fds and exits. The reality is that I've been seeing the behavior you describe too. When I have time, I'll track it down. On FreeBSD or Linux, the catchSignal is not really necessary, so you could take it out. - Godmar