Re: [vhffs] Petit patch pour VhffsFSSYNC (1631)

[ Thread Index | Date Index | More vhffs.org/vhffs Archives ]


Yop,


On Mon, Oct 25, 2010 at 10:08:59AM +0200, Laurent Ducassou wrote:
> Bonjour,
> 
> En testant VhffsFSSYNC, j'ai rencontré un comportement très bizarre...
> (les affirmations ci-dessous sont confirmés par le mode Debug)
> 
> Si je monitor le dossier /data/web (la racine), alors :
> - Tous les fichier, dossier et sous dossier, créer avant le démarrage du
> daemon master sont propagé au slave (uniquement) au démarrage de celui-ci.

Oui, via le mécanisme de "fullview" en unicast, qui permet au slave de 
récupérer les morceaux qu'il aurait zappé.


> - Tous fichier (ou dossier et sous dossier) crées à la racine PENDANT
> l'exécution du daemon master sont copiés sur le slave.

Ainsi que le reste, si tout va bien :-)


> - Aucun fichier (ou dossier et sous dossier) crées dans un sous
> répertoire de la racine PENDANT l'exécution du daemon ET qui existé au
> moment du démarrage du daemon master n'est propagé au slave.

Le master n'écoute pas tant qu'il n'a pas parcouru l'arbre. Quand le 
slave se connecte/reconnecte il demande une fullview et reçoit dès à 
présent les changements en cours.

Pas de risque que le master balance une fullview au slave alors qu'il 
n'a pas tout watché et qu'il zappe des trucs.

0. Le slave reçoit le contenu de toto/titi/
1. Le contenu de toto/titi/ est modifié
2. Le master watch toto/titi/

==> 2. perdu

==> Il faut donc tout watcher avant que les slave se connectent


> Un bug étrange qui m'a fait fouiner le code C du daemon master malgré la
> longue époque qui me sépare de mon dernier programme en C. Il en
> retourne qu'il manque une petite ligne pour permettre de syncroniser les
> sous-répertoire qui existé déjà au lancement du daemon.
> 
> Le patch ci-joint corrige ce problème (enfin pour moi). Je peux
> maintenant créer des fichier sur mes sous dossier et ils sont
> automatiquement répercuté.

J'en doute, le patch ne fait juste rien car à ce moment il n'y a pas de 
slave de connecté sur le mastr.

Es-tu sûr d'avoir attendu que le master écoute sur son port ?


Le vhffsfssync_fake_events_recursively() est là pour corriger un 
problème de synchronisation qui arrive sur les nouveaux répertoires:

0. le répertoire titi est créé
1. le contenu de ce répertoire est modifié
2. le répertoire est watché

Le délai entre 0 et 2 est le délai de réception et de traitement d'une 
notification inotify de nouveau répertoire.

C'est récursif pour un cas particulier:

0. le répertoire titi est créé
1. le répertoire titi/toto est créé
2. le répertoire titi est watché


Rien à voir avec la récursion initiale.


> PS : On soumet sur vhffs-dev les patch aussi?

Pas forcé ;-)


Sylvain

Attachment: signature.asc
Description: Digital signature



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/