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

Reply via email to