2012-01-10 13:59:14 |
Jeff Johnson |
description |
tracker - users/developers have expectations that are not implemented
in urpmi correctly
the running application is irpmi.
urpmi is calling through perl bindings to rpm lib and Berkeley DB and
is deadlocking between multiple erasures traversing critical regions.
All that rpm lib and Berkeley DB can do is detect the improper usage,
warn and deadlock.
That is the purpose of locks on critical regions in spite of
I want a pony!
expectations. |
tracker - users/developers have expectations that are not implemented
in urpmi correctly (to meet expectations).
the running application is urpmi.
urpmi is calling through perl bindings to rpm lib and Berkeley DB and
is deadlocking between multiple package erasures traversing critical
regions of data in use by other processes, which also are using database resources.
Berkeley DB is already providing full isolation
(the I in ACID) transactional support.
rpmlib has additional fcntl locking that can be used to
serialize requested operations (in this case competing erasures).
All that rpmlib and Berkeley DB can do is detect the improper usage,
warn and deadlock when multiple instances of urpmi are run concurrently. |
|