23 times: seq
1
of APP
1
and seq
2
of APP
2
. In order to
distinguish between different runs, we have run flow
rules with priority 40000 + i. If there are no races,
then as a result, we should get the empty flow table of
the rules of switch s
1
. However, according to the per-
formed experiments, after observing sequences seq
1
and seq
2
23 times, the rule with the priority 40022 is
still in the table after the script execution. The results
clearly show that in this case, the probability thresh-
old 0.99 is sufficient to observe the (?PF,!FD)-race.
6 CONCLUSIONS
In this paper, we considered concurrency issues in the
composition of EIOAs and reactive systems which
can be modeled by EIOAs. In particular, we in-
troduced the formal definitions of input/output, in-
put/input and output/output races that can occur in
the composition of EIOAs. We used a probabilistic
approach to establish the correlation between races in
the composition of EIOAs and their appearance in a
reactive system implementation. In order to check,
how practical is our approach, we performed an ex-
perimental evaluation with the SDN framework.
This paper opens a number of directions for future
work. Despite the fact that the proposed approach is
generic, experiments were only carried for the SDN
framework. The proposed approach relies on the LTL
based model checking solutions for describing and
detecting races in SDN; in the future, other formal
verification techniques and their applicability to the
problem of interest can be investigated.
REFERENCES
Baier, C. and Katoen, J.-P. (2008). Principles of Model
Checking. The MIT Press.
Barrett, G. and Lafortune, S. (1998). Bisimulation, the su-
pervisory control problem and strong model matching
for finite state machines. Discrete Event Dynamic Sys-
tems: Theory & Applications, 8:377–429.
Behrmann, G., David, A., and Larsen, K. G. (2004). A
tutorial on uppaal. In International School on Formal
Methods for the Design of Computer, Communication,
and Software Systems, Bertinora, Italy, September 13-
18, 2004, pages 200–236.
Berde, P., Gerola, M., Hart, J., Higuchi, Y., Kobayashi, M.,
Koide, T., Lantz, B., O’Connor, B., Radoslavov, P.,
Snow, W., et al. (2014). Onos: towards an open, dis-
tributed sdn os. In Proceedings of the third workshop
on Hot topics in software defined networking, pages
1–6.
de Oliveira, R. L. S., Schweitzer, C. M., Shinoda, A. A.,
and Prete, L. R. (2014). Using mininet for emulation
and prototyping software-defined networks. In 2014
IEEE Colombian Conference on Communications and
Computing (COLCOM), pages 1–6.
Holzmann, G. (2003). The Spin model checker: primer and
reference manual. Addison-Wesley Professional.
Koshibe, A., O’Connor, B., Milkey, R., Vachuska, T.,
Hall, J., Gebert, S., Higuchi, Y., Li, J., Hart, J.,
Lantz, B., and Koti, S. P. (2014). ONOS - Appendix
B: REST API. https://wiki.onosproject.org/display/
ONOS/Appendix+B%3A+REST+API.
Li, A., Padhye, R., and Sekar, V. (2022). Spider: A prac-
tical fuzzing framework to uncover stateful perfor-
mance issues in sdn controllers. https://doi.org/10.
48550/arXiv.2209.04026.
Li, J., Zhang, Y., Lu, S., Gunawi, H. S., Gu, X., Huang, F.,
and Li, D. (2023). Performance bug analysis and de-
tection for distributed storage and computing systems.
ACM Trans. Storage, 19:1–33.
Liu, H., Li, G., Lukman, J. F., Li, J., Lu, S., Gunawi, H. S.,
and Tian, C. (2017). Dcatch: Automatically detecting
distributed concurrency bugs in cloud systems. In Pro-
ceedings of the Twenty-Second International Confer-
ence on Architectural Support for Programming Lan-
guages and Operating Systems, pages 677–691.
McKeown, N., Anderson, T., Balakrishnan, H., Parulkar,
G., Peterson, L., Rexford, J., Shenker, S., and Turner,
J. (2008). Openflow: enabling innovation in campus
networks. ACM SIGCOMM Computer Communica-
tion Review, 38:69–74.
Silva, R., Santos, D., Meneses, F., Corujo, D., and Aguiar,
R. L. (2021). A hybrid sdn solution for mobile net-
works. Computer Networks, 190:107958.
Sukhov, A. M., Astrakhantseva, M. A., Pervitsky, A. K.,
Boldyrev, S. S., and Bukatov, A. A. (2016). Generat-
ing a function for network delay. J. High Speed Net-
works, 22:321–333.
Veeraraghavan, K., Chen, P. M., Flinn, J., and
Narayanasamy, S. (2011). Detecting and surviving
data races using complementary schedules. In Pro-
ceedings of the 23rd ACM Symposium on Operating
Systems Principles 2011, pages 369–384.
Vinarskii, E. (2024). https://github.com/vinevg1996/races-
in-eioa-and-reactive-systems. https://github.com/
vinevg1996/Races-in-EIOA-and-reactive-systems.
Vinarskii, E. M., Kushik, N., Yevtushenko, N., L
´
opez, J.,
and Zeghlache, D. (2023). Timed transition tour for
race detection in distributed systems. In Proceedings
of the 18th International Conference on Evaluation of
Novel Approaches to Software Engineering, ENASE
2023, pages 613–620.
Vinarskii, E. M., L
´
opez, J., Kushik, N., Yevtushenko, N.,
and Zeghlache, D. (2019). A model checking based
approach for detecting SDN races. In Testing Soft-
ware and Systems - 31st IFIP WG 6.1 International
Conference, pages 194–211.
ENASE 2024 - 19th International Conference on Evaluation of Novel Approaches to Software Engineering
734