-
Notifications
You must be signed in to change notification settings - Fork 105
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Dirty shutdown #254
Comments
The kernel panic above, as well as the warnings about Slab cache still having objects is also described is #116. |
Probably there are also other issues on shutdown, so the issues should be verified again after closing #116. |
TODO from #228: Connection establishing is asynchronous and we should close half-open socket on Tempesta shutdown. The problem could be solved by two phase shutdown process:
As the consequence of 2-phase shutdown is that we should not synchronized sockets and skbs between softirqs and shutdown (process) contexts. This removes one case of concurrent skb usage in #173. UPD Actually we already have 2-phase shutdown: firstly we do |
…d in #254 instead of checking the socket state
When Tempesta stops on encountering an error in configuration file, there's this piece of code that it executes in list_for_each_entry(ls, &tfw_listen_socks, list) {
BUG_ON(!ls->sk);
ss_release(ls->sk);
ls->sk = NULL;
} It may easily happen that listening sockets had not been established. In that case this code leads to an unnecessary kernel panic. |
One more problem with shutdown is unloading with no connection to the backend. An attempt to fix the issue was made in #609 . |
Fixed in 2027734 |
Test case:
Tempesta doesn't clean data structures on shutdown, so following trace is produced and the system hangs:
The text was updated successfully, but these errors were encountered: