  Timeout bugs can cause serious availability and performance issues which are
often difficult to fix due to the lack of diagnostic information. Previous work
proposed solutions for fixing specific type of timeout-related performance
bugs. In this paper, we present TFix+, a self-configuring timeout bug fixing
framework for automatically correcting two major kinds of timeout bugs (i.e.,
misused timeout bugs and missing timeout bugs) with dynamic timeout value
predictions. TFix+ provides two new hybrid schemes for fixing misused and
missing timeout bugs, respectively. TFix+ further provides prediction-driven
timeout variable configuration based on runtime function tracing. We have
implemented a prototype of TFix+ and conducted experiments on 16 real world
timeout bugs. Our experimental results show that TFix+ can effectively fix 15
out of tested 16 timeout bugs.
