When a transaction is committed, C Xenstored will first check
the quota is correct before attempting to commit any nodes. It would
be possible that accounting is temporarily negative if a node has
been removed outside of the transaction.
Unfortunately, some versions of C Xenstored are assuming that the
quota cannot be negative and are using assert() to confirm it. This
will lead to C Xenstored crash when tools are built without -DNDEBUG
(this is the default).
Cuando se confirma una transacción, C Xenstored primero verificará que la cuota sea correcta antes de intentar confirmar cualquier nodo. Sería posible que la contabilidad fuera temporalmente negativa si se hubiera eliminado un nodo fuera de la transacción. Desafortunadamente, algunas versiones de C Xenstored asumen que la cuota no puede ser negativa y utilizan assert() para confirmarlo. Esto provocará un bloqueo de C Xenstored cuando las herramientas se creen sin -DNDEBUG (este es el valor predeterminado).