No Branch/Tag Specified
1.8
1.9.1
1.9.2
2.0
2.1
3.0
3.1
3.2
4.0
4.1
4.2
boutons-danger
coquille_doc
debug_ecrire_fichier
dev-sortable
dev/autoloader
dev/hasard_fixe
dev/instituer_ergo
dev/issue_4626_menu_squelettes
dev/issue_5447_exporter_csv
dev_infos_image
fix/valider_url_distante
fix_issue_5454
fix_modifier_login
issue_4101
issue_4678
issue_4705
issue_4717
issue_4836
issue_4946
issue_5258
issue_5344
issue_5427_bis
issue_5483_find_script_jquery
issue_5487_info_maj
master
v1.8.3+b
v1.9.1+i
v1.9.2+f
v1.9.2+g
v1.9.2+h
v1.9.2+i
v1.9.2+j
v1.9.2+k
v1.9.2+m
v1.9.2+n
v1.9.2+o
v1.9.2+p
v2.0.0
v2.0.1
v2.0.10
v2.0.11
v2.0.12
v2.0.13
v2.0.14
v2.0.15
v2.0.16
v2.0.17
v2.0.18
v2.0.19
v2.0.2
v2.0.20
v2.0.21
v2.0.22
v2.0.23
v2.0.24
v2.0.25
v2.0.26
v2.0.3
v2.0.5
v2.0.6
v2.0.7
v2.0.8
v2.0.9
v2.1.0
v2.1.1
v2.1.10
v2.1.11
v2.1.12
v2.1.13
v2.1.14
v2.1.15
v2.1.16
v2.1.17
v2.1.18
v2.1.19
v2.1.2
v2.1.20
v2.1.21
v2.1.22
v2.1.23
v2.1.24
v2.1.25
v2.1.26
v2.1.27
v2.1.28
v2.1.29
v2.1.3
v2.1.30
v2.1.4
v2.1.5
v2.1.6
v2.1.7
v2.1.8
v2.1.9
v3.0.0
v3.0.0-alpha.1
v3.0.0-beta
v3.0.0-beta.2
v3.0.0-rc
v3.0.1
v3.0.10
v3.0.11
v3.0.12
v3.0.13
v3.0.14
v3.0.15
v3.0.16
v3.0.17
v3.0.18
v3.0.19
v3.0.2
v3.0.20
v3.0.21
v3.0.22
v3.0.23
v3.0.24
v3.0.25
v3.0.26
v3.0.27
v3.0.28
v3.0.3
v3.0.4
v3.0.5
v3.0.6
v3.0.7
v3.0.8
v3.0.9
v3.1.0
v3.1.0-alpha
v3.1.0-beta
v3.1.0-rc
v3.1.0-rc.2
v3.1.0-rc.3
v3.1.1
v3.1.10
v3.1.11
v3.1.12
v3.1.13
v3.1.14
v3.1.15
v3.1.2
v3.1.3
v3.1.4
v3.1.5
v3.1.6
v3.1.7
v3.1.8
v3.1.9
v3.2-alpha.1
v3.2.0
v3.2.0-alpha.1
v3.2.0-beta
v3.2.0-beta.2
v3.2.0-beta.3
v3.2.1
v3.2.10
v3.2.11
v3.2.12
v3.2.13
v3.2.14
v3.2.15
v3.2.16
v3.2.17
v3.2.2
v3.2.3
v3.2.4
v3.2.5
v3.2.6
v3.2.7
v3.2.8
v3.2.9
v4.0.0
v4.0.0-alpha
v4.0.0-beta
v4.0.1
v4.0.2
v4.0.3
v4.0.4
v4.0.5
v4.0.6
v4.0.7
v4.0.8
v4.0.9
v4.1.0
v4.1.0-alpha
v4.1.0-beta
v4.1.0-rc
v4.1.1
v4.1.2
v4.1.3
v4.1.4
v4.1.5
v4.1.6
v4.1.7
v4.2.0-alpha
v4.2.0-alpha2
Labels
Amélioration, nouvelle fonctionnalité APIs authentification base de données bug
Ca ne fonctionne pas code généré compilo css divers documentation doublon
Ce ticket est un doublon ergonomie espace privé filtres et balises formulaires Inscription installation invalide
Ticket invalide javascript langues LDAP plugin PostgreSQL refusé
Ignoré, c'est comme Ca... sécurité traduction
Apply labels
Clear labels
accessibilité
amélioration
Amélioration, nouvelle fonctionnalité APIs authentification base de données bug
Ca ne fonctionne pas code généré compilo css divers documentation doublon
Ce ticket est un doublon ergonomie espace privé filtres et balises formulaires Inscription installation invalide
Ticket invalide javascript langues LDAP plugin PostgreSQL refusé
Ignoré, c'est comme Ca... sécurité traduction
No Label
accessibilité
amélioration
APIs
authentification
base de données
bug
code généré
compilo
css
divers
documentation
doublon
ergonomie
espace privé
filtres et balises
formulaires
Inscription
installation
invalide
javascript
langues
LDAP
plugin
PostgreSQL
refusé
sécurité
traduction
Milestone
Set milestone
Clear milestone
No items
No Milestone
Projects
Clear projects
No project
Assignees
Assign users
Clear assignees
No Assignees
4 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.
No due date set.
Dependencies
This issue currently doesn't have any dependencies.
Reference in new issue
There is no content yet.
Delete Branch '%!s(MISSING)'
Deleting a branch is permanent. It CANNOT be undone. Continue?
No
Yes
La meta cache_signature n'envisage pas que la base puisse être utilisée avec plusieurs caches différents. Cette situation peut exister si on a plusieurs VirtualHost utilisant la même base, ou bien si une base est répliquée entre plusieurs machines servant le même site (installation haute dispo).
L'utilisation de la même meta pour contrôler plusieurs caches va provoquer soit des recalculs inutiles, soit des conflits de réplication de base de donnée.
Le problème peut être évité en suffixant le nom de la meta par un identifiant dépendant du VirtualHost et de la machine. Le patch ci-joint implémente cette modification.
Bonjour
Merci pour le patch.
Est il possible de le proposer en tant que pull request sur
https://git.spip.net/SPIP/spip (compte de la zone) ou bien sur le
clone public http://github.com/spip/spip ?
C'est fait:
https://github.com/spip/SPIP/pull/26
Est-ce que je dois lancer des pull requests pour les branches de SPIP?
--
Emmanuel Dreyfus
http://hcpnet.free.fr/pubz
manu`netbsd.org
bonjour
Merci pour le PR. Pour le moment il faut mieux faire sur la
trunk/master, le report sur les branches est à avoir au cas par cas.
Je suis preneur d'un relecteur de code pour valider le PR.
je vais regarder, mais je pense que la PR ne doit pas être appliquée en l'état :
Le cas qui peut être problématique est celui de la base répliquée entre plusieurs serveurs, mais là on entre dans un autre sujet et pour qu'il y ait collision cela supposerait que le dossier tmp/cache est commun aux serveurs. Ce qui semble une mauvaise idée si chaque serveur à sa base (répliquées avec possibles désynchro ?). Dans ce cas il suffit de définir un dossier cache sur chaque machine (via un `define('_DIR_CACHE',...) qui tape dans un dossier qui n'est pas partagé).
Si le problème vient d'une utilisation de memoization (cache via memcached ou autre), alors ce n'est pas ici qu'il faut en parler car ça ne concerne pas le core
Statut changé à En cours
cedric - a écrit :
On se heurte au problème dans ce contexte, mais chaque serveur
a son dossier cache. La base de donnée est partagée, sauf certaines
tables qui restent locales (jobs; syndic, urls, transactions, visites, referers).
Comme chaque machine a son cache, elle tente d'écrire la meta cache_signature avec une valeur qui rentre en conflit avec celle des autres, d'où l'idée d'avoir un nom de meta différente pour chaque cache.
Comment ça "chaque machine tente d'écrire la meta avec une valeur qui rentre en conflit avec celle des autres" ?
On ecrit la meta qu'une seule fois dans toute la vie du site, et une fois que la meta existe elle n'est plus jamais modifiée, chaque machine devrait donc utiliser la même valeur ici, ce qui n'est absolument pas gênant
Cette signature est uniquement une sécurité anti-injection pour éviter qu'un autre site malveillant ne soit en mesure d'injecter des faux caches, elle n'intervient en rien dans la gestion du cache par lui même, qui tient déjà compte normalement des spécificités de l'instance via la fonction calculer_contexte_implicite()
https://core.spip.net/projects/spip/repository/entry/spip/ecrire/public/assembler.php#L204
Si la modification de cette signature corrige un problème avéré, il est a craindre que ce ne soit pas la bonne correction et masque en fait un autre bug.
Il faudrait donc remonter à la source du vrai problème constaté et voir ce que cela impacte et si ce n'est pas plutôt la fonction calculer_contexte_implicite() qui devrait évoluer, ce qui est à envisager avec prudence là aussi.
Pas de réponse à la demande de précisions
Statut changé à Fermé