3.5.1, import LDAP

Préparant ma migration d’une 3.0.2x vers 3.5, j’ai tout juste changé les mots de passe admin0@global et admin@mondomaine, installé le plugin import-ldap, redémarré bm, … De la console, je reproduis la configuration qui fonctionne sur mon ancien BM, important mes comptes depuis mon serveur LDAP.
De là, que je lance une synchro incrémentale ou globale, rien ne marche.

Les logs de la première synchro montrent plusieurs erreurs telles que :
Impossible de gérrer l’utilisateur DN xxxx, erreur: createMailbox failed for user yyyy. Login as admin0 failed, server A.B.C.D (UNKNOWN)

Du coup, je suis retourné rétablir le mot de passe d’admin0 dans l’interface web.

Depuis, les imports échouent avec pour seul erreur un message :
Import halted by exception: null

A noter que j’ai bien des utilisateurs listés côté ‘Annuaires’. Mais qu’il m’est impossible d’ouvrir le moindre compte utilisateur. Lorsque je clique dessus, le layout s’affiche, une fenêtre ‘Loading’ s’affiche par dessus, charge aux deux tiers, … et rien ne se passe. Aucune trace de ces comptes dans /var/spool/cyrus.
La console chrome me parle de plusieurs “Uncaught TypeError: Cannot read property ‘j’ of null”, un “Uncaught TypeError: java.lang.NullPointerException”. Plein de debugs, qui n’ont pas l’air bien relevant.

De même, la supression de ces utilisateurs à moitié importé n’a aucun effet.

Côté /var/log/bm, voici ce qu’on trouve lorsqu’on tente un import.

=> core.log <==
2016-12-16 23:48:56,594 [pool-7-thread-3] n.b.s.s.i.ExecutionRecorder INFO - recording execution of net.bluemind.scheduledjob.scheduler.impl.RunIdImpl@45eca266
2016-12-16 23:48:56,608 [pool-8-thread-1] n.b.d.j.DataProtectJob INFO - automatic mode, not running as Calendar.MINUTE != 0
2016-12-16 23:48:56,615 [pool-8-thread-1] n.b.h.j.HSMJob INFO - [domaine.com] not forced, last run was 7560 secs ago.
2016-12-16 23:48:56,615 [pool-8-thread-1] n.b.h.j.HSMJob INFO - [domaine.com] less than one day ago, skipping execution.
2016-12-16 23:48:56,618 [pool-7-thread-1] n.b.s.s.i.ExecutionRecorder INFO - recording execution of net.bluemind.scheduledjob.scheduler.impl.RunIdImpl@667f0069
2016-12-16 23:48:56,622 [pool-7-thread-3] n.b.s.s.i.Scheduler INFO - [net.bluemind.scheduledjob.scheduler.impl.RunIdImpl@45eca266] finished and recorded: SUCCESS, duration: 17ms.
2016-12-16 23:48:56,632 [pool-7-thread-4] n.b.s.s.i.ExecutionRecorder INFO - recording execution of net.bluemind.scheduledjob.scheduler.impl.RunIdImpl@2f06741a
2016-12-16 23:48:56,636 [pool-7-thread-1] n.b.s.s.i.Scheduler INFO - [net.bluemind.scheduledjob.scheduler.impl.RunIdImpl@667f0069] finished and recorded: SUCCESS, duration: 5ms.
2016-12-16 23:48:56,683 [pool-7-thread-4] n.b.s.s.i.Scheduler INFO - [net.bluemind.scheduledjob.scheduler.impl.RunIdImpl@2f06741a] finished and recorded: SUCCESS, duration: 45ms.
2016-12-16 23:49:08,097 [BM-Core5] n.b.e.c.RunnableExtensionLoader INFO - Loaded 1 implementors of net.bluemind.filehosting.service
2016-12-16 23:49:17,062 [BM-Core0] n.b.c.c.s.i.ContainerStoreService WARN - multiple inTransaction..
2016-12-16 23:49:17,066 [BM-Core0] n.b.c.c.s.i.ContainerStoreService WARN - multiple inTransaction..
2016-12-16 23:49:17,069 [vert.x-worker-thread-19] n.b.a.d.v.DomainBookVerticle INFO - replicate domain book domaine.com
2016-12-16 23:49:17,069 [BM-Core0] n.b.c.c.s.i.ContainerStoreService WARN - multiple inTransaction..
2016-12-16 23:49:17,074 [vert.x-worker-thread-19] n.b.a.s.i.AddressBookService INFO - {} empty batch of updates.
2016-12-16 23:49:17,078 [BM-Core0] n.b.d.s.i.DomainsService INFO - Notification for domain.updated sent.
2016-12-16 23:49:17,078 [BM-Core0] n.b.s.s.i.ScheduledJobService INFO - Start job net.bluemind.system.ldap.importation.ImportLDAPjob, domain domaine.com
2016-12-16 23:49:17,078 [BM-Core0] n.b.s.s.i.JobRegistry INFO - [system] triggered run of job net.bluemind.system.ldap.importation.ImportLDAPjob
2016-12-16 23:49:17,080 [vert.x-worker-thread-19] n.b.a.d.v.DomainBookVerticle INFO - replicate domain book domaine.com DONE in 11 ms
2016-12-16 23:49:17,082 [BM-Core0] n.b.s.s.i.JobRunner WARN -  **** Skipping execution on d: global.virt, restrict: domaine.com
2016-12-16 23:49:17,083 [pool-8-thread-1] n.b.s.l.i.h.ImportLdapJob INFO - Forced run condition: domaine.com (scheduled or manual start)
2016-12-16 23:49:17,083 [pool-8-thread-1] n.b.s.l.i.h.ImportLdapJob INFO - Run import LDAP job at: Fri Dec 16 23:49:17 GMT 2016
2016-12-16 23:49:17,096 [pool-7-thread-2] n.b.s.s.i.ExecutionRecorder INFO - recording execution of net.bluemind.scheduledjob.scheduler.impl.RunIdImpl@5ca7ea19
2016-12-16 23:49:17,247 [pool-8-thread-1] n.b.s.i.s.SearchCursorBuilder INFO - Executing LDAP search. BaseDn: dc=domaine,dc=com, Filter: (&(&(&(!(pwdAccountLockedTime=*))(objectClass=inetOrgPerson))(mail=*))(memberOf=*)), Scope: SUBTREE, Attributes: [Ljava.lang.String;@3e909ad2, limit: 5
2016-12-16 23:49:17,381 [pool-8-thread-1] n.b.s.i.s.SearchCursorBuilder INFO - Executing LDAP search. BaseDn: dc=domaine,dc=com, Filter: (&(&(objectClass=groupOfNames)(objectClass=UTGBEmail))(member=*)), Scope: SUBTREE, Attributes: [Ljava.lang.String;@390ee563, limit: 5
2016-12-16 23:49:17,385 [pool-8-thread-1] n.b.s.l.i.i.s.LdapScanner INFO - Import LDAP directory using scanner: MemberLdapScanner
2016-12-16 23:49:17,385 [pool-8-thread-1] n.b.s.l.i.i.s.LdapScanner INFO - Global LDAP scan for domain: domain.com, LDAP server: sso.domain.com, using login DN: cn=bluemind,ou=services,dc=domaine,dc=com
2016-12-16 23:49:17,387 [NioProcessor-21] o.a.d.l.c.a.LdapNetworkConnection INFO - There is no future associated with the messageId 3, ignoring the message
2016-12-16 23:49:17,492 [pool-8-thread-1] n.b.s.l.i.i.s.MemberInGroupDescLdapScanner INFO - Suspend users from BM which are removed in LDAP
2016-12-16 23:49:17,493 [pool-8-thread-1] n.b.s.i.s.SearchCursorBuilder INFO - Executing LDAP search. BaseDn: dc=domain,dc=com, Filter: (&(&(!(pwdAccountLockedTime=*))(objectClass=inetOrgPerson))(mail=*)), Scope: SUBTREE, Attributes: [Ljava.lang.String;@4e143484, limit: 0
2016-12-16 23:49:17,500 [pool-8-thread-1] n.b.s.l.i.i.s.MemberInGroupDescLdapScanner INFO - Updating or creating BM users from LDAP
2016-12-16 23:49:17,500 [pool-8-thread-1] n.b.s.i.s.SearchCursorBuilder INFO - Executing LDAP search. BaseDn: dc=domain,dc=com, Filter: (&(&(!(pwdAccountLockedTime=*))(objectClass=inetOrgPerson))(mail=*)), Scope: SUBTREE, Attributes: [Ljava.lang.String;@29f12a24, limit: 0
2016-12-16 23:49:17,543 [pool-8-thread-1] n.b.b.c.i.CyrusMailboxesStorage INFO - mailbox update b68265be-74c7-1034-8659-3f09dcb12c47
2016-12-16 23:49:17,568 [vert.x-worker-thread-1] n.b.a.d.v.DomainBookVerticle INFO - replicate domain book domain.com
2016-12-16 23:49:17,574 [vert.x-worker-thread-1] n.b.a.d.i.DomainAddressBookService INFO - update vcard b68265be-74c7-1034-8659-3f09dcb12c47@domain.com photo false 
2016-12-16 23:49:17,581 [pool-8-thread-1] n.b.d.p.f.FilesystemStore WARN - Cannot delete document domain.com/photos/b68265be-74c7-1034-8659-3f09dcb12c47. File not found
2016-12-16 23:49:17,581 [pool-8-thread-1] n.b.d.p.f.FilesystemStore WARN - Cannot delete document domain.com/icons/b68265be-74c7-1034-8659-3f09dcb12c47. File not found
2016-12-16 23:49:17,588 [vert.x-worker-thread-1] n.b.d.p.f.FilesystemStore WARN - Cannot delete document book_addressbook_domain.com/photos/b68265be-74c7-1034-8659-3f09dcb12c47. File not found
2016-12-16 23:49:17,588 [vert.x-worker-thread-1] n.b.d.p.f.FilesystemStore WARN - Cannot delete document book_addressbook_domain.com/icons/b68265be-74c7-1034-8659-3f09dcb12c47. File not found
2016-12-16 23:49:17,588 [vert.x-worker-thread-1] n.b.a.s.i.AddressBookService INFO - addressbook_domain.com batch updates: 0 added, 1 updated, 0 removed.
2016-12-16 23:49:17,595 [vert.x-worker-thread-3] n.b.e.v.EasContainerChangeVerticle INFO - Wake up system devices for contacts changes
2016-12-16 23:49:17,596 [vert.x-worker-thread-1] n.b.a.d.v.DomainBookVerticle INFO - replicate domain book domain.com DONE in 28 ms
2016-12-16 23:49:17,596 [vert.x-worker-thread-1] n.b.a.d.v.DomainBookVerticle INFO - replicate domain book domain.com
2016-12-16 23:49:17,606 [vert.x-worker-thread-1] n.b.a.d.i.DomainAddressBookService INFO - update vcard b68265be-74c7-1034-8659-3f09dcb12c47@domain.com photo false 
2016-12-16 23:49:17,641 [vert.x-worker-thread-1] n.b.d.p.f.FilesystemStore WARN - Cannot delete document book_addressbook_domain.com/photos/b68265be-74c7-1034-8659-3f09dcb12c47. File not found
2016-12-16 23:49:17,641 [vert.x-worker-thread-1] n.b.d.p.f.FilesystemStore WARN - Cannot delete document book_addressbook_domain.com/icons/b68265be-74c7-1034-8659-3f09dcb12c47. File not found
2016-12-16 23:49:17,642 [vert.x-worker-thread-2] n.b.e.v.EasContainerChangeVerticle INFO - Wake up system devices for contacts changes
2016-12-16 23:49:17,650 [vert.x-worker-thread-1] n.b.a.s.i.AddressBookService INFO - addressbook_domain.com batch updates: 0 added, 1 updated, 0 removed.
2016-12-16 23:49:17,655 [vert.x-worker-thread-1] n.b.a.d.v.DomainBookVerticle INFO - replicate domain book domain.com DONE in 59 ms
2016-12-16 23:49:17,743 [pool-8-thread-1] n.b.b.c.i.SieveWriter ERROR - Fail to login to sieve. Login: 'myusername@domain.com'
2016-12-16 23:49:17,821 [pool-8-thread-1] n.b.s.l.i.h.ImportLdapJob ERROR - LDAP import fail: null
java.lang.NullPointerException: null
	at net.bluemind.system.importation.commons.UserManager.disableVacationAndForwarding(UserManager.java:130) ~[net.bluemind.system.importation.commons_3.1.20462.jar:na]
	at net.bluemind.system.importation.commons.UserManager.setNoMailRouting(UserManager.java:121) ~[net.bluemind.system.importation.commons_3.1.20462.jar:na]
	at net.bluemind.system.importation.commons.UserManager.manageEmails(UserManager.java:110) ~[net.bluemind.system.importation.commons_3.1.20462.jar:na]
	at net.bluemind.system.ldap.importation.internal.tools.UserManagerImpl.update(UserManagerImpl.java:202) ~[net.bluemind.system.ldap.importation_3.1.20462.jar:na]
	at net.bluemind.system.ldap.importation.internal.scanner.MemberInGroupDescLdapScanner.manageUsersFromCursor(MemberInGroupDescLdapScanner.java:156) ~[net.bluemind.system.ldap.importation_3.1.20462.jar:na]
	at net.bluemind.system.ldap.importation.internal.scanner.MemberInGroupDescLdapScanner.scanUsers(MemberInGroupDescLdapScanner.java:119) ~[net.bluemind.system.ldap.importation_3.1.20462.jar:na]
	at net.bluemind.system.ldap.importation.internal.scanner.MemberInGroupDescLdapScanner.scanLdapImpl(MemberInGroupDescLdapScanner.java:94) ~[net.bluemind.system.ldap.importation_3.1.20462.jar:na]
	at net.bluemind.system.ldap.importation.internal.scanner.LdapScanner.scanLdap(LdapScanner.java:95) ~[net.bluemind.system.ldap.importation_3.1.20462.jar:na]
	at net.bluemind.system.ldap.importation.hooks.ImportLdapJob.tick(ImportLdapJob.java:101) ~[net.bluemind.system.ldap.importation_3.1.20462.jar:na]
	at net.bluemind.scheduledjob.scheduler.impl.JobTicker.run(JobTicker.java:63) [net.bluemind.scheduledjob.scheduler_3.1.20462.jar:na]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_72]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_72]
	at java.lang.Thread.run(Thread.java:745) [na:1.8.0_72]
2016-12-16 23:49:17,822 [pool-8-thread-1] n.b.s.s.i.Scheduler ERROR - finished with FAILURE status called from here
java.lang.Throwable: sched.finish(FAILURE)
	at net.bluemind.scheduledjob.scheduler.impl.Scheduler.finish(Scheduler.java:148) [net.bluemind.scheduledjob.scheduler_3.1.20462.jar:na]
	at net.bluemind.system.ldap.importation.hooks.ImportLdapJob.tick(ImportLdapJob.java:114) [net.bluemind.system.ldap.importation_3.1.20462.jar:na]
	at net.bluemind.scheduledjob.scheduler.impl.JobTicker.run(JobTicker.java:63) [net.bluemind.scheduledjob.scheduler_3.1.20462.jar:na]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_72]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_72]
	at java.lang.Thread.run(Thread.java:745) [na:1.8.0_72]
2016-12-16 23:49:17,827 [pool-7-thread-2] n.b.s.s.i.Scheduler INFO - [net.bluemind.scheduledjob.scheduler.impl.RunIdImpl@5ca7ea19] finished and recorded: FAILURE, duration: 739ms.
2016-12-16 23:49:17,894 [pool-8-thread-1] n.b.s.s.i.JobTicker ERROR - java.lang.NullPointerException
net.bluemind.core.api.fault.ServerFault: java.lang.NullPointerException
	at net.bluemind.system.ldap.importation.hooks.ImportLdapJob.tick(ImportLdapJob.java:117) ~[net.bluemind.system.ldap.importation_3.1.20462.jar:na]
	at net.bluemind.scheduledjob.scheduler.impl.JobTicker.run(JobTicker.java:63) ~[net.bluemind.scheduledjob.scheduler_3.1.20462.jar:na]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_72]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_72]
	at java.lang.Thread.run(Thread.java:745) [na:1.8.0_72]
Caused by: java.lang.NullPointerException: null
	at net.bluemind.system.importation.commons.UserManager.disableVacationAndForwarding(UserManager.java:130) ~[net.bluemind.system.importation.commons_3.1.20462.jar:na]
	at net.bluemind.system.importation.commons.UserManager.setNoMailRouting(UserManager.java:121) ~[net.bluemind.system.importation.commons_3.1.20462.jar:na]
	at net.bluemind.system.importation.commons.UserManager.manageEmails(UserManager.java:110) ~[net.bluemind.system.importation.commons_3.1.20462.jar:na]
	at net.bluemind.system.ldap.importation.internal.tools.UserManagerImpl.update(UserManagerImpl.java:202) ~[net.bluemind.system.ldap.importation_3.1.20462.jar:na]
	at net.bluemind.system.ldap.importation.internal.scanner.MemberInGroupDescLdapScanner.manageUsersFromCursor(MemberInGroupDescLdapScanner.java:156) ~[net.bluemind.system.ldap.importation_3.1.20462.jar:na]
	at net.bluemind.system.ldap.importation.internal.scanner.MemberInGroupDescLdapScanner.scanUsers(MemberInGroupDescLdapScanner.java:119) ~[net.bluemind.system.ldap.importation_3.1.20462.jar:na]
	at net.bluemind.system.ldap.importation.internal.scanner.MemberInGroupDescLdapScanner.scanLdapImpl(MemberInGroupDescLdapScanner.java:94) ~[net.bluemind.system.ldap.importation_3.1.20462.jar:na]
	at net.bluemind.system.ldap.importation.internal.scanner.LdapScanner.scanLdap(LdapScanner.java:95) ~[net.bluemind.system.ldap.importation_3.1.20462.jar:na]
	at net.bluemind.system.ldap.importation.hooks.ImportLdapJob.tick(ImportLdapJob.java:101) ~[net.bluemind.system.ldap.importation_3.1.20462.jar:na]
	... 4 common frames omitted
2016-12-16 23:49:17,894 [pool-8-thread-1] n.b.s.s.i.Scheduler ERROR - [net.bluemind.scheduledjob.scheduler.impl.RunIdImpl@5ca7ea19] [en] => Job halted by exception: java.lang.NullPointerException
2016-12-16 23:49:17,894 [pool-8-thread-1] n.b.s.s.i.Scheduler ERROR - [net.bluemind.scheduledjob.scheduler.impl.RunIdImpl@5ca7ea19] [fr] => Tâche stoppée par une exception: java.lang.NullPointerException

µ^C
root@deepthroat:/var/log/bm#

Ca ne me dérrange pas de réinstaller, … mais la chose n’est pas bien claire : ais-je tout cassé en changement mon mot de passe admin ?! La VM à 20 minutes d’uptime, j’aimerai bien comprendre, … Pouvez-vous confirmer qu’il est toujours possible de changer le mot de passe d’admin0, et que l’import LDAP est toujours sencé fonctionner ?!?

Note : la doc BM35 (https://forge.bluemind.net/confluence/display/BM35/Synchronisation+LDAP) inclue un screenshot de BM30, du temps ou il falait préfixer l’IP ou FQDN du LDAP par ‘ssl:’. En 3.5.1, cette notation n’est plus reconnue, tandis qu’un select me permet de choisir TLS/SSL/ignorer certificats, …

Au passage, pendant l’exécution du wizzard, le certificat HTTPS pour lequel j’ai rajouté une exception a été remplacé. Le div suivant l’initialisation de mon installation s’est freezé après un message reportant la génération ou le remplacement d’un certificat (de mémoire).
Rechargeant la page, j’ai rajouté une nouvelle exception, une page s’est chargé affichant les mots de passe par défaut et immédiatement, le prompt type htaccess me demandait de renseigner mon setup user.

Je présume que tout s’est bien déroulé. Dans mes souvenirs de BM30, je n’avais pas eu ce problème.
Disposant de certificats LetsEncrypt (ou à minima, ayant le paquet certbot installé), l’installeur pourrait-il jeter un oeil à /etc/letsencrypt/live/$fqdn (voire utiliser certbot pour demander un certificat) ? Plutôt que de me faire valider deux auto-signés que je vais jeter de toutes façons, …

Bonjour Syn,

J’ai un problème similaire au votre lors de l’import LDAP de mes utilisateurs dans BM 3.5.1 (voir mon post ICI ). Lorsque je souhaite consulter la fiche d’un utilisateur importé de LDAP, le chargement de celle-ci débute puis reste bloqué au 3/4. La fenêtre de chargement affiche “Loading…” mais ne finit pas de charger. Je pensais que c’était lié au fait que j’avais tenté (sans souscription) de désinstaller la version 3.5.0 pour installer la version 3.5.1 sur le même serveur…et qu’il restait des “traces” de la 3.5.0 qui empêchait la 3.5.1 de fonctionner comme il faut.
Mais, vu ton post, il semblerait qu’il y aurait peut-être un soucis avec le plugin LDAP et la version 3.5.1.

Est-ce que quelqu’un d’autre que nous a testé le fonctionnement de BM 3.5.1 avec le plugin LDAP ?

Merci.
Bonne journée.

Bonjour Syn,

Thommy à apporté une réponse à ce problème. Tu peux voir celle-ci sur mon post concernant le sujet

Bonne continuation.

Bonjour,

Intéressant. Quand bien même je n’ai pas accès au ticket, et ne vois pas à quel screenshot on fait allusion.

Cependant, je ne pense pas que mon problème soit addressé par la correction prévu en 3.5.2. En effet, mon LDAP a deux groupes (admins, all). Tout les utilisateurs sont membre du second. D’ailleurs, la synchro LDAP de BM30 me créé des listes de distribution. A nouveau, j’ai reproduit cette conf sur ma nouvelle VM.

D’ailleurs, tommy parle d’un problème d’affichage, je rappelle que si la console web liste mes utilisateurs LDAP, les boites cyrus de ces utilisateurs n’existent pas.

Je prendrai un moment ce week-end pour repartir de zéro.

Pour info, mes dernières tentatives en 3.5.1 n’ont rien donné de mieux. L’import semble fonctionner en 3.5.2.