Synchronisation impossible : No property value exists for ID

cancel
Showing results for 
Search instead for 
Did you mean: 
deeloo
Active Member II

Synchronisation impossible : No property value exists for ID

Bonjour,

Je rencontre un problème lors de la synchronisation avec mon AD. En effet, Alfresco n'arrive plus à se synchroniser avec l'AD et le message d'erreur No property value exists for ID 369172 s'affiche (voir LOG plus bas).

Je ne comprend pas cette erreur dans la mesure où la configuration d'Alfresco n'a pas été modifiée ni celle de l'AD. D'ailleurs, un clone du serveur qui avait été effectué il y a quelque temps fonctionne parfaitement alors que les 2 serveurs disposent d'une configuration identique.

J'en déduis que le problème ne doit pas provenir d'une mauvaise configuration bien que ça a fonctionné auparavant.

J'ai suivi les indications sur ce site : [ACE-5139] CleanAlfPropTables deleting more than it should - Alfresco JIRA 

mais sans succès :

POSTGRESQL :

alfresco=> SELECT * FROM alf_prop_link WHERE root_prop_id=369172;
 root_prop_id | prop_index | contained_in | key_prop_id | value_prop_id
--------------+------------+--------------+-------------+---------------
(0 rows)

alfresco=> DELETE FROM alf_prop_link WHERE root_prop_id=369172;
DELETE 0

LOG :

2017-10-19 18:17:06,151  INFO  [management.subsystems.ChildApplicationContextFactory] [localhost-startStop-1] Starting 'Synchronization' subsystem, ID: [Synchronization, default]
 2017-10-19 18:17:45,056  ERROR [security.sync.ChainingUserRegistrySynchronizer] [localhost-startStop-1] Synchronization aborted due to error
 org.springframework.dao.DataIntegrityViolationException: No property value exists for ID 369172
        at org.alfresco.repo.domain.propval.AbstractPropertyValueDAOImpl.getPropertyById(AbstractPropertyValueDAOImpl.java:848)
        at org.alfresco.repo.domain.propval.AbstractPropertyValueDAOImpl.getPropertyUniqueContext(AbstractPropertyValueDAOImpl.java:1300)
        at org.alfresco.repo.attributes.AttributeServiceImpl.setAttribute(AttributeServiceImpl.java:182)
        at org.alfresco.repo.security.sync.ChainingUserRegistrySynchronizer$8.execute(ChainingUserRegistrySynchronizer.java:2215)
        at org.alfresco.repo.security.sync.ChainingUserRegistrySynchronizer$8.execute(ChainingUserRegistrySynchronizer.java:1)
        at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:464)
        at org.alfresco.repo.security.sync.ChainingUserRegistrySynchronizer.notifySyncStart(ChainingUserRegistrySynchronizer.java:2183)
        at org.alfresco.repo.security.sync.ChainingUserRegistrySynchronizer.synchronizeInternal(ChainingUserRegistrySynchronizer.java:616)
        at org.alfresco.repo.security.sync.ChainingUserRegistrySynchronizer.access$16(ChainingUserRegistrySynchronizer.java:474)
        at org.alfresco.repo.security.sync.ChainingUserRegistrySynchronizer$7.doWork(ChainingUserRegistrySynchronizer.java:2141)
        at org.alfresco.repo.security.authentication.AuthenticationUtil.runAs(AuthenticationUtil.java:555)
        at org.alfresco.repo.security.sync.ChainingUserRegistrySynchronizer.onBootstrap(ChainingUserRegistrySynchronizer.java:2135)
        at org.springframework.extensions.surf.util.AbstractLifecycleBean.onApplicationEvent(AbstractLifecycleBean.java:56)
        at org.alfresco.repo.security.sync.ChainingUserRegistrySynchronizer.onApplicationEvent(ChainingUserRegistrySynchronizer.java:2498)
        at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:96)
        at org.alfresco.repo.management.subsystems.ChildApplicationContextFactory$ChildApplicationContext.publishEvent(ChildApplicationContextFactory.java:569)
        at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:954)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482)
        at org.alfresco.repo.management.subsystems.ChildApplicationContextFactory$ApplicationContextState.start(ChildApplicationContextFactory.java:824)
        at org.alfresco.repo.management.subsystems.AbstractPropertyBackedBean.start(AbstractPropertyBackedBean.java:1098)
        at org.alfresco.repo.management.subsystems.AbstractPropertyBackedBean.onApplicationEvent(AbstractPropertyBackedBean.java:637)
        at org.alfresco.repo.management.SafeApplicationEventMulticaster.multicastEventInternal(SafeApplicationEventMulticaster.java:214)
        at org.alfresco.repo.management.SafeApplicationEventMulticaster.multicastEvent(SafeApplicationEventMulticaster.java:185)
        at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:334)
        at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:954)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482)
        at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:410)
        at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)
        at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112)
        at org.alfresco.web.app.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:70)
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5016)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5524)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:649)
        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1081)
        at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1877)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
2017-10-19 18:17:45,075  WARN  [security.sync.ChainingUserRegistrySynchronizer] [localhost-startStop-1] Failed initial synchronize with user registries
 org.springframework.dao.DataIntegrityViolationException: No property value exists for ID 369172
        at org.alfresco.repo.domain.propval.AbstractPropertyValueDAOImpl.getPropertyById(AbstractPropertyValueDAOImpl.java:848)
        at org.alfresco.repo.domain.propval.AbstractPropertyValueDAOImpl.getPropertyUniqueContext(AbstractPropertyValueDAOImpl.java:1300)
        at org.alfresco.repo.attributes.AttributeServiceImpl.setAttribute(AttributeServiceImpl.java:182)
        at org.alfresco.repo.security.sync.ChainingUserRegistrySynchronizer$8.execute(ChainingUserRegistrySynchronizer.java:2215)
        at org.alfresco.repo.security.sync.ChainingUserRegistrySynchronizer$8.execute(ChainingUserRegistrySynchronizer.java:1)
        at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:464)
        at org.alfresco.repo.security.sync.ChainingUserRegistrySynchronizer.notifySyncStart(ChainingUserRegistrySynchronizer.java:2183)
        at org.alfresco.repo.security.sync.ChainingUserRegistrySynchronizer.synchronizeInternal(ChainingUserRegistrySynchronizer.java:616)
        at org.alfresco.repo.security.sync.ChainingUserRegistrySynchronizer.access$16(ChainingUserRegistrySynchronizer.java:474)
        at org.alfresco.repo.security.sync.ChainingUserRegistrySynchronizer$7.doWork(ChainingUserRegistrySynchronizer.java:2141)
        at org.alfresco.repo.security.authentication.AuthenticationUtil.runAs(AuthenticationUtil.java:555)
        at org.alfresco.repo.security.sync.ChainingUserRegistrySynchronizer.onBootstrap(ChainingUserRegistrySynchronizer.java:2135)
        at org.springframework.extensions.surf.util.AbstractLifecycleBean.onApplicationEvent(AbstractLifecycleBean.java:56)
        at org.alfresco.repo.security.sync.ChainingUserRegistrySynchronizer.onApplicationEvent(ChainingUserRegistrySynchronizer.java:2498)
        at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:96)
        at org.alfresco.repo.management.subsystems.ChildApplicationContextFactory$ChildApplicationContext.publishEvent(ChildApplicationContextFactory.java:569)
        at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:954)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482)
        at org.alfresco.repo.management.subsystems.ChildApplicationContextFactory$ApplicationContextState.start(ChildApplicationContextFactory.java:824)
        at org.alfresco.repo.management.subsystems.AbstractPropertyBackedBean.start(AbstractPropertyBackedBean.java:1098)
        at org.alfresco.repo.management.subsystems.AbstractPropertyBackedBean.onApplicationEvent(AbstractPropertyBackedBean.java:637)
        at org.alfresco.repo.management.SafeApplicationEventMulticaster.multicastEventInternal(SafeApplicationEventMulticaster.java:214)
        at org.alfresco.repo.management.SafeApplicationEventMulticaster.multicastEvent(SafeApplicationEventMulticaster.java:185)
        at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:334)
        at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:954)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482)
        at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:410)
        at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)
        at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112)
        at org.alfresco.web.app.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:70)
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5016)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5524)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:649)
        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1081)
        at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1877)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
2017-10-19 18:17:45,077  INFO  [management.subsystems.ChildApplicationContextFactory] [localhost-startStop-1] Startup of 'Synchronization' subsystem, ID: [Synchronization, default] complete

Par contre, je n'ai plus le message d'erreur après avoir désactivé l'authentification ldap et en ne gardant que celle de base. Ce qui est normal.

Je n'ai pas trouvé plus d'info sur internet et vous remercie par avance de votre aide.

7 Replies
ycoulon
Alfresco Employee

Re: Synchronisation impossible : No property value exists for ID

Bonjour,

Cela semble être lié à une information manquante en base.

Depuis quand est-tu face à ce problème ?

Dispose tu d'une sauvegarde antérieur à l'apparition du problème ?

Pourrais-tu préciser la version d'Alfresco que tu utilises ?

deeloo
Active Member II

Re: Synchronisation impossible : No property value exists for ID

Bonjour Yann,

Je me suis aperçu de ce problème il y 3-4 jours mais il a du apparaitre il y a 2-3 semaines environ. C'est vraiment une estimation large car le serveur Alfresco est un clone issue d'un serveur (machine virtuelle) qui fonctionne à l'heure actuelle. J'ai bien comparé si il y avait eu des modifications particulères sur les fichiers de configuration mais je n'ai rien trouvé. D'ailleurs, je n'ai rien modifié depuis.

J'ai exécuté une optimisation de Solr4 https://alfresco/solr4 mais sans succès.

Et la version d'Alfresco est celle-ci : Alfresco 5.2 f (r135134-b14) version Community + Ubuntu 16.04 LTS

Merci pour ta réponse.

ycoulon
Alfresco Employee

Re: Synchronisation impossible : No property value exists for ID

Bonjour,

Quel est la fonction de ce clone?

Serait il envisageable de refaire le clone et surveiller si le problème se reproduit ?

Il faudrait sinon chercher dans la base "saine" si on trouve des traces de cette propriété.

Y.

deeloo
Active Member II

Re: Synchronisation impossible : No property value exists for ID

Bonjour,

Sur une infra virtuelle, j'ai installé Alfresco sur un serveur "propre" disposant du strict minimum. Après avoir configuré Alfresco et installer les addons, j'en ai fait un modèle afin de déployer des instances "prêtes à être utilisé".

J'en ai donc déployé une qui fonctionne très bien puis cloné celle-ci et les 2 ont été mises à disposition pour 2 services différents.

Voilà un peu le contexte.

Sinon je ne peux redéployer une nouvelle instance avec mon modèle ou avec le clone car entre temps il y a eu pas mal d'ajout de doc, de modification, de règle créé

Par contre, je n'ai pas encore essayé de chercher dans le serveur qui fonctionne.

Je regarde.

Merci encore pour ta réponse et ce début de piste

deeloo
Active Member II

Re: Synchronisation impossible : No property value exists for ID

Je reviens sur mon problème.

D'après les logs, il n'existe pas de propriété pour la valeur 369172. Et le fait de l'avoir supprimé ne change rien du coup

J'ai pensé à y insérer les propriétés via la commande INSERT INTO mais je bute sur la syntaxe Smiley Sad et je ne sais quelle valeur y mettre.

Je pense à vider la table ou à la recharger par Alfresco mais je ne sais comment faire.

alfresco=> SELECT * FROM alf_prop_link WHERE root_prop_id=369172;
 root_prop_id | prop_index | contained_in | key_prop_id | value_prop_id
--------------+------------+--------------+-------------+---------------
(0 rows)

alfresco=> DELETE FROM alf_prop_link WHERE root_prop_id=369172;
DELETE 0
deeloo
Active Member II

Re: Synchronisation impossible : No property value exists for ID

Bonjour,

Je repositionne le contexte de mon environnement.

J'utilise un chainage d'authentification qui se présente comme suit :

authentication.chain=ldap01:ldap-ad,ldap02:ldap-ad,ldap03:ldap-ad,alfrescoNtlm1:alfrescoNtlm

Avec ldap01=serviceA et ldap02=serviceB et ldap03=ServiceC

La configuration du fichier ldap-authentication.properties est identique pour serviceA, serviceB et serviceC sauf les 2 paramètres ci-dessous :

ldap.synchronization.groupSearchBase=l'OU du service

ldap.synchronization.userSearchBase=l'OU du service

Avec ce chainage, j'ai le message d'erreur No property value exists for ID 369172 qui empêche la synchronisation.

J'ai bien essayé de faire un nettoyage des tables avec ce script SQL script for properly clearing Alfresco unused audit data / property values (NOT node properties, ...  mais le problème est toujours présent.

Du coup, je reteste avec le chainage suivant :

authentication.chain=ldap01:ldap-ad,alfrescoNtlm1:alfrescoNtlm

Le problème persiste toujours.

Je refais un test avec ce chainage

authentication.chain=ldap02:ldap-ad,ldap03:ldap-ad,alfrescoNtlm1:alfrescoNtlm

Et oh surprise tout fonctionne ! Smiley Happy

Pourtant la configuration est absolument identique sur les 3 fichiers mis à part l'OU.

Je créé un 4ème chainage ldap04 en utilisant le fichier de configuration ldap01 ce qui donne :

authentication.chain=ldap02:ldap-ad,ldap03:ldap-ad,ldap04:ldap-ad,alfrescoNtlm1:alfrescoNtlm

Et là tout fonctionne, pas d'erreur.

En conclusion, mon problème est résolu bien que j'en connais pas la cause ni la solution.

mauro1855
Member II

Re: Synchronisation impossible : No property value exists for ID

I've been having this problem since 5.1.

And now I updated a perfectly functional 5.1 instance to 5.2.g and suddenly the synchronization has this problem, again.

I saw somewhere that the solution is to:

delete from alf_prop_unique_ctx where prop1_id = 369172 
delete from alf_prop_root where id = 369172 

Usually when I do this it fixes the problem... until it shows up again.

BTW, I don't recommend anyone to do this, because I'm deleting stuff from the database without really understanding what I'm deleting. It might be important???