Activity log for bug #1506071

Date Who What changed Old value New value Message
2015-10-14 13:54:12 Alexander Gordeev bug added bug
2015-10-14 14:43:47 Alexander Kislitsky fuel: status New Triaged
2015-10-20 13:11:13 Andrey Tykhonov fuel: assignee Fuel Python Team (fuel-python) Andrey Tykhonov (atykhonov)
2015-10-20 13:26:20 Alexander Gordeev description if one starts 2 or more instances of fuel-agent simultaneously, then fuel-agent could fail on loop device allocation. failure scenario is pretty simple. 1) fuel-agent finds first free loop device. For the case of multiple instances, some of instances could find the same loop device as free. 2) fuel-agent allocates it. Once it's being allocated, it becomes to be busy and not free. Other instances which previously found the same loop device as free will throw an exception, just because one of fuel-agent instances already occupied that loop device. To fix that, retry should be added to this piece of code: https://github.com/stackforge/fuel-agent/blob/master/fuel_agent/manager.py#L608-L615 the fix is simple: 1) find free loop device 2) allocate it. If you can't allocate it and got ProcessExecutionError, then go to 1) until max retry count is not met. max retry count should be available as a config parameter. if one starts 2 or more instances of fuel-agent simultaneously, then fuel-agent could fail on loop device allocation. failure scenario is pretty simple. 1) fuel-agent finds first free loop device. For the case of multiple instances, some of instances could find the same loop device as free. 2) fuel-agent allocates it. Once it's being allocated, it becomes to be busy and not free. Other instances which previously found the same loop device as free will throw an exception, just because one of fuel-agent instances already occupied that loop device. To fix that, retry should be added to this piece of code: https://github.com/openstack/fuel-agent/blob/f78e4eba30254d6e7307d6cd6a4fbacccb1670c3/fuel_agent/manager.py#L611-L617 the fix is simple: 1) find free loop device 2) allocate it. If you can't allocate it and got ProcessExecutionError, then go to 1) until max retry count is not met. max retry count should be available as a config parameter.
2015-10-20 15:07:49 OpenStack Infra fuel: status Triaged In Progress
2015-10-22 03:11:45 Dmitry Pyzhov tags ibp low-hanging-fruit area-python ibp low-hanging-fruit
2015-10-30 12:50:20 OpenStack Infra fuel: status In Progress Fix Committed
2016-02-25 06:10:49 Vladimir fuel: status Fix Committed Fix Released