Re: [SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha6-90-g3942e53

2009-01-23 Thread Stefan (metze) Metzmacher
Hi Simo,

 Do not start a transaction this way.
 Because we still want to commit any changes that successfully apply we
 never want to do a global cancel, and because of how transaction nesting
 works that means we never cancel any transaction at the single modify
 operation level.

Who says that? I think it's quite useful to only apply all operations!
We should at least have a command line option to control this.
And also have all ldb tools in sync with this behavior.

Could you please revert that for now. Then we could readd this to all
tools with an option. Where I don't care what default behavior we choose.

metze

 Let each operation start its own transaction so that the transaction is
 properly canceled if any error is returned and half committed operations
 (though plugins failing) are properly reverted on a per operation basis.



signature.asc
Description: OpenPGP digital signature


Re: [SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha6-90-g3942e53

2009-01-23 Thread simo
On Fri, 2009-01-23 at 19:44 +0100, Stefan (metze) Metzmacher wrote:
 Hi Simo,
 
  Do not start a transaction this way.
  Because we still want to commit any changes that successfully apply we
  never want to do a global cancel, and because of how transaction nesting
  works that means we never cancel any transaction at the single modify
  operation level.
 
 Who says that? I think it's quite useful to only apply all operations!
 We should at least have a command line option to control this.
 And also have all ldb tools in sync with this behavior.
 
 Could you please revert that for now.

Nope, the previous behavior leaves the database in an inconsistent state
if an operation that should modify multiple entries based on a
triggering modify fails.
The reason is that if a module returns an error the transaction is not
canceled. (Tested with a module I am writing)

The intended behavior of ldbmodify was to apply all mods that could be
successfully applied, but it did not do that correctly.
My change fixes a real problem.

If you want to modify the intended behavior I am ok, but the code right
now works correctly. Reverting will make it wrong.

  Then we could readd this to all
 tools with an option. Where I don't care what default behavior we choose.

Unless my change is causing problems I think a revert would be worng,
you can still add an option to have a real global transaction without
any revert.

Simo.

-- 
Simo Sorce
Samba Team GPL Compliance Officer s...@samba.org
Principal Software Engineer at Red Hat, Inc. s...@redhat.com