Understanding dependability problems in live update solutions

Student: Not assigned yet
Owner: Cristiano Giuffrida c.giuffrida@few.vu.nl
SVN branch name: N/A

Abstract

Many real-world software systems require continuous operation. In such high-availability environments, downtime is ill-affordable and scheduling maintenance for regular software updates is a tremendous challenge. Live update is a potential solution to this problem as it provides the ability to apply changes on-the-fly to a running system. As a result, important bug fixes, security patches, and other updates can be applied online with no service interruption and negligible overhead. Unfortunately, state-of-the-art live update solutions do not yet offer adequate support to achieve strong reliability guarantees, which are, in turn, critical for high-availability applications. Manual patch inspection is still largely required to ensure a reliable update process. Unfortunately, as the complexity of the updates grows, this analysis can quickly become very expensive or prohibitive. While many theoretical limitations have been studied for years now, very little is known about what extent they might turn up in practice, for real-life systems and updates. This project is to investigate practical limitations of state-of-the-art live update solutions for linux kernel patches. The linux kernel is a suitable playground for its inherent complexity, the availability of the source code and patches of different categories and sizes, and its very conservative reliability model. The analysis aims to empirically determine the scalability properties of existing live update approaches by investigating possible hidden reliability and security threats.