In builtins.py, cmd_log.run() calls b.lock_read() which conflicts with
the call to _get_revision_range() which calls branch.fetch() which
needs a write lock.
Solution #1?
===========
Move the call to _get_revision_range() out of the read lock. If
revisions are immutable, it shouldn't matter, but I don't know if they
are or not; however, something similar is done cmd_missing.run() where
_get_revision_range() is called before acquiring a read lock.
Problem?
=======
In builtins.py, cmd_log.run() calls b.lock_read() which conflicts with range() which calls branch.fetch() which
the call to _get_revision_
needs a write lock.
Solution #1?
===========
Move the call to _get_revision_ range() out of the read lock. If range() is called before acquiring a read lock.
revisions are immutable, it shouldn't matter, but I don't know if they
are or not; however, something similar is done cmd_missing.run() where
_get_revision_
Solution #2?
===========
Just change b.lock_read() to b.lock_write().