The problem we have is that sometimes, probably when an executor is unexpectedly interrupted, the shared lock is not released at the end of execution. That results in a lock without owner, so the lock must be manually unlocked if we want to update the content of the database. I want to know why that happens. Is it a documented bug? Can we reproduce it? Is there a known fix/workaround?
If we disable the concurrency we
would get a situation where every query on a database claims an exclusive lock
(which means only one query can be running on the database at once). That is
not the wanted behavior.