@conference {Sayagh2017255, title = {On cross-stack configuration errors}, booktitle = {Proceedings - 2017 IEEE/ACM 39th International Conference on Software Engineering, ICSE 2017}, year = {2017}, note = {cited By 0}, pages = {255-265}, abstract = {Today{\textquoteright}s web applications are deployed on powerful software stacks such as MEAN (JavaScript) or LAMP (PHP), which consist of multiple layers such as an operating system, web server, database, execution engine and application framework, each of which provide resources to the layer just above it. These powerful software stacks unfortunately are plagued by so-called cross-stack configuration errors (CsCEs), where a higher layer in the stack suddenly starts to behave incorrectly or even crash due to incorrect configuration choices in lower layers. Due to differences in programming languages and lack of explicit links between configuration options of different layers, sysadmins and developers have a hard time identifying the cause of a CsCE, which is why this paper (1) performs a qualitative analysis of 1,082 configuration errors to understand the impact, effort and complexity of dealing with CsCEs, then (2) proposes a modular approach that plugs existing source code analysis (slicing) techniques, in order to recommend the culprit configuration option. Empirical evaluation of this approach on 36 real CsCEs of the top 3 LAMP stack layers shows that our approach reports the misconfigured option with an average rank of 2.18 for 32 of the CsCEs, and takes only few minutes, making it practically useful. {\textcopyright} 2017 IEEE.}, doi = {10.1109/ICSE.2017.31}, url = {https://www.scopus.com/inward/record.uri?eid=2-s2.0-85027717403\&doi=10.1109\%2fICSE.2017.31\&partnerID=40\&md5=fa56524dafc8d93876ecd8c56f396da3}, author = {Sayagh, M. and Kerzazi, N. and Adams, B.} }