[Samba] Dangling MS Access DB Lock Files *.ldb
Jeremy Allison
jra at samba.org
Mon Oct 10 16:32:51 GMT 2005
On Mon, Oct 10, 2005 at 04:21:15PM +0100, Dragan Krnic wrote:
> I have an intermittent problem with dangling MS Access DB lock files.
>
> In a productive environment with N batch queus (each on a separate
> Windows XP Professional) a scheduler PC dispatches the work load to
> a free queue by means of modifying a simple MS Access DB file
> called "PRIM.mdb", which resides on a Samba 3.0.20 share. Each free
> queue PC polls the same MS Access DB file every 60 seconds to see
> if there is a work packet to be executed by it. If there is a work
> package for it it modifies a state value of the respective work packet
> in this DB when it starts executing it as well as after the job has
> been done so that the scheduler knows what's going on.
There's a bug in 3.0.20 that might affect this (btw it's also in
3.0.20a). I know about it because it's my fault :-(.
Here's the patch for 3.0.20, and 3.0.20a.
Jeremy.
-------------- next part --------------
--- smbd/open.c 2005-07-28 06:19:42.000000000 -0700
+++ smbd/open.c.new 2005-10-10 09:32:25.000000000 -0700
@@ -1585,13 +1585,6 @@
fsp_open = open_file(fsp,conn,fname,psbuf,flags|flags2,unx_mode,access_mask);
- if (!fsp_open && (flags == O_RDWR) && (errno != ENOENT)) {
- if((fsp_open = open_file(fsp,conn,fname,psbuf,
- O_RDONLY,unx_mode,access_mask)) == True) {
- flags = O_RDONLY;
- }
- }
-
if (!fsp_open) {
if(file_existed) {
unlock_share_entry(conn, dev, inode);
-------------- next part --------------
--- smbd/open.c 2005-09-29 14:52:40.000000000 -0700
+++ smbd/open.c.new 2005-10-06 21:45:37.000000000 -0700
@@ -1585,22 +1585,6 @@
fsp_open = open_file(fsp,conn,fname,psbuf,flags|flags2,unx_mode,access_mask);
- if (!fsp_open && (flags2 & O_EXCL) && (errno == EEXIST)) {
- /*
- * Two smbd's tried to open exclusively, but only one of them
- * succeeded.
- */
- file_free(fsp);
- return NULL;
- }
-
- if (!fsp_open && (flags == O_RDWR) && (errno != ENOENT)) {
- if((fsp_open = open_file(fsp,conn,fname,psbuf,
- O_RDONLY,unx_mode,access_mask)) == True) {
- flags = O_RDONLY;
- }
- }
-
if (!fsp_open) {
if(file_existed) {
unlock_share_entry(conn, dev, inode);
More information about the samba
mailing list