I have two processes updating a property group simultaneously, or attempting to at least. Both transactions are started successfully. I assume there are no restrictions in having two transactions started against the same property group. The problem I have is that after one process successfully commits, when the second process executes the commit, the call to scf_transaction_commit appears to succeed but of course there was no write to the database. I'm trying to understand why an error is not set for the second commit.
According to the manpage, it appears that there is no error for this scenario. The closest I could find would be SCF_ERROR_INVALID_ARGUMENT related to an invalid transaction state. And it doesn't appear to be a bug based on the code in lowlevel.c assuming that this scenario returns REP_PROTOCOL_FAIL_NOT_LATEST since that error is explicitly accepted as successful. That seems to be the only error returned on the door server response that is checked. The rest appear to be considered errors for the caller. The only other possibility I could see would be that this scenario is returning REP_PROTOCOL_SUCCESS from the server, which doesn't seem likely. Perhaps I'm missing something more obvious in why this call succeeds. This message posted from opensolaris.org