Jeremy Allison [Wed, 13 Aug 2008 23:45:34 +0000 (16:45 -0700)]
Fix for bug #5688 from SATOH Fumiyasu <fumiyas@osstech.co.jp>. LPQ process is orphaned if socket address parameter is invalid.
If the "socket address" parameter is a null string that is an invalid value for Samba 3.2 but valid for Samba 3.0.
Jeremy.
Jeremy Allison [Wed, 13 Aug 2008 22:46:35 +0000 (15:46 -0700)]
Fix for bug #5617, reported and patched by Bartosz Antosik antosik@gmail.com.
xp/2003 explorer freezes browsing shares on samba ipv6 hosts. Caused by missing
reply packet to SMB printclose packet.
Jeremy
Jim McDonough [Wed, 13 Aug 2008 22:03:51 +0000 (18:03 -0400)]
Prevent NT_STATUS 0xF1000000 errors from appearing when
dos errors are used and there is no error. It should
be mapped directly to NT_STATUS_OK. smbclient to older
servers didn't work.
Michael Adam [Tue, 12 Aug 2008 19:48:00 +0000 (21:48 +0200)]
packaging(RHEL-CTDB): install the right libraries for 3.3.0.
The library creation and installation has been fixed in that
now the libfoo.so.VERSION is created and libfoo.so is correclty
installed as a link.
Since we do not have a separation of lib dir and modules dir,
we do still install to /usr/lib/samba/, though. Therefore we
still need the workaround in the spec file to install the
libs to /usr/lib/ manually.
Andrew Tridgell [Thu, 7 Aug 2008 23:58:15 +0000 (09:58 +1000)]
handle two special cases
1) when all nodes write the same value to the record, or when writing
a value that is already there, we can skip the write and save
ourselves a network transactions
2) when all remote nodes fail an update, and we then fail a replay, we
don't need to trigger a recovery. This solves a corner case where
we could get into a recovery loop
Michael Adam [Wed, 6 Aug 2008 20:43:27 +0000 (22:43 +0200)]
idmap tdb2: fix broken logic in tdb2_delete_bystring().
1. use the return value that idmap_tdb2_open_perm_db() gives us
2. don't delete frep the local db if deleting from the perm db failed.
3. fix wrong interpretation of return value of the local delete
Michael Adam [Wed, 6 Aug 2008 20:33:58 +0000 (22:33 +0200)]
idmap tdb2: fix broken logic in tdb2_store_bystring().
1. use the return value that idmap_tdb2_open_perm_db() gives us
2. don't write to the local db if writing to the perm db failed.
3. fix wrong interpretation of return value of the local store
Michael Adam [Tue, 5 Aug 2008 09:32:20 +0000 (11:32 +0200)]
dbwrap ctdb: add a retry loop to the persistent store operation.
This is because ctdbd can fail in performing the persistent_store
due to race conditions, and this does not mean it can't succeed
the next time.
To not loop infinitely, this makes use of a new parametric option:
"dbwrap ctdb:max store retries" (integer) which defaults to 5
and sets the upper limit for the number or repeats of the
fetch/store cycle.
Michael Adam [Tue, 5 Aug 2008 16:42:07 +0000 (18:42 +0200)]
dbwrap ctdb: release the lock before calling ctdbd_persistent_store()
in the persistent db_ctdb_store operation.
This is to prevent deadlocks in db_ctdb_persistent_store().
There is a tradeoff: Usually, the record is still locked
after db->store operation. This lock is usually released
via the talloc destructor with the TALLOC_FREE to
the record. So we have two choices:
- Either re-lock the record after the call to persistent_store
or cancel_persistent update and this way not changing any
assumptions callers may have about the state, but possibly
introducing new race conditions.
- Or don't lock the record again but just remove the
talloc_destructor. This is less racy but assumes that
the lock is always released via TALLOC_FREE of the record.
I choose the first variant for now since it seems less racy.
We can't guarantee that we succeed in getting the lock
anyways. The only real danger here is that a caller
performs multiple store operations after a fetch_locked()
which is currently not the case.
This can not go upstream yet because it uses the non-GPL libgpfs. So it will
not be compiled by default and will not be included in the SOFS RPMs. But upon
Sven's request, we include it in the git tree and the source RPMs, so that it
can be built for in-house tests.
Michael Adam [Fri, 23 May 2008 13:12:01 +0000 (15:12 +0200)]
packaging(RHEL-CTDB): fix placement and link direction of new shared libs
libwbclient, libtalloc, libtdb, and libnetapi are now installed
into /usr/lib{,64} by their SONAME. The symlink is made from
the .so files to point to the SONAME files (e.g., libtdb.so.1).