In version 3.0 of OS, the database will end up in an inconsistent state if an exception is thrown in HibernateObserver.persistStatesWithSchema
throw exception in HibernateObserver.persistStatesWithSchema
check the database in Bank of Corda. There should be a transaction entry in the node_transactions and vault_states, but no entry in the Cash or Commercial Paper tables.
On master, same steps, and all tables will be empty ( so the transaction rolled back), which is the correct behaviour.
It is not clear what change actually fixed the issue.
According to this has been done (backported) already