Hi, On Fri, Sep 25, 2009 at 08:07, janezkosmr <janezkosmr@xxxxxxxxx> wrote: > I encountered an interesting problem. We have a Java application on a samba > server. The folder is then shared to the clients via a samba share. So far > it works OK. Until now we had windows clients and everything worked OK. But > now we are trying to Linux clients and this is where the fun starts. When a > developer copies a new jar to the folder which is shared via samba. And if > this copying is done by scp strange things start happening. After a few > clicks the application stops working returning NoClassDeffFound, even if > the file is there and readable. After that it is not enough to just stop > the application, you have to unmount an then mount the share. I tried > turning off oplocks in the samba configuration as suggested in the samba > how-to, but it doesn't fix the problem. > Has anyone seen a similar error? I believe the problem is that you are rewriting the file on the server (with "scp") while it is open on the clients (using NFS? or mounted CIFS?). As the clients have the file open they will have parts of it cached, and those parts will be updated on the server but the cache will persist on the client for sometimes quite a long time, or until you unmount the network filesystem, which it seems is what you are currently doing to fix the issue. I would suggest that you change the procedure to update the .jar file. Instead of uploading the file with the same name, which will overwrite it, you should upload the file with a new temporary name and when the transfer is finished rename the file to its definitive name (which will effectively replace the old file which will then be deleted). That way the file has the same name but a new i-node (in effect it's a different file). Clients that had the old file open will still be using it until they're done with it. Clients that read the new file at that point will get the new i-node number and any cache they had for the old file will not be used as it's for a different i-node. I don't think you can upload files like this with scp, but I'm almost sure you can do it with "sftp" where you have a more complete command language including a "put" command that allows a different name at the remote side and a "rename" command to change the file name once the upload is finished. You can script the transfer with something like: sftp myserver.example.com <<! put $localfilename $remotetmpname rename $remotetmpname $remotefinalname ! HTH, Filipe _______________________________________________ CentOS mailing list CentOS@xxxxxxxxxx http://lists.centos.org/mailman/listinfo/centos