To replicate the problem have two different servers with their own IP addresses. Now start pinging one of them from the second one, and while still pinging block the first server's IP on the second one with one of two commands:
firewall-cmd -q --permanent --add-rich-rule="rule family='ipv4' source address=IP-ADDRESS-HERE reject"
or
firewall-cmd --permanent --zone=drop --add-source=IP-ADDRESS-HERE
and then whichever of the following command you run:
firewall-cmd --reload
firewall-cmd --complete-reload
systemctl restart firewalld
the pinging never stops. Only if you interrupt the pinging process on the first server and try again, then it fails.
I probably am hitting the same issue discussed on Why firewalld doesn't apply my drop rule?, but unfortunately that one didn't have any good answer.
I tried lot's of different things, but can't get the originating pinging source to be dropped immediately. In other words, if someone is spotted attacking your server and you would immediately block their IP, your firewalld can not do it at the spot and that worries me.
How to get firewalld to block an IP address immediately at the spot?