Migration buster Size limit exceeded

Mon serveur YunoHost

Matériel: serveur dédié ovh
Version de YunoHost: 4
J’ai accès à mon serveur : En SSH mais plus par la webadmin
Êtes-vous dans un contexte particulier ou avez-vous effectué des modificiations particulières sur votre instance ? : oui
size_limit dans /usr/share/yunohost/templates/slapd/slapd.conf

Description du problème

la migration a buster block
mes logs
https://paste.yunohost.org/raw/xequmeseta

ERROR - Migration 0019_extend_permissions_features did not complete, aborting. Error: error during LDAP search operation with: base='ou=groups,dc=yunohost,dc=org', filter='(objectclass=groupOfNamesYnh)', attrs=['cn', 'member', 'permission'] and exception {'desc': 'Size limit exceeded'}

du coup le front web n’est plus accessible avec cette erreur

/usr/share/ssowat/access.lua: in function </usr/share/ssowat/access.lua:1>, client: 2a01:e0a:adb:fa60:f004:232b:28aa:b513, server: esadhar.net, request: "GET /nextcloud/status.php HTTP/1.1", host: "esadhar.net"
2021/08/24 18:12:45 [error] 1342#1342: *3059 lua entry thread aborted: runtime error: /usr/share/ssowat/access.lua:23: attempt to call field 'refresh_config' (a nil value)
stack traceback:
coroutine 0:
	/usr/share/ssowat/access.lua: in function </usr/share/ssowat/access.lua:1>, client: 185.191.171.17, server: esadhar.net, request: "GET /gogs/esadhar/drupal7-website/action/star?redirect_to=%2Fgogs%2Fesadhar%2Fdrupal7-website%2Fsrc%2F75e56156dfedfca3476b2a2799bfe29512cab2e3%2Fmodules%2Fcomment HTTP/1.1", host: "esadhar.net"
2021/08/24 18:12:49 [error] 1342#1342: *3061 lua entry thread aborted: runtime error: /usr/share/ssowat/access.lua:23: attempt to call field 'refresh_config' (a nil value)
stack traceback:
coroutine 0:
	/usr/share/ssowat/access.lua: in function </usr/share/ssowat/access.lua:1>, client: 185.191.171.44, server: esadhar.net, request: "GET /gogs/comite_de_liberation_numerique/exploration/src/3797d9f54a2d31ea9f03fb525976e85a1b92b7a4/64stitches?lang=sr-SP HTTP/1.1", host: "esadhar.net"


2021/08/24 18:12:55 [error] 1342#1342: *3064 lua entry thread aborted: runtime error: /usr/share/ssowat/access.lua:23: attempt to call field 'refresh_config' (a nil value)
stack traceback:
coroutine 0:
	/usr/share/ssowat/access.lua: in function </usr/share/ssowat/access.lua:1>, client: 114.119.128.154, server: esadhar.net, request: "GET /gogs/sarah_magnan?lang=es-ES HTTP/1.1", host: "esadhar.net"

j’ai relancé plusieurs fois la migration, mais j’ai toujours la mm erreur :frowning:

mon fichier /usr/share/yunohost/templates/slapd/ldap.conf

#
# LDAP Defaults
#

# See ldap.conf(5) for details
# This file should be world readable but not world writable.

BASE   dc=yunohost,dc=org
URI    ldap://localhost:389

SIZELIMIT       100000
#TIMELIMIT      15
#DEREF          never

# TLS certificates (needed for GnuTLS)
TLS_CACERT      /etc/ssl/certs/ca-certificates.crt

sudoers_base ou=sudo,dc=yunohost,dc=org

pour le bug 0017_postgresql_9p6_to_11 j’ai fait

unset LANG
unset LANGUAGE
unset LC_TIME

et c’est passé

mais j’ai toujours le blocage sur 0019_extend_permissions_features

https://paste.yunohost.org/raw/ixulazebed

ERROR - Migration 0019_extend_permissions_features did not complete, aborting. Error: error during LDAP search operation with: base='ou=groups,dc=yunohost,dc=org', filter='(objectclass=groupOfNamesYnh)', attrs=['cn', 'member', 'permission'] and exception {'desc': 'Size limit exceeded'}

i fixed the size limit error by adding olcSizeLimit: 50000 in /etc/ldap/slapd.d/cn\=config.ldif

but now i have a new one :frowning:

ERROR - Migration 0019_extend_permissions_features did not complete, aborting. Error: error during LDAP update operation with: rdn='cn=xmpp.main,ou=permission', attr_dict={'authHeader': ['FALSE'], 'label': ['XMPP'], 'showTile': ['FALSE'], 'isProtected': ['TRUE']}, new_rdn=False and exception: {'desc': 'Other (e.g., implementation specific) error', 'info': 'entry update failed'}

https://paste.yunohost.org/raw/bepumawito

Can you try adding it in /usr/share/yunohost/templates/slapd/config.ldif and triggering the regen-conf with yunohost tools regen-conf slapd ? (Not sure if that’s relevant :s )

it’s not working, oclSizeLimit is not added to the ldap conf

may help

 yunohost tools migrations list
migrations: 
  0: 
    description: Upgrade the system to Debian Buster and YunoHost 4.x
    disclaimer: None
    id: 0015_migrate_to_buster
    mode: manual
    name: migrate_to_buster
    number: 15
    state: done
  1: 
    description: Migrate php7.0-fpm 'pool' conf files to php7.3
    disclaimer: None
    id: 0016_php70_to_php73_pools
    mode: auto
    name: php70_to_php73_pools
    number: 16
    state: done
  2: 
    description: Migrate databases from PostgreSQL 9.6 to 11
    disclaimer: None
    id: 0017_postgresql_9p6_to_11
    mode: auto
    name: postgresql_9p6_to_11
    number: 17
    state: done
  3: 
    description: Migrate old network traffic rules to the new nftable system
    disclaimer: None
    id: 0018_xtable_to_nftable
    mode: auto
    name: xtable_to_nftable
    number: 18
    state: done
  4: 
    description: Extend/rework the app permission management system
    disclaimer: None
    id: 0019_extend_permissions_features
    mode: auto
    name: extend_permissions_features
    number: 19
    state: pending
  5: 
    description: Add SSH and SFTP permissions support
    disclaimer: None
    id: 0020_ssh_sftp_permissions
    mode: auto
    name: ssh_sftp_permissions
    number: 20
    state: pending
yunohost tools migrations state
migrations: 
  0001_change_cert_group_to_sslcert: skipped
  0002_migrate_to_tsig_sha256: skipped
  0003_migrate_to_stretch: skipped
  0004_php5_to_php7_pools: skipped
  0005_postgresql_9p4_to_9p6: skipped
  0006_sync_admin_and_root_passwords: skipped
  0007_ssh_conf_managed_by_yunohost_step1: skipped
  0008_ssh_conf_managed_by_yunohost_step2: skipped
  0009_decouple_regenconf_from_services: skipped
  0010_migrate_to_apps_json: skipped
  0011_setup_group_permission: skipped
  0012_postgresql_password_to_md5_authentication: skipped
  0013_futureproof_apps_catalog_system: done
  0014_remove_app_status_json: done
  0015_migrate_to_buster: done
  0016_php70_to_php73_pools: done
  0017_postgresql_9p6_to_11: done
  0018_xtable_to_nftable: done

the error when i try to access the web ui

2021/08/25 14:58:08 [error] 1342#1342: *46006 lua entry thread aborted: runtime error: /usr/share/ssowat/access.lua:23: attempt to call field 'refresh_config' (a nil value)
stack traceback:
coroutine 0:
	/usr/share/ssowat/access.lua: in function </usr/share/ssowat/access.lua:1>, client: 2a01:e0a:adb:fa60:f004:232b:28aa:b513, server: esadhar.net, request: "GET / HTTP/2.0", host: "esadhar.net"

Yes this error is probably symptomatic of the fact that Migration 0019_extend_permissions_features was not completed

Salut,
bon je suis complètement bloqué, je me perd dans les méandres du code de migration pour comprendre ce qui se passe, mais ldap ça me dépasse, c’est cryptique.
Si une bonne âme connaisseuse pouvait se pencher sur mon problème je lui en serrais éternellement reconnaissant!
(c’est l’instance de l’école d’art du havre et la rentrée des classes approche :disappointed_relieved:. A tout les coups le responsable IT de l’école va installer des solutions propriétaires pour pallier au manque :sob:)

Quand tu dis que tu n’as pas accès à la web UI tu parles bien du portail utilisateurs (pas de l’interface d’admin)?

Le ldap est toujours fonctionnel (running) ? Tu arrives à l’observer avec slapcat ?

Quand tu dis que tu n’as pas accès à la web UI tu parles bien du portail utilisateurs (pas de l’interface d’admin)?

les deux

Le ldap est toujours fonctionnel (running) ?

$ systemctl status slapd
● slapd.service - LSB: OpenLDAP standalone server (Lightweight Directory Access Protocol)
   Loaded: loaded (/etc/init.d/slapd; generated)
  Drop-In: /etc/systemd/system/slapd.service.d
           └─ynh-override.conf
   Active: active (running) since Wed 2021-08-25 14:47:58 CEST; 1 day 7h ago
     Docs: man:systemd-sysv-generator(8)
  Process: 32425 ExecStart=/etc/init.d/slapd start (code=exited, status=0/SUCCESS)
   Memory: 38.0M
   CGroup: /system.slice/slapd.service
           └─32435 /usr/sbin/slapd -h ldap://127.0.0.1:389/ ldaps:/// ldapi:/// -g openldap -u openldap -F /etc/ldap/slapd.d

Aug 26 22:18:46 esadhar.net slapd[32435]: slap_global_control: unrecognized control: 1.3.6.1.4.1.42.2.27.8.5.1
Aug 26 22:18:56 esadhar.net slapd[32435]: slap_global_control: unrecognized control: 1.3.6.1.4.1.42.2.27.8.5.1
Aug 26 22:19:05 esadhar.net slapd[32435]: slap_global_control: unrecognized control: 1.3.6.1.4.1.42.2.27.8.5.1
Aug 26 22:19:15 esadhar.net slapd[32435]: slap_global_control: unrecognized control: 1.3.6.1.4.1.42.2.27.8.5.1
Aug 26 22:19:23 esadhar.net slapd[32435]: slap_global_control: unrecognized control: 1.3.6.1.4.1.42.2.27.8.5.1
Aug 26 22:20:49 esadhar.net slapd[32435]: slap_global_control: unrecognized control: 1.3.6.1.4.1.4203.666.5.16
Aug 26 22:20:49 esadhar.net slapd[32435]: slap_global_control: unrecognized control: 1.3.6.1.4.1.42.2.27.8.5.1
Aug 26 22:21:19 esadhar.net slapd[32435]: slap_global_control: unrecognized control: 1.3.6.1.4.1.42.2.27.8.5.1
Aug 26 22:23:56 esadhar.net slapd[32435]: slap_global_control: unrecognized control: 1.3.6.1.4.1.4203.666.5.16
Aug 26 22:23:57 esadhar.net slapd[32435]: slap_global_control: unrecognized control: 1.3.6.1.4.1.42.2.27.8.5.1

Tu arrives à l’observer avec slapcat ?

slapcat me sort bien un listing

Hello,

ouep désolé c’est un peu galère à résoudre à distance et en asynchrone comme problème :confused:

Par contre en lisant le log je vois:

 WARNING - 612614aa ldif_read_file: checksum error on "/etc/ldap/slapd.d/cn=config.ldif"

(genre naivement ca ressemble à ldap/slapd qui aime pas qu’on ai touché sa conf à la main)

Ce qui ressemble à un truc qui pourrait ensuite déclencher le “‘Other (e.g., implementation specific) error’” cryptique qu’on voit avec XMPP

Est-ce que tu peux partager le log de yunohost tools regen-conf slapd --debug pour voir ce que ça raconte ?

En réfléchissant un peu + au problème:

  • c’est important de passer par la regen-conf car modifier la conf ldap ne se résume pas à éditer un fichier de conf. La regen-conf fait des trucs en plus.
  • donc à mon avis il faut vraiment que tu mettes olcSizeLimit: 50000 dans /usr/share/yunohost/templates/slapd/config.ldif puis que tu force la regen-conf ensuite (potentiellement en vérifiant avant la différence avec yunohost tools regen-conf slapd --dry-run --with-diff au cas où tu as fait d’autres modifs que tu ne veux pas oublier)
  • … puis retenter la migration ?

Sur un de mes yunohost je n’ai pas d’objet 1.3.6.1.4.1.42.2.27.8.5.1 et toi ?

grep -nr "1.3.6.1.4.1.42.2.27.8.5.1" /etc/ldap

1.3.6.1.4.1.42 semble lié à la gestion de la politique de mot de passe, tu as fait quelques choses de spécifique à ce sujet ?

yunohost tools regen-conf slapd --dry-run --with-diff ne sort rien

les log de yunohost tools regen-conf slapd --debug https://paste.yunohost.org/raw/atijufoxuf

les logs d’un nouveau yunohost tools migrations run https://paste.yunohost.org/raw/awipiqohig

grep -nr "1.3.6.1.4.1.42.2.27.8.5.1" /etc/ldap ne sort rien, ni sur cette instance, ni sur une autre que je gère (et ou la migration s’est bien passée, moins de users)

nope

Mokay du coup en fait ce qui merde c’est qu’à un moment dans la regenconf on essaye de faire un slapcat pour corriger à-la-volée (au cas où) un autre bug qui n’a rien à voir … mais comme la config est pas d’équerre, slapcat explose en vol

Pour remettre le truc d’équerre, en l’état il faut faire un truc à la main à partir de ce qu’on trouve dans la regen-conf

Si tu veux tu peux lire ça ici

et l’appliquer avec:

curl https://gist.githubusercontent.com/alexAubin/337ec0ecb7709ab8316e4746b9e63d6d/raw/36185b2f339e63992a573c805965de3886f6327a/gistfile1.txt | bash

puis potentiellement

su openldap -s "/bin/bash" -c "/usr/sbin/slapindex"

et

systemctl restart slapd

quand j’applique le patch, il e dit que olcSizeLimit ne passe pas

slapadd: dn="olcOverlay={2}memberof,olcDatabase={1}mdb,cn=config" (line=1436): (65) attribute 'olcSizeLimit' not allowed

et si je fais yunohost user list j’ai de nouveau l’erreur Size limit exceeded

si je relance la migration j’ai toujours la mm erreur https://paste.yunohost.org/raw/gokeyumedu