I'm a member of the metacompilation research group at Stanford
(http://www.stanford.edu/~engler).  We have a suite of checkers that
find bugs at compile time, and we've had quite a bit of success checking
the Linux kernel code for errors.  Since our checkers can emit false
alarms, we filter the reports before we give them to the kernel
developers.  While some false alarms slip past us to the developers, our
limited knowledge of the kernel allows us to recognize most of them.

We're currently trying to find race conditions and deadlock (here's an
example report to the kernel mailing list:
http://www.ussg.iu.edu/hypermail/linux/kernel/0303.2/1733.html), but
these reports seem to require an intimate knowledge of the code to
verify-- knowledge that we don't have.  Since the kernel is so large, it
is difficult to find the various developers who know the code involving
the reports.  As a result, many of these bug reports go unconfirmed even
though we think they are valid bugs.

I'm hoping to find another project to supplement our race condition and
deadlock work on the Linux kernel, and I think that Apache might be such
a project.  So I have some questions for you all to determine if this is
a worthwhile venture:

Have race conditions and deadlock been a problem in the past?  How
likely is it that there are race condition and deadlock bugs hiding in
the current source?

Who are the developers who could answer my "is this a race condition"
questions?

Is there any documentation about locks in the server?  Where they are
used?  How they are used?  What do they protect?

What files should I be looking at?  Which use locks?  Which contain the
locking functions?

Are there any absolute rules about locks (i.e. all global variables must
be protected by locks, orderings of lock acquisition)?

Thanks for your time,
Ken Ashcraft
[EMAIL PROTECTED]

Reply via email to