Corba refactoring
- Rebased work to #25790
- Originally I had no time to finished that and those race conditions were quite rare, but in #25790 they became very noisy.
- The main problem is very bad design of CORBA-ORB modules and the initialization of this feature. It is easy to get into a recursion of failures causing a StackOverflowl.
- Yet before an hour it was happening with glassfish-static, when it restarted, and old one did not manage to close listeners before the new one tried to enable them. Before this change it was more often a race condition causing an exception, but which did not end in never ending root.
- However now I cannot reproduce it any more, I guess CI has to try it too.
This is what I am running locally. The ejb_group_2 is another option.
./rm-generated.sh && mvn clean install -Pfastest -T4C && ./runtests.sh ejb_group_embedded
Depends On
- https://github.com/eclipse-ee4j/orb/pull/256
FIXME: In #25790 I have collided with incorrect CORBA lifecycle, which can leave "zombie ports" open after shutdown. I added just some fixme to the code, and three partial workarounds to avoid it. Part of the problem could be also tests which probably don't close sockets too. The server part should be addressed in this PR - as I already refactored it a lot, it should be easier to add those sockets to some list, so they could be safely closed regardless on which other threads are using them. Starts+stops+restarts are faster and faster, that makes the old tech debt crawling like a zombie. I added few bugs too.