[Samba-it] 3.0.4 - 3.0.14a

Simo Sorce simo.sorce at xsec.it
Tue Jun 14 14:43:01 MDT 2005


On Mon, 2005-06-13 at 18:24 +0200, Sevastian `seva` Foglia wrote:
> Ho un problema con la gestione di fcntl all'interno di un modulo vfs.
> Con Samba 3.0.4 tutto funziona correttamente.
> Con Samba 3.0.14a un'applicazione chiamata MS Word non né vuole sapere 
> di salvare e chiudere file che hanno nel path (subito dopo la share) 
> cartelle di un solo carattere.
> Esempio:
> path della share "/test"
> cartella al di sotto "a"
> nome del file "prova.doc"
> Il path relativo alla share sarebbe "a/prova.doc".
> 
> Il modulo vfs che ho scritto sarebbe un po' difficile da spiegare in due 
> righe, comunque sembra che il problema sorga quando Word (e solo Word, 
> non Excel o Powerpoint o OpenOffice.org) crea i suoi file ~WR000x.tmp e 
> poi cerca di rinominarli.
> Da notare che se, ad esempio, il path del file è "ciao/prova.doc" tutto
 
> funziona correttamente.
> Le chiamate a fcntl vengono fatte in fase di apertura di un file 
> esistente e in fase di chiusura dello stesso (acquisisco il lock in 
> apertura e lo rilascio in chiusura).

Alt! stop! Freeeenaaaa! :-)

Usare fcntl all'interno di un modulo VFS è _molto_ delicato.
Purtroppo le semantiche posix prevedono un comportamento bizzarro che in
samba trattiamo in maniera delicatissima.
Per dirla in breve se tu acquisisci un lock su un file all'interno di
una applicazione anche su diversi file descriptor, se ne chiudi anche
uno solo, TUTTI i lock su quel file su tutti i file descriptor verranno
rilasciati. Infatti se guardi bene in samba troverai che la gestione dei
locking è molto delicata.


> Non pretendo che qualcuno risolva il problema, ma mi basterebbe sapere i 
> cambiamenti che sono stati fatti dalla versione 3.0.4 alla 3.0.14 nella 
> gestione dei lock o dei moduli del vfs (ho già guardato nei changelog..
.).

Da quella versione Jeremy ha fatto numerosi modifiche e bugfix che non
ho seguito molto da vicino. In generale dovresti proprio evitare di
rendere le cose difficili a samba utilizzando locking "a sua insaputa".

E purtroppo non credo ci sia un modo di usare correttamente il locking
all'interno di un modulo VFS rendendo la cosa nota a samba. Se è una
cosa di cui non puoi fare a meno, credo che sarebbe necessario
presentare ai moduli VFS una interfaccia per far si che il modulo possa
parlare con il codice di locking di samba. Credo che Jeremy potrebbe
accettare di creare tali interfacce se la cosa fosse ben giustificata. 

Ti consiglierei di scrivere a samba.technical at samba.org per discuterne
un po' e capire qual'è il modo migliore di lavorare in questo senso.

Simo.


-- 
Simo Sorce - simo.sorce at xsec.it
Xsec s.r.l. - http://www.xsec.it
via Garofalo, 39 - 20133 - Milano
mobile: +39 329 328 7702
tel. +39 02 2953 4143 - fax: +39 02 700 442 399




More information about the samba-it mailing list