2015-02-25 16:24:33 |
Bogdan Dobrelya |
bug |
|
|
added bug |
2015-02-25 16:24:41 |
Bogdan Dobrelya |
fuel: assignee |
|
Bogdan Dobrelya (bogdando) |
|
2015-02-25 16:24:47 |
Bogdan Dobrelya |
fuel: status |
New |
Triaged |
|
2015-02-25 16:24:50 |
Bogdan Dobrelya |
fuel: importance |
Undecided |
Medium |
|
2015-02-25 16:24:55 |
Bogdan Dobrelya |
fuel: milestone |
|
6.1 |
|
2015-02-25 16:27:14 |
Bogdan Dobrelya |
description |
The common case for action stop in OCF scripts for Pacemaker RA is:
1) check, by exit code, if kill (SIGTERM) succeeds
2) issue kill -9, if it wasn't.
But 'kill' always returns 0, if the given PID matched the running process and never checks the process actual state. This can be easily checked, for example:
p=`pidof cron`; sudo kill -STOP $p; sudo kill $p; echo $0; ls /proc/$p; ps -p $p
As a result, a cron will be kept running because it cannot process signals, but kill will report an exit code 0.
That is an issue as it drastically increases the number of undesired SIGKILL cases for stop actions and RA should instead tend to perform them gracefully, if possible. Besides that, for heavy loaded system, it is possible that some process cannot process SIGTERM an instant, ending up being shot in the head with SIGKILL.
The solution is to check the results of kill command against a proc fs instead of its exit code and introduce retries for kill as well. SIGKILL should be issued only in cases then there are no more retries left for graceful termination. |
The common case for action stop in OCF scripts for Pacemaker RA is:
1) check, by exit code, if kill (SIGTERM) succeeds
2) issue kill -9, if it wasn't.
But 'kill' always returns 0, if the given PID matched the running process and never checks the process actual state. This can be easily checked, for example:
p=`pidof cron`; sudo kill -STOP $p; sudo kill $p; echo $?; ls /proc/$p; ps -p $p
As a result, a cron will be kept running because it cannot process signals, but kill will report an exit code 0.
That is an issue as it drastically increases the number of undesired SIGKILL cases for stop actions and RA should instead tend to perform them gracefully, if possible. Besides that, for heavy loaded system, it is possible that some process cannot process SIGTERM an instant, ending up being shot in the head with SIGKILL.
The solution is to check the results of kill command against a proc fs instead of its exit code and introduce retries for kill as well. SIGKILL should be issued only in cases then there are no more retries left for graceful termination. |
|
2015-02-26 08:13:34 |
Bogdan Dobrelya |
fuel: status |
Triaged |
In Progress |
|
2015-03-09 09:28:39 |
Bogdan Dobrelya |
fuel: status |
In Progress |
Confirmed |
|
2015-03-09 09:28:49 |
Bogdan Dobrelya |
fuel: assignee |
Bogdan Dobrelya (bogdando) |
Fuel Library Team (fuel-library) |
|
2015-04-01 18:39:10 |
Dmitry Ilyin |
fuel: assignee |
Fuel Library Team (fuel-library) |
Dmitry Ilyin (idv1985) |
|
2015-04-07 15:17:30 |
Bogdan Dobrelya |
fuel: status |
Confirmed |
Won't Fix |
|
2015-04-07 15:17:38 |
Bogdan Dobrelya |
fuel: status |
Won't Fix |
Confirmed |
|
2015-04-07 15:31:58 |
Vladimir Kuklin |
nominated for series |
|
fuel/7.0.x |
|
2015-04-07 15:31:58 |
Vladimir Kuklin |
bug task added |
|
fuel/7.0.x |
|
2015-04-07 15:31:58 |
Vladimir Kuklin |
nominated for series |
|
fuel/6.1.x |
|
2015-04-07 15:31:58 |
Vladimir Kuklin |
bug task added |
|
fuel/6.1.x |
|
2015-04-07 15:32:05 |
Vladimir Kuklin |
fuel/7.0.x: status |
New |
Confirmed |
|
2015-04-07 15:32:10 |
Vladimir Kuklin |
fuel/7.0.x: assignee |
|
Fuel Library Team (fuel-library) |
|
2015-04-07 15:32:12 |
Vladimir Kuklin |
fuel/7.0.x: importance |
Undecided |
Medium |
|
2015-04-07 15:32:15 |
Vladimir Kuklin |
fuel/6.1.x: status |
Confirmed |
Won't Fix |
|
2015-04-07 15:32:19 |
Vladimir Kuklin |
fuel/7.0.x: milestone |
|
7.0 |
|
2015-04-19 18:08:48 |
Vladimir Kuklin |
fuel: status |
Confirmed |
Won't Fix |
|
2015-04-19 18:08:53 |
Vladimir Kuklin |
bug task deleted |
fuel/6.1.x |
|
|
2015-04-19 18:54:49 |
Nastya Urlapova |
tags |
|
qa-agree-7.0 |
|
2015-08-05 09:51:17 |
Aleksandr Didenko |
nominated for series |
|
fuel/8.0 |
|
2015-08-05 09:51:17 |
Aleksandr Didenko |
bug task added |
|
fuel/8.0 |
|
2015-08-05 09:51:26 |
Aleksandr Didenko |
fuel/8.0: milestone |
|
8.0 |
|
2015-08-05 09:51:35 |
Aleksandr Didenko |
fuel/8.0: assignee |
|
Fuel Library Team (fuel-library) |
|
2015-08-05 09:51:40 |
Aleksandr Didenko |
fuel/8.0: importance |
Undecided |
Medium |
|
2015-08-05 09:51:44 |
Aleksandr Didenko |
fuel/8.0: status |
New |
Confirmed |
|
2015-08-05 09:51:48 |
Aleksandr Didenko |
fuel/7.0.x: status |
Confirmed |
Won't Fix |
|
2015-08-23 19:19:27 |
Vladimir Kuklin |
tags |
qa-agree-7.0 |
feature qa-agree-7.0 |
|
2015-08-24 08:02:16 |
Bogdan Dobrelya |
fuel/8.0.x: importance |
Medium |
Wishlist |
|
2015-09-18 10:26:52 |
Alexey Shtokolov |
fuel/8.0.x: status |
Confirmed |
Triaged |
|
2015-09-18 10:26:55 |
Alexey Shtokolov |
fuel/8.0.x: importance |
Wishlist |
Medium |
|
2015-09-25 17:32:04 |
Alex Schultz |
fuel/8.0.x: assignee |
Fuel Library Team (fuel-library) |
Alex Schultz (alex-schultz) |
|
2015-09-25 19:33:26 |
OpenStack Infra |
fuel: status |
Triaged |
In Progress |
|
2015-10-09 16:36:15 |
Dmitry Pyzhov |
bug task deleted |
fuel/8.0.x |
|
|
2015-10-09 16:36:21 |
Dmitry Pyzhov |
fuel: milestone |
6.1 |
8.0 |
|
2015-10-10 11:21:41 |
OpenStack Infra |
fuel: assignee |
Alex Schultz (alex-schultz) |
Sergii Golovatiuk (sgolovatiuk) |
|
2015-10-12 17:35:41 |
OpenStack Infra |
fuel: assignee |
Sergii Golovatiuk (sgolovatiuk) |
Alex Schultz (alex-schultz) |
|
2015-10-16 20:06:12 |
OpenStack Infra |
fuel: assignee |
Alex Schultz (alex-schultz) |
Sergii Golovatiuk (sgolovatiuk) |
|
2015-10-22 03:14:23 |
Dmitry Pyzhov |
tags |
feature qa-agree-7.0 |
area-library feature qa-agree-7.0 |
|
2015-10-27 20:30:28 |
OpenStack Infra |
fuel: assignee |
Sergii Golovatiuk (sgolovatiuk) |
Alex Schultz (alex-schultz) |
|
2016-01-13 14:05:56 |
Matthew Mosesohn |
fuel: status |
In Progress |
Fix Committed |
|
2016-05-13 12:55:55 |
Bogdan Dobrelya |
fuel: importance |
Medium |
High |
|
2016-05-13 12:55:57 |
Bogdan Dobrelya |
fuel/7.0.x: importance |
Medium |
High |
|
2016-05-13 12:56:04 |
Bogdan Dobrelya |
nominated for series |
|
fuel/6.1.x |
|
2016-05-13 12:56:04 |
Bogdan Dobrelya |
bug task added |
|
fuel/6.1.x |
|
2016-05-13 12:56:14 |
Bogdan Dobrelya |
fuel/7.0.x: assignee |
Fuel Library (Deprecated) (fuel-library) |
Bogdan Dobrelya (bogdando) |
|
2016-05-13 12:56:18 |
Bogdan Dobrelya |
fuel/6.1.x: milestone |
|
6.1-updates |
|
2016-05-13 12:56:20 |
Bogdan Dobrelya |
fuel/6.1.x: assignee |
|
Bogdan Dobrelya (bogdando) |
|
2016-05-13 12:56:22 |
Bogdan Dobrelya |
fuel/6.1.x: importance |
Undecided |
High |
|
2016-05-13 12:56:25 |
Bogdan Dobrelya |
fuel/7.0.x: status |
Won't Fix |
Triaged |
|
2016-05-13 12:56:27 |
Bogdan Dobrelya |
fuel/6.1.x: status |
New |
Triaged |
|
2016-05-13 12:56:35 |
Bogdan Dobrelya |
fuel/7.0.x: milestone |
7.0 |
7.0-updates |
|
2016-05-13 13:00:46 |
Bogdan Dobrelya |
tags |
area-library feature qa-agree-7.0 |
area-library customer-found feature qa-agree-7.0 |
|
2016-06-20 09:32:41 |
Bogdan Dobrelya |
fuel/6.1.x: assignee |
Bogdan Dobrelya (bogdando) |
MOS Maintenance (mos-maintenance) |
|
2016-06-20 09:32:46 |
Bogdan Dobrelya |
fuel/7.0.x: assignee |
Bogdan Dobrelya (bogdando) |
MOS Maintenance (mos-maintenance) |
|
2016-06-29 10:37:12 |
Vitaly Sedelnik |
fuel/6.1.x: status |
Triaged |
Won't Fix |
|
2016-06-29 10:37:20 |
Vitaly Sedelnik |
fuel/7.0.x: status |
Triaged |
Won't Fix |
|