From 7f60661eef6eb1c078c5c25ed5329aa9fb7e68e5 Mon Sep 17 00:00:00 2001 From: wt Date: Tue, 20 Oct 2026 17:34:43 +0700 Subject: [PATCH] =?UTF-8?q?-=20MUC=20=D1=81=D0=BE=D1=85=D1=80=D0=B0=D0=BD?= =?UTF-8?q?=D1=8F=D0=B5=D1=82=20=D1=81=D0=BE=D0=B3=D0=BB=D0=B0=D1=81=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD=D0=BD=D1=8B=D0=B9=20=D0=B6=D1=83=D1=80=D0=BD?= =?UTF-8?q?=D0=B0=D0=BB=20=D0=BA=D0=BE=D0=BD=D1=84=D0=B8=D0=B3=D1=83=D1=80?= =?UTF-8?q?=D0=B0=D1=86=D0=B8=D0=B8,=20affiliations,=20nick,=20=20=20?= =?UTF-8?q?=D1=80=D0=BE=D0=BB=D0=B5=D0=B9,=20=20=20=D1=87=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D1=81=D1=82=D0=B2=D0=B0=20=D0=B8=20=D0=BE=D0=B3=D1=80?= =?UTF-8?q?=D0=B0=D0=BD=D0=B8=D1=87=D0=B5=D0=BD=D0=BD=D0=BE=D0=B9=20=D0=B8?= =?UTF-8?q?=D1=81=D1=82=D0=BE=D1=80=D0=B8=D0=B8=20=D0=B1=D0=B5=D0=B7=20MAM?= =?UTF-8?q?.=20=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD=D0=B8=D0=B5=20?= =?UTF-8?q?=D1=84=D0=B8=D0=BA=D1=81=D0=B8=D1=80=D1=83=D0=B5=D1=82=D1=81?= =?UTF-8?q?=D1=8F=20=D0=B4=D0=BE=20=20=20=D0=BF=D1=83=D0=B1=D0=BB=D0=B8?= =?UTF-8?q?=D0=BA=D0=B0=D1=86=D0=B8=D0=B8=20=20=20=D0=BE=D1=82=D0=B2=D0=B5?= =?UTF-8?q?=D1=82=D0=B0;=20=D0=BF=D1=80=D0=B8=20=D0=BE=D1=88=D0=B8=D0=B1?= =?UTF-8?q?=D0=BA=D0=B5=20=D0=B7=D0=B0=D0=BF=D0=B8=D1=81=D0=B8=20=D1=81?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D0=BE=D1=8F=D0=BD=D0=B8=D0=B5=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=BC=D0=BD=D0=B0=D1=82=D1=8B=20=D0=BE=D1=82=D0=BA=D0=B0=D1=82?= =?UTF-8?q?=D1=8B=D0=B2=D0=B0=D0=B5=D1=82=D1=81=D1=8F.=20-=20Crash=20recov?= =?UTF-8?q?ery=20=D0=B8=D1=81=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D1=83=D0=B5?= =?UTF-8?q?=D1=82=20=D0=BF=D0=BE=D1=81=D0=BB=D0=B5=D0=B4=D0=BD=D0=B5=D0=B5?= =?UTF-8?q?=20=D1=81=D0=BE=D1=85=D1=80=D0=B0=D0=BD=D1=91=D0=BD=D0=BD=D0=BE?= =?UTF-8?q?=D0=B5=20=D0=BF=D0=BE=D0=BA=D0=BE=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5?= =?UTF-8?q?=20=D0=BF=D0=BE=D1=81=D0=BB=D0=B5=20=20=20SIGKILL,=20=20=20?= =?UTF-8?q?=D0=B2=D0=BA=D0=BB=D1=8E=D1=87=D0=B0=D1=8F=20=D0=B2=D1=80=D0=B5?= =?UTF-8?q?=D0=BC=D0=B5=D0=BD=D0=BD=D1=8B=D0=B5=20=D0=BA=D0=BE=D0=BC=D0=BD?= =?UTF-8?q?=D0=B0=D1=82=D1=8B.=20Heartbeat=20=D0=BE=D0=B1=D0=BD=D0=BE?= =?UTF-8?q?=D0=B2=D0=BB=D1=8F=D0=B5=D1=82=20=D0=B6=D0=B8=D0=B2=D0=BE=D0=B5?= =?UTF-8?q?=20=D1=87=D0=BB=D0=B5=D0=BD=D1=81=D1=82=D0=B2=D0=BE;=20=20=20?= =?UTF-8?q?=D0=BE=D0=B6=D0=B8=D0=B4=D0=B0=D1=8E=D1=89=D0=B8=D0=B5=20=D0=B7?= =?UTF-8?q?=D0=B0=D0=BF=D0=B8=D1=81=D0=B8=20=D1=81=D0=BE=D1=85=D1=80=D0=B0?= =?UTF-8?q?=D0=BD=D1=8F=D1=8E=D1=82=20=D0=B8=D1=81=D1=85=D0=BE=D0=B4=D0=BD?= =?UTF-8?q?=D1=8B=D0=B9=20deadline=20=D1=87=D0=B5=D1=80=D0=B5=D0=B7=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=B2=D1=82=D0=BE=D1=80=D0=BD=D1=8B=D0=B5=20=20=20?= =?UTF-8?q?=D0=BF=D0=B5=D1=80=D0=B5=D0=B7=D0=B0=D0=BF=D1=83=D1=81=D0=BA?= =?UTF-8?q?=D0=B8.=20=20=20`muc=5Frecovery=5Fgrace=5Fperiod`:=20=D0=BF?= =?UTF-8?q?=D0=BE=20=D1=83=D0=BC=D0=BE=D0=BB=D1=87=D0=B0=D0=BD=D0=B8=D1=8E?= =?UTF-8?q?=20300=20=D1=81=D0=B5=D0=BA=D1=83=D0=BD=D0=B4,=20=D0=BF=D1=80?= =?UTF-8?q?=D0=B5=D0=B4=D0=B5=D0=BB=D1=8B=20=20=201..604800.=20-=20=D0=9F?= =?UTF-8?q?=D0=BE=D0=B4=D1=82=D0=B2=D0=B5=D1=80=D0=B6=D0=B4=D1=91=D0=BD?= =?UTF-8?q?=D0=BD=D1=8B=D0=B5=20=D0=B2=D1=8B=D1=85=D0=BE=D0=B4=D1=8B,=20?= =?UTF-8?q?=D1=81=D0=BC=D0=B5=D0=BD=D0=B0=20nick,=20=D1=80=D0=BE=D0=BB?= =?UTF-8?q?=D0=B5=D0=B9=20=D0=B8=20=D0=BF=D0=BE=D0=BB=D0=B8=D1=82=D0=B8?= =?UTF-8?q?=D0=BA=20=D0=BA=D0=BE=D0=BC=D0=BD=D0=B0=D1=82=D1=8B=20=D0=BD?= =?UTF-8?q?=D0=B5=20=20=20=D0=B7=D0=B0=D0=BC=D0=B5=D0=BD=D1=8F=D1=8E=D1=82?= =?UTF-8?q?=D1=81=D1=8F=20=20=20=D1=81=D1=82=D0=B0=D1=80=D0=BE=D0=B9=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=BF=D0=B8=D1=81=D1=8C=D1=8E=20=D0=B2=D0=BE=D1=81?= =?UTF-8?q?=D1=81=D1=82=D0=B0=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F.=20Native=20config/state=20=D0=BE=D1=81=D1=82=D0=B0?= =?UTF-8?q?=D1=8E=D1=82=D1=81=D1=8F=20=D1=8D=D0=BA=D1=81=D0=BF=D0=BE=D1=80?= =?UTF-8?q?=D1=82=D0=BE=D0=BC=20=20=20=D0=B4=D0=BB=D1=8F=20=20=20Prosody;?= =?UTF-8?q?=20=D1=81=D0=BE=D0=B3=D0=BB=D0=B0=D1=81=D0=BE=D0=B2=D0=B0=D0=BD?= =?UTF-8?q?=D0=BD=D0=BE=D0=B5=20=D0=B2=D0=BE=D1=81=D1=81=D1=82=D0=B0=D0=BD?= =?UTF-8?q?=D0=BE=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20Rust=20=D0=B8?= =?UTF-8?q?=D1=81=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D1=83=D0=B5=D1=82=20=D1=81?= =?UTF-8?q?=D0=BE=D0=B1=D1=81=D1=82=D0=B2=D0=B5=D0=BD=D0=BD=D1=8B=D0=B9=20?= =?UTF-8?q?=20=20sidecar.=20-=20=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D1=8B=20MUC=20probe,=20=D0=BD=D0=B5=D0=B8=D0=B7?= =?UTF-8?q?=D0=B2=D0=B5=D1=81=D1=82=D0=BD=D1=8B=D0=B5=20=D1=82=D0=B8=D0=BF?= =?UTF-8?q?=D1=8B=20presence,=20=D0=B2=D1=85=D0=BE=D0=B4=20=D0=B1=D0=B5?= =?UTF-8?q?=D0=B7=20MUC=20``,=20=20=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA?= =?UTF-8?q?=D0=B8=20=20=20=D0=B4=D0=BE=D1=81=D1=82=D0=B0=D0=B2=D0=BA=D0=B8?= =?UTF-8?q?=20=D0=B8=20=D1=81=D1=82=D0=B0=D1=82=D1=83=D1=81=20333.=20?= =?UTF-8?q?=D0=9E=D0=B1=D1=8B=D1=87=D0=BD=D1=8B=D0=B5=20presence=20extensi?= =?UTF-8?q?ons=20=D1=81=D0=BE=D1=85=D1=80=D0=B0=D0=BD=D1=8F=D1=8E=D1=82?= =?UTF-8?q?=D1=81=D1=8F=20=D0=B2=20=D0=B6=D0=B8=D0=B2=D0=BE=D0=BC=20=20=20?= =?UTF-8?q?=D0=BE=D0=B1=D0=BC=D0=B5=D0=BD=D0=B5;=20=D0=BF=D0=BE=D0=B4?= =?UTF-8?q?=D0=B4=D0=B5=D0=BB=D1=8C=D0=BD=D0=B0=D1=8F=20MUC=20identity=20?= =?UTF-8?q?=D1=84=D0=B8=D0=BB=D1=8C=D1=82=D1=80=D1=83=D0=B5=D1=82=D1=81?= =?UTF-8?q?=D1=8F.=20`subject`=20=D0=B2=D0=BC=D0=B5=D1=81=D1=82=D0=B5=20?= =?UTF-8?q?=D1=81=20`body`=20=20=20=D0=BB=D0=B8=D0=B1=D0=BE=20=20=20`threa?= =?UTF-8?q?d`=20=D0=BD=D0=B5=20=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D1=8F=D0=B5?= =?UTF-8?q?=D1=82=20=D1=82=D0=B5=D0=BC=D1=83=20=D0=BA=D0=BE=D0=BC=D0=BD?= =?UTF-8?q?=D0=B0=D1=82=D1=8B.=20-=20=D0=9F=D0=BE=D0=B4=D0=BA=D0=BB=D1=8E?= =?UTF-8?q?=D1=87=D0=B5=D0=BD=D1=8B=20`muc=5Fmax=5Frooms`,=20`restrict=5Fr?= =?UTF-8?q?oom=5Fcreation`,=20=D0=BF=D0=BE=D0=BB=D0=B8=D1=82=D0=B8=D0=BA?= =?UTF-8?q?=D0=B8=20=20=20=D1=80=D0=B5=D0=B3=D0=B8=D1=81=D1=82=D1=80=D0=B0?= =?UTF-8?q?=D1=86=D0=B8=D0=B8=20=20=20=D0=B8=20=D0=B7=D0=B0=D1=80=D0=B5?= =?UTF-8?q?=D0=B3=D0=B8=D1=81=D1=82=D1=80=D0=B8=D1=80=D0=BE=D0=B2=D0=B0?= =?UTF-8?q?=D0=BD=D0=BD=D0=BE=D0=B3=D0=BE=20nick,=20`muc=5Ftombstone=5Fexp?= =?UTF-8?q?iry`;=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D1=8B?= =?UTF-8?q?=20=20=20=D0=B2=D1=81=D1=82=D1=80=D0=BE=D0=B5=D0=BD=D0=BD=D1=8B?= =?UTF-8?q?=D0=B5=20=20=20=D0=B0=D0=B4=D0=BC=D0=B8=D0=BD=D0=B8=D1=81=D1=82?= =?UTF-8?q?=D1=80=D0=B0=D1=82=D0=B8=D0=B2=D0=BD=D1=8B=D0=B5=20ad-hoc=20?= =?UTF-8?q?=D0=BA=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4=D1=8B=20=D1=83=D0=BD=D0=B8?= =?UTF-8?q?=D1=87=D1=82=D0=BE=D0=B6=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=BC=D0=BD=D0=B0=D1=82=20=D0=B8=20=D0=B8=D0=B7=D0=BC=D0=B5?= =?UTF-8?q?=D0=BD=D0=B5=D0=BD=D0=B8=D1=8F=20=20=20affiliation.=20-=20Hub?= =?UTF-8?q?=20=D1=81=D0=BE=D1=85=D1=80=D0=B0=D0=BD=D1=8F=D0=B5=D1=82=20res?= =?UTF-8?q?umable=20XEP-0198=20=D1=81=D0=B5=D1=81=D1=81=D0=B8=D0=B8,=20?= =?UTF-8?q?=D1=81=D1=87=D1=91=D1=82=D1=87=D0=B8=D0=BA=D0=B8=20=D0=B8=20?= =?UTF-8?q?=D0=BE=D1=87=D0=B5=D1=80=D0=B5=D0=B4=D1=8C.=20Resume=20=20=20?= =?UTF-8?q?=D0=BF=D0=BE=D1=81=D0=BB=D0=B5=20=20=20=D0=BF=D0=B5=D1=80=D0=B5?= =?UTF-8?q?=D0=B7=D0=B0=D0=BF=D1=83=D1=81=D0=BA=D0=B0=20=D0=B4=D0=BE=D1=81?= =?UTF-8?q?=D1=82=D1=83=D0=BF=D0=B5=D0=BD=20=D0=BD=D0=B0=20=D0=BD=D0=BE?= =?UTF-8?q?=D0=B2=D0=BE=D0=BC=20TLS/SASL-=D1=82=D1=80=D0=B0=D0=BD=D1=81?= =?UTF-8?q?=D0=BF=D0=BE=D1=80=D1=82=D0=B5=20=D1=87=D0=B5=D1=80=D0=B5=D0=B7?= =?UTF-8?q?=20legacy=20SASL=20=D0=B8=20=20=20SASL2.=20=20=20=D0=94=D0=B5?= =?UTF-8?q?=D0=B9=D1=81=D1=82=D0=B2=D1=83=D1=8E=D1=89=D0=B8=D0=B5=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B8=D0=B2=D0=B0=D1=82=D0=BD=D1=8B=D0=B5=20SM-=D0=B7?= =?UTF-8?q?=D0=B0=D0=BF=D0=B8=D1=81=D0=B8=20=D0=B2=D0=BE=D1=81=D1=81=D1=82?= =?UTF-8?q?=D0=B0=D0=BD=D0=B0=D0=B2=D0=BB=D0=B8=D0=B2=D0=B0=D1=8E=D1=82=20?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=B8=D0=B5=20?= =?UTF-8?q?=D1=81=D0=B5=D1=81=D1=81=D0=B8=D0=B8=20=D0=B8=20=20=20MUC=20=20?= =?UTF-8?q?=20=D0=B4=D0=BE=20=D0=BE=D1=82=D0=BA=D1=80=D1=8B=D1=82=D0=B8?= =?UTF-8?q?=D1=8F=20listeners:=20offline-=D0=B4=D0=BE=D1=81=D1=82=D0=B0?= =?UTF-8?q?=D0=B2=D0=BA=D0=B0=20=D0=BF=D0=BE=D0=BF=D0=B0=D0=B4=D0=B0=D0=B5?= =?UTF-8?q?=D1=82=20=D0=B2=20=D0=BE=D1=87=D0=B5=D1=80=D0=B5=D0=B4=D1=8C,?= =?UTF-8?q?=20=20=20=D1=81=D0=B8=D0=BD=D1=82=D0=B5=D1=82=D0=B8=D1=87=D0=B5?= =?UTF-8?q?=D1=81=D0=BA=D0=B8=D0=B9=20=20=20join=20=D0=B8=20=D0=B8=D1=81?= =?UTF-8?q?=D1=82=D0=BE=D1=80=D0=B8=D1=8F=20=D0=BF=D0=BE=D0=B2=D1=82=D0=BE?= =?UTF-8?q?=D1=80=D0=BD=D0=BE=20=D0=BD=D0=B5=20=D0=BE=D1=82=D0=BF=D1=80?= =?UTF-8?q?=D0=B0=D0=B2=D0=BB=D1=8F=D1=8E=D1=82=D1=81=D1=8F.=20SM=20resume?= =?UTF-8?q?=20=D0=BD=D0=B5=20=D1=82=D1=80=D0=B5=D0=B1=D1=83=D0=B5=D1=82=20?= =?UTF-8?q?=20=20=D0=B4=D0=BE=D0=BF=D0=BE=D0=BB=D0=BD=D0=B8=D1=82=D0=B5?= =?UTF-8?q?=D0=BB=D1=8C=D0=BD=D0=BE=D0=B9=20=20=20available=20presence;=20?= =?UTF-8?q?=D0=B1=D0=B5=D0=B7=20SM=20=D0=B2=D0=BE=D1=81=D1=81=D1=82=D0=B0?= =?UTF-8?q?=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20MUC=20=D1=82?= =?UTF-8?q?=D1=80=D0=B5=D0=B1=D1=83=D0=B5=D1=82=20=D0=BD=D0=BE=D0=B2=D0=BE?= =?UTF-8?q?=D0=B9=20=20=20=D0=B0=D1=83=D1=82=D0=B5=D0=BD=D1=82=D0=B8=D1=84?= =?UTF-8?q?=D0=B8=D0=BA=D0=B0=D1=86=D0=B8=D0=B8=20=20=20=D1=82=D0=BE=D1=87?= =?UTF-8?q?=D0=BD=D0=BE=D0=B3=D0=BE=20=D0=BF=D0=BE=D0=BB=D0=BD=D0=BE=D0=B3?= =?UTF-8?q?=D0=BE=20JID=20=D0=B8=20available=20presence=20=D0=BB=D0=B8?= =?UTF-8?q?=D0=B1=D0=BE=20=D1=8F=D0=B2=D0=BD=D0=BE=D0=B3=D0=BE=20MUC-?= =?UTF-8?q?=D0=B2=D1=85=D0=BE=D0=B4=D0=B0.=20=20=20=D0=92=D1=85=D0=BE?= =?UTF-8?q?=D0=B4=D1=8F=D1=89=D0=B8=D0=B9=20handled-=D1=81=D1=87=D1=91?= =?UTF-8?q?=D1=82=D1=87=D0=B8=D0=BA=20=D0=BE=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB?= =?UTF-8?q?=D1=8F=D0=B5=D1=82=D1=81=D1=8F=20=D0=BF=D0=BE=D1=81=D0=BB=D0=B5?= =?UTF-8?q?=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=BA=D0=B8.=20?= =?UTF-8?q?=D0=A1=D0=BE=D0=BA=D0=B5=D1=82=D1=8B=20TCP/TLS=20=20=20=D0=BD?= =?UTF-8?q?=D0=B5=20=D1=81=D0=BE=D1=85=D1=80=D0=B0=D0=BD=D1=8F=D1=8E=D1=82?= =?UTF-8?q?=D1=81=D1=8F;=20=D0=BD=D0=B5=D0=BE=D0=BF=D1=80=D0=B5=D0=B4?= =?UTF-8?q?=D0=B5=D0=BB=D1=91=D0=BD=D0=BD=D0=B0=D1=8F=20=D1=81=D0=B5=D1=82?= =?UTF-8?q?=D0=B5=D0=B2=D0=B0=D1=8F=20=D0=BE=D1=82=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=B4=D0=BE=D0=BF=D1=83=D1=81=D0=BA=D0=B0=D0=B5?= =?UTF-8?q?=D1=82=20=D0=BF=D0=BE=D0=B2=D1=82=D0=BE=D1=80=D0=BD=D1=83=D1=8E?= =?UTF-8?q?=20=20=20=D0=B4=D0=BE=D1=81=D1=82=D0=B0=D0=B2=D0=BA=D1=83.=20-?= =?UTF-8?q?=20=D0=98=D0=B7=D0=B2=D0=B5=D1=81=D1=82=D0=BD=D1=8B=D0=B5=20?= =?UTF-8?q?=D0=B2=D1=81=D1=82=D1=80=D0=BE=D0=B5=D0=BD=D0=BD=D1=8B=D0=B5=20?= =?UTF-8?q?MUC-=D0=B2=D0=BE=D0=B7=D0=BC=D0=BE=D0=B6=D0=BD=D0=BE=D1=81?= =?UTF-8?q?=D1=82=D0=B8=20Prosody=20=D0=BE=D1=82=D0=BE=D0=B1=D1=80=D0=B0?= =?UTF-8?q?=D0=B6=D0=B0=D1=8E=D1=82=D1=81=D1=8F=20=D0=BD=D0=B0=20=20=20Rus?= =?UTF-8?q?t-=D1=80=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D1=8E.?= =?UTF-8?q?=20=20=20=D0=9F=D1=80=D0=BE=D0=B8=D0=B7=D0=B2=D0=BE=D0=BB=D1=8C?= =?UTF-8?q?=D0=BD=D1=8B=D0=B5=20Lua/community-=D0=BC=D0=BE=D0=B4=D1=83?= =?UTF-8?q?=D0=BB=D0=B8=20=D0=BD=D0=B5=20=D0=B8=D1=81=D0=BF=D0=BE=D0=BB?= =?UTF-8?q?=D0=BD=D1=8F=D1=8E=D1=82=D1=81=D1=8F;=20=D0=BD=D0=B5=D0=B8?= =?UTF-8?q?=D0=B7=D0=B2=D0=B5=D1=81=D1=82=D0=BD=D1=8B=D0=B5=20=D1=8F=D0=B2?= =?UTF-8?q?=D0=BD=D0=BE=20=20=20=D0=B2=D0=BA=D0=BB=D1=8E=D1=87=D1=91=D0=BD?= =?UTF-8?q?=D0=BD=D1=8B=D0=B5=20=20=20MUC-=D0=BC=D0=BE=D0=B4=D1=83=D0=BB?= =?UTF-8?q?=D0=B8=20=D0=BE=D1=82=D0=BA=D0=BB=D0=BE=D0=BD=D1=8F=D1=8E=D1=82?= =?UTF-8?q?=D1=81=D1=8F=20=D0=BF=D1=80=D0=B8=20=D0=B7=D0=B0=D0=BF=D1=83?= =?UTF-8?q?=D1=81=D0=BA=D0=B5.=20=D0=9E=D0=B1=D1=89=D0=B8=D0=B5=20=D0=B8?= =?UTF-8?q?=20host=20`modules=5Fdisabled`=20=20=20=D1=83=D1=87=D0=B8=D1=82?= =?UTF-8?q?=D1=8B=D0=B2=D0=B0=D1=8E=D1=82=D1=81=D1=8F=20=20=20=D0=B4=D0=BB?= =?UTF-8?q?=D1=8F=20vCard=20=D0=B8=20occupant-id.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Порядок восстановления, ограничения хранения и отката на Prosody: [docs/MUC-RECOVERY.md](docs/MUC-RECOVERY.md). Проверка: 293 Rust tests, Clippy/fmt/release, полный сетевой прогон, 500 TLS MUC+SM ресурсов с SIGKILL/resume и native reference — успешно. Подробности: [docs/VALIDATION-0.8.0.md](docs/VALIDATION-0.8.0.md). --- CHANGELOG-0.8.0.md | 39 + Cargo.lock | 2 +- Cargo.toml | 2 +- README.md | 32 +- docs/COMPATIBILITY.md | 33 +- docs/MUC-RECOVERY.md | 184 +- docs/SOURCE-SHA256.txt | 41 +- docs/VALIDATION-0.8.0.md | 50 + docs/VALIDATION.md | 85 +- .../initial-load-timeout.txt | 4241 +++++++++++++++++ docs/validation-logs-0.8.0/muc-crash.txt | 11 + docs/validation-logs-0.8.0/muc-sm-load.json | 62 + docs/validation-logs-0.8.0/sm-restart.txt | 1 + docs/validation-logs-0.8.0/verify.txt | 846 ++++ docs/validation-results-0.7.9.json | 133 + docs/validation-results.json | 179 +- scripts/verify-local.sh | 3 + src/csi.rs | 29 + src/lib.rs | 2 + src/muc.rs | 866 +++- src/muc_admin.rs | 319 ++ src/muc_history.rs | 64 +- src/muc_recovery.rs | 157 +- src/protocol.rs | 3 + src/pubsub.rs | 2 + src/server.rs | 270 +- src/session_store.rs | 339 ++ src/sessions.rs | 215 +- tests/muc_access.rs | 12 +- tests/muc_crash_network.py | 294 ++ tests/muc_crash_state.rs | 228 + tests/muc_domain_bans.rs | 14 +- tests/muc_extensions.rs | 87 +- tests/muc_flow.rs | 3 +- tests/muc_optional_admin.rs | 201 + tests/muc_protocol.rs | 177 + tests/muc_restart_state.rs | 29 +- tests/muc_sm_load_network.py | 412 ++ tests/muc_state_native.rs | 3 +- tests/sm_durable_slots.rs | 323 ++ tests/sm_restart_network.py | 263 + 41 files changed, 9804 insertions(+), 452 deletions(-) create mode 100644 CHANGELOG-0.8.0.md create mode 100644 docs/VALIDATION-0.8.0.md create mode 100644 docs/validation-logs-0.8.0/initial-load-timeout.txt create mode 100644 docs/validation-logs-0.8.0/muc-crash.txt create mode 100644 docs/validation-logs-0.8.0/muc-sm-load.json create mode 100644 docs/validation-logs-0.8.0/sm-restart.txt create mode 100644 docs/validation-logs-0.8.0/verify.txt create mode 100644 docs/validation-results-0.7.9.json create mode 100644 src/muc_admin.rs create mode 100644 src/session_store.rs create mode 100644 tests/muc_crash_network.py create mode 100644 tests/muc_crash_state.rs create mode 100644 tests/muc_optional_admin.rs create mode 100644 tests/muc_protocol.rs create mode 100644 tests/muc_sm_load_network.py create mode 100644 tests/sm_durable_slots.rs create mode 100644 tests/sm_restart_network.py diff --git a/CHANGELOG-0.8.0.md b/CHANGELOG-0.8.0.md new file mode 100644 index 0000000..ad59082 --- /dev/null +++ b/CHANGELOG-0.8.0.md @@ -0,0 +1,39 @@ +# 0.8.0 + +- MUC сохраняет согласованный журнал конфигурации, affiliations, nick, ролей, + членства и ограниченной истории без MAM. Изменение фиксируется до публикации + ответа; при ошибке записи состояние комнаты откатывается. +- Crash recovery использует последнее сохранённое поколение после SIGKILL, + включая временные комнаты. Heartbeat обновляет живое членство; + ожидающие записи сохраняют исходный deadline через повторные перезапуски. + `muc_recovery_grace_period`: по умолчанию 300 секунд, пределы 1..604800. +- Подтверждённые выходы, смена nick, ролей и политик комнаты не заменяются + старой записью восстановления. Native config/state остаются экспортом для + Prosody; согласованное восстановление Rust использует собственный sidecar. +- Исправлены MUC probe, неизвестные типы presence, вход без MUC ``, ошибки + доставки и статус 333. Обычные presence extensions сохраняются в живом + обмене; поддельная MUC identity фильтруется. `subject` вместе с `body` либо + `thread` не изменяет тему комнаты. +- Подключены `muc_max_rooms`, `restrict_room_creation`, политики регистрации + и зарегистрированного nick, `muc_tombstone_expiry`; добавлены встроенные + административные ad-hoc команды уничтожения комнат и изменения affiliation. +- Hub сохраняет resumable XEP-0198 сессии, счётчики и очередь. Resume после + перезапуска доступен на новом TLS/SASL-транспорте через legacy SASL и SASL2. + Действующие приватные SM-записи восстанавливают логические сессии и MUC + до открытия listeners: offline-доставка попадает в очередь, синтетический + join и история повторно не отправляются. SM resume не требует дополнительной + available presence; без SM восстановление MUC требует новой аутентификации + точного полного JID и available presence либо явного MUC-входа. + Входящий handled-счётчик обновляется после обработки. Сокеты TCP/TLS + не сохраняются; неопределённая сетевая отправка допускает повторную доставку. +- Известные встроенные MUC-возможности Prosody отображаются на Rust-реализацию. + Произвольные Lua/community-модули не исполняются; неизвестные явно включённые + MUC-модули отклоняются при запуске. Общие и host `modules_disabled` учитываются + для vCard и occupant-id. + +Порядок восстановления, ограничения хранения и отката на Prosody: +[docs/MUC-RECOVERY.md](docs/MUC-RECOVERY.md). + +Проверка: 293 Rust tests, Clippy/fmt/release, полный сетевой прогон, 500 TLS +MUC+SM ресурсов с SIGKILL/resume и native reference — успешно. +Подробности: [docs/VALIDATION-0.8.0.md](docs/VALIDATION-0.8.0.md). diff --git a/Cargo.lock b/Cargo.lock index b4a848f..08d6ee3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1111,7 +1111,7 @@ dependencies = [ [[package]] name = "rust-xmpp" -version = "0.7.9" +version = "0.8.0" dependencies = [ "anyhow", "axum", diff --git a/Cargo.toml b/Cargo.toml index 20e943e..fa6e75c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rust-xmpp" -version = "0.7.9" +version = "0.8.0" edition = "2024" description = "Experimental Rust XMPP server with Prosody-compatible storage" license = "MIT" diff --git a/README.md b/README.md index f54ed3c..4d6b64a 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Rust XMPP 0.7.9 +# Rust XMPP 0.8.0 Сервер на Rust, разрабатываемый для замены **Prosody 13.0 nightly 100, cafd74b9c5ea** с предоставленными модулями. Читает существующий Lua-конфиг, @@ -16,7 +16,9 @@ PEP/pubsub, закладки, offline, carbons, SM, push, TLS-федерация Нестандартные HTTP-пути и TLS reverse proxy: [docs/HTTP-PROXY.md](docs/HTTP-PROXY.md). Пример для слияния с действующим конфигом: `examples/reverse-proxy.fragment.yaml`. -MUC-расширения и условия восстановления участников: [docs/MUC-RECOVERY.md](docs/MUC-RECOVERY.md). +MUC и восстановление после сбоя, включая SM resume: +[docs/MUC-RECOVERY.md](docs/MUC-RECOVERY.md). +Изменения 0.8.0: [CHANGELOG-0.8.0.md](CHANGELOG-0.8.0.md). Встроенный http_altconnect: [docs/HTTP-ALTCONNECT.md](docs/HTTP-ALTCONNECT.md). @@ -150,7 +152,8 @@ inline SM/CSI/Carbons и MAM metadata. Добавьте его в modules_enable с `sasl2` только если эта функция нужна. Исходный конфиг по-прежнему работает без включения нового модуля. Ресурс генерируется случайно; прежние соединения того же аккаунта с тем же валидным UUIDv4 user-agent завершаются после успешного -входа. Inline возобновление SM через SASL2 пока не объявляется. +входа. Inline возобновление SM через SASL2 поддерживается, в том числе после +перезапуска при наличии действующей сохранённой SM-сессии. ## PEP, push и pre-authenticated roster @@ -206,3 +209,26 @@ gateway с multipart streaming описаны в [docs/HTTP-UPLOAD.md](docs/HTTP карантин неопределённого completion. Реальные 10 GiB через MinIO проверены с описанной адаптацией тестовой среды. Изменения и границы подтверждения — [CHANGELOG-0.7.9.md](CHANGELOG-0.7.9.md). + +## MUC и SM после сбоя в 0.8.0 + +MUC фиксирует конфигурацию, роли, членство и ограниченную историю без MAM +до публикации соответствующего ответа. Последний сохранённый журнал позволяет +восстановить persistent и временные комнаты после аварийной остановки. +Heartbeat обновляет живое состояние; срок уже ожидающего восстановления +не продлевается повторным запуском. `muc_recovery_grace_period` задаётся +в секундах: по умолчанию 300, пределы 1..604800. + +Действующие приватные SM-записи восстанавливают логические сессии и MUC +до открытия listeners, поэтому offline-доставка может попасть в сохранённую +очередь. XEP-0198 resume через legacy SASL или SASL2 требует нового +TLS/SASL-транспорта и токена того же владельца; TCP/TLS-сокеты не сохраняются. +Без действующей SM-записи MUC ожидает новую аутентификацию точного полного JID +и available presence либо обычный явный MUC-вход. + +Native-файлы экспортируются для Prosody; источником согласованного crash +recovery Rust служит собственный журнал. Перед откатом ознакомьтесь с +[порядком переключения](docs/MUC-RECOVERY.md). Произвольные community Lua-модули +не выполняются; неизвестные явно включённые MUC-модули отклоняются при запуске. +Результаты проверки — в +[docs/VALIDATION-0.8.0.md](docs/VALIDATION-0.8.0.md). diff --git a/docs/COMPATIBILITY.md b/docs/COMPATIBILITY.md index 06ee2ac..e652864 100644 --- a/docs/COMPATIBILITY.md +++ b/docs/COMPATIBILITY.md @@ -2,8 +2,10 @@ Цель — конкретная Prosody `cafd74b9c5ea` и предоставленные community/custom модули ревизии `dddb6c34b964`, а не все существующие модули Prosody. -Реализация содержит рабочие обработчики всех явно включённых имён модулей -из конфига. Это не означает полного совпадения их поведения. +Известные встроенные и выбранные модули предоставленной установки отображаются +на обработчики Rust. Произвольные Lua/community-модули не исполняются; +неизвестные явно включённые MUC-модули отклоняются при запуске. +Это не означает полного совпадения поведения с Prosody. | Область | Что реализовано | Существенные пределы | |---|---|---| @@ -12,10 +14,10 @@ | Аккаунты, saslauth | internal_hashed SHA-1/SHA-256, SASLprep, PLAIN внутри TLS, SCRAM и PLUS с tls-exporter/tls-server-end-point, SSDP, SASL2 | Только internal_hashed; опциональный sasl2_bind2 (alias bind2) поддерживает inline bind/SM/CSI/Carbons. SASL2 inline SM resume и takeover живого транспорта реализованы; MAM metadata при Bind2 читает весь архив синхронно | | Сообщения и presence | локальная маршрутизация, приоритеты ресурсов, контакты/подписки/probes, offline, carbons, блокировки | Полная совместимость всех пограничных сценариев маршрутизации ещё не подтверждена | | MAM | личный и комнатный MAM2, prefs, формы, RSM, фильтры времени/контакта/ID, extended queries, metadata, stanza-id, expiry | Нет доказательства совпадения каждой ошибки и порядка результатов при всех комбинациях запроса | -| MUC | комнаты, несколько ресурсов, роли/affiliations, owner/admin, конфигурация, приглашения, история без MAM и MAM, occupant-id/avatar, hats, язык, PM policies, presence broadcast, native metadata/state checkpoints и восстановление после штатной остановки | Восстановление после повторной аутентификации точного полного JID в300-секундном grace и при неизменной конфигурации. Нет сохранения TCP/SM между процессами и checkpoint на SIGKILL. Произвольные community-расширения не запускаются; MUC-RECOVERY.md | +| MUC | комнаты, несколько ресурсов, роли/affiliations, owner/admin, конфигурация, приглашения, история без MAM и MAM, occupant-id/avatar, hats, PM/presence policies, регистрация, административные ad-hoc команды; журнал конфигурации, членства и истории до ответа, crash recovery persistent/temporary комнат | Rust-журнал авторитетен, native config/state — экспорт. Без SM восстановление требует новой аутентификации точного полного JID; grace по умолчанию 300 с, `muc_recovery_grace_period` 1..604800. Действующая приватная SM-запись восстанавливает логическое членство до listeners. Произвольные Lua-модули не запускаются; [MUC-RECOVERY.md](MUC-RECOVERY.md) | | PEP/pubsub | persistent nodes/items, ACL, subscriptions, publish/retract/purge/delete, owner/configuration, caps, OMEMO XML как payload | Не все необязательные политики узлов Prosody реализованы; OMEMO шифруют клиенты, криптография OMEMO не часть сервера | | private/bookmarks/vCard | private XML, старые и новые закладки, vCard/temp-vCard4 и avatar-переходы | Межклиентное поведение нужно дополнительно проверить настоящими клиентами | -| SM/push | acknowledgements, resumable sessions, replay, ограниченные очереди, native регистрации push и ответы сервисов | Есть coalescing и watchdog первого push; полный цикл с настоящим APNs/FCM шлюзом не проверен. Состояние живых сессий не переживает перезапуск процесса | +| SM/push | acknowledgements после обработки, resumable XEP-0198 sessions, replay, ограниченные очереди, приватный durable snapshot, heartbeat и shutdown checkpoint; legacy SASL/SASL2 resume после restart; native регистрации push | Нужны новый TLS/SASL-транспорт и токен того же владельца; TCP/TLS-сокеты не сохраняются. SM-снимок не native Prosody: 256 MiB суммарно, 8 MiB/4096 stanza на сессию. При неопределённой отправке возможен replay. Есть coalescing и watchdog первого push; реальный APNs/FCM цикл не подтверждён | | CSI | active/inactive, ограниченный буфер, native importance rules, delay, flush при клиентской активности и grace period | Событие socket drain приближено завершением записи; необязательные расширенные XPath-фильтры поддержаны не полностью | | Федерация | входящие/исходящие STARTTLS, CA/DNS-ID, SASL EXTERNAL, DNS SRV, проверка домена каждого stanza, ограниченный пул соединений | Нет dialback/DANE/OtherName-only/SRV-ID/bidi/direct TLS | | HTTP upload | Несколько XEP-0363 components, Host/path isolation, local/S3 gateway, multipart/SigV4, streaming PUT, GET/HEAD/range/conditional, квоты/expiry, native metadata/JWT; offline local↔S3/S3↔S3 migration с SHA-256/resume; intent/exact-key recovery и quarantine; реальный 10 GiB PUT/GET через MinIO проверен | MinIO single-node с описанным netlink adapter тестовой среды; AWS/distributed deployment не проверены. Миграция требует остановки сервера и временного места под один файл; source сохраняется. Потерянные ownership metadata и неопределённый Complete требуют отдельного разбора; HTTP-UPLOAD.md | @@ -141,3 +143,26 @@ HTTPS учитывает https_interfaces (включая* → IPv4+IPv6), HTTP PEP production причина по-прежнему не доказана; новая диагностика различает parser-valid IDs и форму уведомлений. Нет подтверждения Android UI, живого production WSS, DNSSEC signing или полной замены Prosody. + +## Восстановление MUC и SM в 0.8.0 + +MUC-журнал хранит последнее согласованное поколение конфигурации, ролей, +членства и ограниченной истории, включая временные комнаты без MAM. +Неудачная фиксация откатывает изменение комнаты; внешний MAM-архив и прочие +побочные эффекты не составляют единую транзакцию с журналом. Heartbeat обновляет +живое состояние, но не продлевает deadline уже ожидающих записей. + +При действующей сохранённой SM-сессии bootstrap восстанавливает логическую +сессию и связанное MUC-членство до начала приёма соединений. Offline-доставка +попадает в SM-очередь, а не в несуществующий сокет. Для сетевого resume нужны +новая TLS/SASL-аутентификация и действующий токен владельца. Без такой SM-записи +действует обычное повторное подтверждение полного JID и MUC admission. + +Учтены `muc_max_rooms`, `restrict_room_creation`, +`allow_unaffiliated_register`, `enforce_registered_nickname`, +`muc_registration_include_form`, `muc_tombstone_expiry` и component-admin +ad-hoc destroy/set-affiliation. Общие и host `modules_disabled` применяются +к vCard и occupant-id. Эти встроенные обработчики не запускают Lua-плагины. +Ограничения журнала, native-экспорта и отката: +[MUC-RECOVERY.md](MUC-RECOVERY.md). Итоги проверки: +[VALIDATION-0.8.0.md](VALIDATION-0.8.0.md). diff --git a/docs/MUC-RECOVERY.md b/docs/MUC-RECOVERY.md index b3c8fb8..5c5b9a2 100644 --- a/docs/MUC-RECOVERY.md +++ b/docs/MUC-RECOVERY.md @@ -1,68 +1,142 @@ -# MUC: расширения и восстановление0.7.6 +# MUC: протокол и восстановление 0.8.0 -Сопоставление выполнено с предоставленной Prosody cafd74b9c5ea: plugins/muc -и mod_muc_mam.lua. Поддержка относится к встроенным расширениям этой ревизии, -а не к произвольным community Lua plugins. +Реализация сопоставлена с предоставленной Prosody `cafd74b9c5ea`, прежде всего +`plugins/muc` и `mod_muc_mam.lua`. Известные встроенные возможности перенесены +в Rust; произвольный Lua-код и community-модули Prosody не исполняются. +Неизвестный явно включённый MUC-модуль отклоняется при запуске, а не молча +игнорируется. Список `modules_disabled` применяется с учётом общих и host-настроек, +в том числе для `muc_vcard` и `muc_occupant_id`. -Добавлены hats из affiliation data, язык комнаты, политики PM/модераторских PM, -фильтрация presence по ролям и формы конфигурации. Поддельные occupant-id/hats -и MUC user identity из клиентского сообщения удаляются. muc_vcard и -muc_occupant_id можно отключить. Настройки MAM включают muc_log_all_rooms, -muc_log_presences, muc_log_include_total; presence хранится отдельными событиями, -обычный MAM-запрос выбирает groupchat сообщения как в native. +## Что сохраняется -История работает без MAM: ограниченный буфер, maxstanzas/maxchars/seconds/since, -delay и раздельный subject. Архив MAM продолжает поддерживать историю persistent -комнат. Удаление комнаты очищает её MAM-архив. +MUC теперь записывает единый журнал компонента `rust_muc_checkpoint`: +конфигурацию комнат, affiliations, текущие nick и роли участников, безопасные +поля presence и ограниченную историю обсуждения. Это относится к persistent +и временным комнатам и работает без MAM. Журнал содержит согласованное поколение +состояния; запись через временный файл, синхронизацию и rename предшествует +возврату результата операции и публикации соответствующих MUC-ответов. +При ошибке сохранения изменение состояния комнаты откатывается в памяти. -## Как восстанавливается членство +Сохранение выполняется при изменениях членства, конфигурации, affiliations, +ролей и истории, а также при штатной остановке. Поэтому восстановление больше +не зависит только от SIGTERM: после SIGKILL используется последнее успешно +зафиксированное поколение. Heartbeat обновляет отметки живых участников даже +в тихой комнате. Неудачный heartbeat фиксируется в журнале сервера; состояние, +которое не удалось сохранить, нельзя считать защищённым от следующего сбоя. -При SIGTERM/Ctrl-C сервер сначала сохраняет метаданные комнаты и native -`state/.dat`, затем завершает соединения. Сохраняются nick, полный JID, -роль, show/status/priority и последнее сообщение истории. Это относится также -к временным комнатам с участниками. Транспортное отключение во время shutdown -не считается добровольным выходом из комнаты и не удаляет checkpoint. +Обычная история без MAM сохраняет порядок, время сообщений и ограничения +`maxstanzas`, `maxchars`, `seconds`, `since`; subject хранится отдельно в +конфигурации комнаты. MAM остаётся самостоятельным архивом и не превращается +в часть одной транзакции со всеми внешними эффектами. Presence-события MAM +и groupchat-запросы остаются раздельными. -После запуска сохранённые участники ожидают восстановления до300 секунд. -Они не становятся активными адресатами маршрутизации автоматически. Когда -тот же полный JID проходит SASL, bind и отправляет общую available presence, -сервер повторно проверяет комнату и восстанавливает членство, nick, роль и -presence. Одного совпадения bare JID или resource недостаточно. -Клиент может по-прежнему явно войти обычной MUC presence. +## Возвращение участников -Отпечаток конфигурации должен совпасть с сохранённым: изменение пароля или -прав комнаты отменяет автоматическое восстановление; требуется обычный вход -с актуальными параметрами. В presence state не записываются MUC-пароли и -произвольные расширения. Пароль комнаты остаётся в исходной native config, -как и до этого. Тот же checkpoint не продлевает grace при повторных перезапусках. Успешно использованная запись восстановления -погашается на диске до отправки результата клиенту, чтобы авария не вернула -старую роль после выхода или снятия модератора. -Неактивированные временные комнаты очищаются после истечения срока. +Без сохранённой SM-сессии после запуска членство становится ожидающей записью, а не активным +адресатом маршрутизации. Автоматический MUC-вход возможен после новой +аутентификации, bind того же полного JID и общей available presence. Bare JID +или чужой resource не заменяют эту проверку. Обычный явный вход с MUC `` +тоже доступен; актуальные ограничения комнаты проверяются повторно. -Native формат читается/пишется и проверяется настоящей Prosody в обе стороны. -Для автоматического восстановления используются checkpoint с отпечатком и -временем Rust; старый native state без этих полей сам по себе не является -разрешением на автоматический вход. Обычное повторное присоединение доступно. +Срок ожидания задаёт `muc_recovery_grace_period` в секундах: по умолчанию `300`, +диапазон `1..604800` (значения ограничиваются этими пределами). Живое членство +получает свежую отметку при фиксации и heartbeat. Уже ожидающая запись имеет +фиксированный срок: запросы, неудачные попытки и повторные перезапуски его +не продлевают. Неактивированные временные комнаты удаляются после истечения +срока. -Это восстановление XMPP-членства в комнате: старые TCP/TLS-сокеты после -остановки процесса не существуют. SM resume между процессами не реализован. -Аварийный SIGKILL/отказ питания не создаёт новый checkpoint: гарантируется -проверенный штатный shutdown, а не полный crash recovery. +Смена пароля, affiliations или иной конфигурации отменяет старые ожидающие +разрешения. Подтверждённые изменения роли, явный выход и удаление комнаты +попадают в журнал до ответа, поэтому следующая авария не должна возвращать +предыдущую роль или прежний nick. Успешное восстановление создаёт текущее +членство: при следующей аварии восстанавливается его последняя сохранённая +версия, а не навсегда погашенная старая запись. -История ограничена `max_history_messages`: по умолчанию100, допустимый внутренний -предел4096. Состояние комнаты ограничено4096 ресурсами. Необязательные presence -поля слишком большого размера и последнее сообщение больше16KiB не включаются -в checkpoint; это не мешает сохранить членство. Текущие сообщения доставляются -по обычным транспортным лимитам. +В checkpoint presence входят только `show`, `status`, `priority`. +MUC-пароли и произвольные расширения presence туда не копируются. При живом +обмене обычные caps, avatar и idle сохраняются; присланные клиентом MUC identity, +occupant-id и hats фильтруются. Пароль комнаты остаётся в её конфигурации. -## Проверка и границы +Если имеется действующая приватная SM-запись Rust, логическая сессия продолжает +членство без транспорта. При запуске повторно проверяются наличие и состояние +аккаунта и текущие ограничения комнаты. Маршрутизация восстанавливается до +приёма клиентов: сообщения для ещё не подключившегося участника попадают в его +сохранённую SM-очередь. Синтетические join presence и история повторно не +отправляются. Доставка по сети требует новой TLS/SASL-аутентификации и корректного +SM-токена того же владельца; native MUC-файлы сами по себе этого не разрешают. -Автоматические тесты используют отдельные временные данные. Сетевой сценарий -останавливает процесс с живыми клиентскими socket, запускает его повторно, -проверяет persistent и temporary комнаты, запрет чужих identity/resource, -восстановленные роли/presence и доставку сообщений. Native oracle проверяет -перенос state с несколькими ресурсами туда и обратно. +## Native-файлы и переход между серверами -Полная production-миграция, непрерывные федеративные reconnect и все community -расширения не проверены. Конкретные результаты — VALIDATION.md; общие пределы -сервера — COMPATIBILITY.md. Реальные клиенты должны повторно аутентифицироваться. +Native config, persistent index и `state/.dat` читаются и экспортируются +для совместимости с Prosody. При работе Rust источником согласованного +восстановления служит его журнал, а native-файлы являются экспортом после commit. +Устаревший экспорт после сбоя не должен возвращать предыдущее членство. +Native state без подтверждающих Rust-метаданных сам по себе не разрешает +автоматический вход. + +Редактирование native-конфигурации администратором обнаруживается по отпечатку: +старые разрешения восстановления и история, привязанная к прежней политике, +отбрасываются; удаление ранее экспортированной конфигурации отменяет её +восстановление. Это не универсальное слияние параллельных записей двух серверов. + +Для отката на Prosody остановите Rust и сохраните резервную копию всего +`data_path`. Prosody использует native-экспорт и не читает Rust-журнал. Перед +возвратом с Prosody на Rust согласуйте данные и устраните устаревший +`rust_muc_checkpoint` в остановленном экземпляре: иначе неизменившиеся native +файлы могут быть приняты за экспорт предыдущего поколения Rust. Удаление +журнала означает отказ от его crash recovery, включая историю временных комнат. +Не запускайте оба сервера с общей записываемой директорией. + +## Поддерживаемые политики + +- Доступны hats из affiliation data, язык комнаты, роли presence broadcast, + политики PM и модераторских PM, формы конфигурации и offline affiliation presence. +- `muc_vcard` и `muc_occupant_id` управляют соответствующими возможностями. + MAM учитывает `muc_log_all_rooms`, `muc_log_presences`, `muc_log_include_total`. +- `restrict_room_creation`: `false` разрешает создание по умолчанию, `true` + ограничивает его настроенными администраторами, `"local"` — локальными + зарегистрированными пользователями и администраторами. `muc_max_rooms` + ограничивает число комнат; существующее членство не требует повторного + разрешения на создание. +- Регистрация учитывает `allow_unaffiliated_register`, + `enforce_registered_nickname`, `muc_registration_include_form`. + Срок tombstone задаёт `muc_tombstone_expiry` (по умолчанию 31 день). +- Администраторам компонента доступны ad-hoc команды + `http://prosody.im/protocol/muc#destroy` и + `http://prosody.im/protocol/muc#set-affiliation`. Полномочия проверяются + на каждом шаге; изменения проходят обычный механизм фиксации MUC. + +Presence probe не создаёт участника и возвращает сведения только допущенному +участнику. Новый вход без MUC `` отклоняется; неизвестные типы presence +не превращаются во вход. Presence errors исключают соответствующую сессию; +message errors делают это для native-набора ошибок доставки. Последняя сессия +получает статус `333`; остальные ошибки приватного сообщения могут быть +переданы адресату. Сообщение с `subject` и `body` либо `thread` остаётся обычным +сообщением и не меняет тему комнаты. + +## Границы и проверка + +Старые TCP/TLS-сокеты после остановки процесса не существуют. Восстановление +членства MUC и XEP-0198 resume — отдельные механизмы. В 0.8.0 Hub сохраняет resumable +SM-сессии, счётчики и очередь неподтверждённых stanza. Resume проходит на новом +защищённом аутентифицированном транспорте, включая legacy SASL и SASL2; +успешный SM resume восстанавливает MUC без дополнительной available presence. +Входящая stanza учитывается в handled-счётчике после обработки. Heartbeat и +штатная остановка сохраняют снимок; offline deadline не продлевается простыми +проверками или повторными запусками. + +SM-снимок приватный: предел 256 MiB суммарно, 8 MiB и 4096 stanza на сессию. +Он не является native-форматом Prosody. Нельзя обещать сохранение сокета или +ровно одну доставку при неопределённом результате сетевой отправки. + +Буфер истории ограничен `max_history_messages` (по умолчанию 100, предел 4096), +состояние комнаты — 4096 ресурсами. Большие необязательные поля presence +исключаются из checkpoint; отдельные сообщения истории больше 16 KiB не +восстанавливаются. Общий checkpoint компонента ограничен 16 MiB: превышение +лимита приводит к ошибке записи, а не к успешному подтверждению несохранённого +изменения. Долговечность предполагает исправный диск и файловую систему, +соблюдающую синхронизацию записи. + +Команды и результаты проверки версии 0.8.0 публикуются в +[VALIDATION-0.8.0.md](VALIDATION-0.8.0.md). Полный прогон завершён успешно. Общие границы совместимости: +[COMPATIBILITY.md](COMPATIBILITY.md). diff --git a/docs/SOURCE-SHA256.txt b/docs/SOURCE-SHA256.txt index 2257c61..a6fb767 100644 --- a/docs/SOURCE-SHA256.txt +++ b/docs/SOURCE-SHA256.txt @@ -14,13 +14,13 @@ b1018e1b279c89f6cf14b4017e4f1b14e9165afef2f668cec6ac8bbe0c710d85 scripts/integr e08ac6136cce27cda2ddbd510da0f25750766ab0150a9f4b8f87c953276d16e9 scripts/prosody_compat/oracle.lua 2c7a2c946885205e9df38b97305073a8ac72f58ac8ff84fc6f9af320c35bbc96 scripts/prosody_compat/verify.sh 1b9ed063daf3e0320819b4fe0135c96dd27e49877044aa2f5093b8ab4fbda41d scripts/smoke.py -0b2f6209a36fe9783b83d43396da26862c89cad1da1483ae49a79800e31982c1 scripts/verify-local.sh +caa74bdd83f0b952b875f613cdbd238d7f903408c2176d54178ce18994b53e95 scripts/verify-local.sh a2e47f547ab9349f84ee6c4f8e51c147b7110b41a82c17cdb938027a84d82ef3 src/account_modules.rs 5637f816586f0613b83e14d0ed478bd539f325b70ccbfc9fdf893adbe494453d src/admin.rs 89d7e29d8f8daab614c9c836864b166fdaa324ca035c2d3d5f95639c24b2a9e1 src/archive.rs e15b079a420227ee59e3b7ac305783c51eb59d76a8fb5dd12760547b0f812107 src/auth.rs 83ac35a4c9d20debf006fe80fba8e423c09806fb2526ff384b188ca28d612a5e src/config.rs -6574ad70d5c60c4acf7e01e66dadaa7cd2d09d3b184a611418aeb271f27ebc3c src/csi.rs +55f8e68d0d41a81d2254a0c5aef4146488127f771c5b71ccd2e23d17dd1e8e79 src/csi.rs 834ebe4a1f2d46ab932c14c0a2c7be3375873a71ef56026d372c86e60ef041fc src/data_lock.rs 1c8aa5cb816a32a0f9f24589ac00beba27544a83c3d9aad771523a1d1cbcd4c8 src/extras.rs dca8959effb123b94e1fbd42c561a79c721178c4b612a004db9f9fccb3b8950d src/federation.rs @@ -29,23 +29,25 @@ d561a6bd4db079cfb1ef3bb7ae75f23e6080c5d5705583774f6c5f1ca6ed4420 src/http_confi 3fa73ae129fe552bd7de7afca0617a1c18bf4d3b36a39023bfec036bca17ffc5 src/http_proxy.rs f4f87f5c20cb0602d803e86a22c209756c3b1f22c532743ec7e0dbf5bb174a0e src/http_service.rs c604a0a764ffac6bae0c9aa15c9ef7022d35cb1f8c9159eb66257114445621c5 src/http_transport.rs -c5b7bcc0d08e48fd3805d6571428bb83b7fdc6f6e23a65bf689f079ad87bc32a src/lib.rs +5b27b6c719537af919bd6fe089574eba5e2c7bbe0d32249164914a4bb57a1427 src/lib.rs a21e1119ea0271b63935e92eb106ab6076f0035e6d3a06c21a352f152b9b37db src/logging.rs 58ce2a9daa36ac26b39c8f263a16f4fa8cc4e57c91bbbf5b24a6aad3f1a326e0 src/lua.rs a264e2765a31c8c096462551aca229530cad356e39e338370d1a0bdd97860680 src/main.rs 71d5d185900b9cde190e10e2f28371cd5042d98b5900b4385d823f724234fced src/mam.rs -0f780d95523b41c4ae242bd4a1fb6b65ff57826dca6d23ac73a1a1459609ec0a src/muc.rs -d8263eb28f5cdff362512a6b13217aa8f7574f4a3d54b7bcb6ba7930f8c353d8 src/muc_history.rs -4c151ffcdc36e4a3e680f859d4dc7ba16b0162d4f1fe6fb470df4c5e21197e5a src/muc_recovery.rs +d8b69775bcdb01597bcaffa6123c636a226922f349beaa274fe77ff1e36bc5ef src/muc.rs +c7ba46a140b9dce65cc573176265d6f77049ae657a70ffe59611a1c0f3ef89af src/muc_admin.rs +ed2f07105ffeb80396aaf91c7a1fe9a8dc88d17235d03a0796372c1797c1506a src/muc_history.rs +636f6ea7ad7cc98390ac775a93b469d2f3e0f9e138be5bd1e256cad5037c7183 src/muc_recovery.rs 3252884252158e1c4bd58922b97733f434c7d28baf059e63267632a3290f660e src/object_store.rs 7d7114a22ef3bf02f9caaf578f0a50d4f75b4dcd4b335b4cb8425d9716c97e71 src/pep_diagnostics.rs f09a6479b76c9c601a169b5f1f9cf1364e82df5ae27e4bab8d1b1428b5cad457 src/preauth.rs -a7333b31a57780c57f2d30620cdfaeb7b1215808865960bb7e5b595d3ad98f7c src/protocol.rs -761e29d6431fac5c2a4a24bcfca1f393949a5c55585fd6b0dd7a4f6e9f94a10d src/pubsub.rs +0d7fec83ff188f9092b1945951f2879d846d5f6aef1e657671e8c4eeb4beb226 src/protocol.rs +8dbb7a6b43a5f0562a775df42a959ab8badc466135a8b32da86cd79615b5acbf src/pubsub.rs 913cd033f60a68f6c7cf9b3adbaf76db1c5c9bc88a0599196d373b16b64c0a1e src/push.rs bec477f2520af6a9d7ca54e43eb12158b53e3cf09057653e504dfdeab956885e src/sasl.rs -10f24a2e8e776c7aa2475913e15b01b0f4e57f7a9de92660bafeddd912101d26 src/server.rs -894f11389bfc3fddc3508396d106146261376999f7adcef5a049458f6b4028cf src/sessions.rs +9cfef150f88a08ee0cfb33b63b621e5ecd058daa08f19119379c099f9c7f7e7a src/server.rs +c7450f9058528e3030df559840f87dae591a2b88be8503872956e9b78435d916 src/session_store.rs +a4e6faac3b5ab9b7e6e2c586387cb32d18a01fbd1ef65302cbc92ccbce934044 src/sessions.rs 71d7ce1036a091d8c27016ea7ce4cffedf904dfca9d1cc4891b7dc66a1e06a4e src/storage.rs 462b00edb2c1e02dd34524bafe4f82b5ef902028b44310ba31b085d31f4dc2aa src/tls_binding.rs a78592aa79d8f01c22af1457d0c3f5922863ccd3e8ebb1aa05e043cc44579b8a src/upload_migration.rs @@ -74,16 +76,21 @@ da2fc65e931ec74fbcdcd26d04f2cb073e2dc1e354139135166c79580973a477 tests/iq_error 05160f17f8098466a67c9b069c165dc9d94a84ab03a49896169f110baf8e869a tests/logging.rs dfc3429e3e755d4c99ec1bd8ee6fb0f1f6aaf86414d5adaca7e9e3b18c7fe3f7 tests/logging_network.py 329ccbd4faee6cbbfa92d2fa0248844721b7ffc033baae4ec2570e9893f5df9f tests/message_routing.rs -dafc2dd1e1d9e860482eb5bdf98c293842dea6a2790d27b94bf1885be3324690 tests/muc_access.rs -c28c7e9128cd1483df90dbccc7af0d756a5edc813bdff604b4560a349a844754 tests/muc_domain_bans.rs -b7d16e15e069649b9f0b055f0e0227117bb6d167c3a76cc713bd99fa19a6a60e tests/muc_extensions.rs -59561f914274b437497ff35be00ed535ea012d18c99b589c8f944ea365b7112d tests/muc_flow.rs +1134fefd5bb75884b096b8542c4f9745e64fd5dfcf87a6bba8d665aad2185a8a tests/muc_access.rs +8120c66b85c0884619e39eea0b8761e11b41f2ed14c5be00146e35ca4714a9a0 tests/muc_crash_network.py +168a8eb6ab892a379722dab0230efffb6585aaba639ad4691ec017626e1640d2 tests/muc_crash_state.rs +2150cc7f4dccf8f1277783f5ccc94d6d626f8cb34ae6d4a05bf249863af29939 tests/muc_domain_bans.rs +1d06b769b59012732ba04497a995f4f54df127f58c5f4f264a5df99589f31a94 tests/muc_extensions.rs +a8a01faf51bf82bce6cbb2616cdaabb6337047d1c5f17d5f39975c0528a1d5ae tests/muc_flow.rs b24bd920f096576c2009ff1ccc0366eb8734c5f0b2feb39f04ad7087268a94b9 tests/muc_history.rs 1f3df5f3f39143adc2b2a419fac0cd74b2229337ffa86570261d1f6ac61137a1 tests/muc_native.rs +3df2736ccfd25a6cab290df80ceb7474ea44bb02af6cf768a9216d6b8f7f8630 tests/muc_optional_admin.rs +5dc93407a658b45e504b89e26cfc8f495cd28ad90d0a308b7d228a472435ff9f tests/muc_protocol.rs ac1caa62a3cd91e74bd7100a5e542c404e97aec61a34e9627900b458c2ee3806 tests/muc_recovery.rs b5c2e179ee61287a8ec8b6bc593d8c960ca4f87cc71f2230e0c033fadd701ed3 tests/muc_restart_network.py -e89a1ec8bfd4608795f6457710622b12a1520628184bc3f033cc6062e01c25d4 tests/muc_restart_state.rs -13349e35ebaf65242cfb0bdbbccf0ea83acd80a1251312975141c2b74cccc1d7 tests/muc_state_native.rs +5a742e53aa4707b4a060eeb26242006a34344ab57b8cad36668190a8dc5d0674 tests/muc_restart_state.rs +7d8cc2b55bfccc92095c08b68dd6853b4ff2b7bfa460faf6c122e7fca09cca39 tests/muc_sm_load_network.py +2e718aaa0328ac2a5f5bffbef5cd758bbfc49301d31edc77db316df8c7610acf tests/muc_state_native.rs cd13d1481dba7725986c47b5e5eb606241c8bbc32ab05d53f536f4431d6f7a3d tests/pep_client_interop.rs 741cbcbf5552a8c3e5e7757a29de76ecd29da58f9d1184a35a075f1ed7aa5af9 tests/pep_client_network.py dd68c50d7d7cfd7871f69331a2787e0336dcab73762a82c599cee2a39920ae95 tests/pep_diagnostics.rs @@ -110,6 +117,8 @@ ddd9d5b46dc943138a334c64477fb11970b3d45e4cfbeaafc7348754f1e5e29e tests/sasl_acc a7d1519f4f44cc7bfad3d20bcfdf455e92abdd084feed493ffc9e0267a387740 tests/sasl_network.py 4748fa227743686f78a0fa0364735d2dda5995f8d70a79ad03c1aa1decb42978 tests/sasl_retry_network.py d8882b8aabd6ff603c81fbbc259eefa68772afb2b3eec2e003ac29efd65d146b tests/sasl_web_network.py +d9eef5c37fcd99404619d61dbf7a2bf7673087924d93e69b08769e716afe297b tests/sm_durable_slots.rs +0b74b2ff47b8ae681b5613bc87e914fdf8e5033156180df06ff2174df2781a5a tests/sm_restart_network.py 72f2d60e47e5295b82d497289b78925a64a1d986c70c277015ae228d211d32bb tests/storage_accounts.rs 5c38afd5f77b5774552d12c461902ffaae21de11735560c6f0088e3dda8afa58 tests/storage_compat.rs 8724991fdf22471952cf1a0fac863abe837069c93d3c8d2fa751af4f6bbc3e38 tests/tls_binding.rs diff --git a/docs/VALIDATION-0.8.0.md b/docs/VALIDATION-0.8.0.md new file mode 100644 index 0000000..ca44f44 --- /dev/null +++ b/docs/VALIDATION-0.8.0.md @@ -0,0 +1,50 @@ +# Проверка 0.8.0 + +Linux x86_64, Rust1.99.1, 2026-10-20. Итоговый полный прогон: +[verify.txt](validation-logs-0.8.0/verify.txt). +Структурированный отчёт: [validation-results.json](validation-results.json). + +| Проверка | Результат | +|---|---| +| Rust tests | 293 passed, 0 failed, 11 ignored | +| fmt / Clippy all-targets -D warnings / release | Успешно | +| MUC SIGKILL через настоящий STARTTLS | temporary/persistent комнаты, несколько ресурсов, show/status/roles, порядок истории, подтверждённые leave/kick/demotion/password/config, фиксированный/custom grace — успешно | +| SM между процессами | SIGKILL/SIGTERM, legacy SASL/SASL2, counters, ack/replay, неверные owner/token/h, resource conflict — успешно | +| MUC offline fanout | До аутентификации Bob новое сообщение Alice уже в приватной durable SM-очереди; после resume доставка без history delay — успешно | +| Отзыв SM | Удаление аккаунта подтверждается; после повторного создания старый SM-токен отклоняется | +| MUC+SM нагрузка | 100 аккаунтов, 500 TLS-ресурсов, 10 комнат, 25000 join presence; SIGKILL и resume представителей всех комнат — успешно | +| Native reference | 8 module/storage + 1 TLS/SASL EXTERNAL federation — успешно | +| Остальные сетевые регрессии | Android SASL, WSS/BOSH/proxy/altconnect, PEP/push/preauth, resource policies, upload/S3/migration — успешно | + +Нагрузка MUC+SM: connect 5.193 с; join 46.703 с; +полный сценарий 78.857 с; выборочный peak RSS 41.26 MiB. +Детали fanout, CPU, slots и replay: [muc-sm-load.json](validation-logs-0.8.0/muc-sm-load.json). +Это loopback smoke measurement, а не гарантия production capacity. + +SHA-256 итоговой release-сборки: `74882319fcb467dd1e1813ab61e85441ffd3dae2f9f7961b28fd98ec5da7c89a`. +Основной прогон: `XMPP_LOAD_CHECK=1 bash scripts/verify-local.sh`; native env описан +в scripts/prosody_compat/README.md. В этой среде дополнительно применены +CARGO_INCREMENTAL=0, CARGO_PROFILE_DEV_DEBUG=0, CARGO_PROFILE_TEST_DEBUG=0. + +Первый основной прогон остановился на пятисекундном readiness timeout нового +нагрузочного теста после успешных обычных и сетевых проверок. В самом тесте +таймаут увеличен до60секунд; нагрузка500 повторена с той же release-сборкой, +а native-проверки выполнены отдельно. verify.txt объединяет успешные части +этих запусков; первоначальный лог сохранён в initial-load-timeout.txt. + +В процессе проверки исправлены потеря сохранённых presence/history, защита +истёкших recovery claims, отсутствие успешного ответа при удалении аккаунта, +учёт stanza до SM enable и потеря MUC fanout до подключения другого участника. +Первоначальный тест последнего случая принимал позднюю историю за доставку; +итоговый тест проверяет именно private pending queue до аутентификации. + +Реальные TCP/TLS-сокеты после завершения процесса отсутствуют: требуется новое +защищённое аутентифицированное соединение. SM допускает повторную доставку при +неопределённом сетевом результате; это не exactly-once транзакция между всеми +хранилищами и сетью. Известные встроенные возможности MUC перенесены, произвольные +community Lua-модули не исполняются. Пределы записей и порядок восстановления: +[MUC-RECOVERY.md](MUC-RECOVERY.md). Полная замена всей установки и проверка +реальными клиентами этим не заявляются: [COMPATIBILITY.md](COMPATIBILITY.md). + +10GiB upload в0.8.0 не повторялся. Исторические испытания local/MinIO находятся +в VALIDATION-0.7.8.md и VALIDATION-0.7.9.md; их результаты не приписываются новой сборке. diff --git a/docs/VALIDATION.md b/docs/VALIDATION.md index 25684dc..ca44f44 100644 --- a/docs/VALIDATION.md +++ b/docs/VALIDATION.md @@ -1,59 +1,50 @@ -# Проверка 0.7.9 +# Проверка 0.8.0 -Linux x86_64, Rust 1.99.1, 2026-10-20. Полный итоговый прогон: -validation-logs-0.7.9/verify.txt. Структурированный отчёт: validation-results.json. +Linux x86_64, Rust1.99.1, 2026-10-20. Итоговый полный прогон: +[verify.txt](validation-logs-0.8.0/verify.txt). +Структурированный отчёт: [validation-results.json](validation-results.json). | Проверка | Результат | |---|---| -| cargo test --locked | 265 passed, 0 failed, 11 ignored | +| Rust tests | 293 passed, 0 failed, 11 ignored | | fmt / Clippy all-targets -D warnings / release | Успешно | -| Upload migration | local → S3 A → S3 B → local, SHA-256, прежние URL/JWT/HEAD, native metadata/source, dry run, lock, прерывание/resume и startup barrier — успешно | -| S3 recovery | Intent до initiation, отсутствие UploadId, pagination и exact-key cleanup без удаления чужого prefix, ambiguous completion, quarantine и late commit — успешно | -| Конкурентный PUT | Регрессия: захват слота читает свежие completion/quarantine flags атомарно — успешно | -| Реальная передача через MinIO | 10,737,418,240 байт PUT и полный GET; SHA-256 совпал; объект: 1280 multipart parts | -| Время большого файла | PUT 48.453 с; GET 13.710 с | -| Выборочный RSS каждые 50 мс | Rust 101.14 MiB; клиент 23.21 MiB; MinIO 475.84 MiB | -| MinIO дополнительные проверки | Range за 4/5 GiB и хвост, restart/read/reuse409, SIGKILL после сохранённой части и abort при recovery — успешно | +| MUC SIGKILL через настоящий STARTTLS | temporary/persistent комнаты, несколько ресурсов, show/status/roles, порядок истории, подтверждённые leave/kick/demotion/password/config, фиксированный/custom grace — успешно | +| SM между процессами | SIGKILL/SIGTERM, legacy SASL/SASL2, counters, ack/replay, неверные owner/token/h, resource conflict — успешно | +| MUC offline fanout | До аутентификации Bob новое сообщение Alice уже в приватной durable SM-очереди; после resume доставка без history delay — успешно | +| Отзыв SM | Удаление аккаунта подтверждается; после повторного создания старый SM-токен отклоняется | +| MUC+SM нагрузка | 100 аккаунтов, 500 TLS-ресурсов, 10 комнат, 25000 join presence; SIGKILL и resume представителей всех комнат — успешно | | Native reference | 8 module/storage + 1 TLS/SASL EXTERNAL federation — успешно | -| Нагрузка | 100 аккаунтов, 500 TLS клиентов, 5000 ping,5000 сообщений, 10000 MAM; failures=[] | +| Остальные сетевые регрессии | Android SASL, WSS/BOSH/proxy/altconnect, PEP/push/preauth, resource policies, upload/S3/migration — успешно | -Итоговая сборка SHA-256: 24c0dca637e7ce4e238ef6becad16bb5a18a33546554b0eecf310fd8927f021c. MinIO report автоматически записывает -тот же hash. Большая передача повторена после последних изменений сервера. -Полный прогон включает исправление гонки устаревшего snapshot при захвате слота. -Отдельные первые прогоны нашли и помогли исправить нестабильный fingerprint -миграции и пропуск немедленного reconciliation под ещё активным claim. -Финальный результат не содержит этих ошибок. RSS — выборочный максимум, а не -гарантия точного пика для любой нагрузки. Временные 10 GiB объекты после проверки удалены. +Нагрузка MUC+SM: connect 5.193 с; join 46.703 с; +полный сценарий 78.857 с; выборочный peak RSS 41.26 MiB. +Детали fanout, CPU, slots и replay: [muc-sm-load.json](validation-logs-0.8.0/muc-sm-load.json). +Это loopback smoke measurement, а не гарантия production capacity. -## Точная граница MinIO проверки +SHA-256 итоговой release-сборки: `74882319fcb467dd1e1813ab61e85441ffd3dae2f9f7961b28fd98ec5da7c89a`. +Основной прогон: `XMPP_LOAD_CHECK=1 bash scripts/verify-local.sh`; native env описан +в scripts/prosody_compat/README.md. В этой среде дополнительно применены +CARGO_INCREMENTAL=0, CARGO_PROFILE_DEV_DEBUG=0, CARGO_PROFILE_TEST_DEBUG=0. -Использован настоящий upstream MinIO RELEASE.2025-04-22T22-12-26Z, собранный -Go1.24.3 из официального GitHub archive. Немодифицированная сборка в этой среде -не запускается: net.Interfaces/netlinkrib запрещён с EPERM. Тестовая сборка -добавляет только fallback на 127.0.0.1 для этой ошибки перечисления интерфейсов. -S3, authentication, multipart и storage code не изменены. Это не qualification -немодифицированного MinIO в обычной production среде. +Первый основной прогон остановился на пятисекундном readiness timeout нового +нагрузочного теста после успешных обычных и сетевых проверок. В самом тесте +таймаут увеличен до60секунд; нагрузка500 повторена с той же release-сборкой, +а native-проверки выполнены отдельно. verify.txt объединяет успешные части +этих запусков; первоначальный лог сохранён в initial-load-timeout.txt. -Точный diff, hashes исходного архива, обеих сборок и adapter: -validation-logs-0.7.9/minio-sandbox-compat.patch и minio-provenance.json. -Полный результат и 1280-part ETag: validation-logs-0.7.9/minio.json. -Проверен single-node loopback с HTTP к MinIO и CA-verified HTTPS к gateway. -AWS account, distributed MinIO и production сеть не проверены. +В процессе проверки исправлены потеря сохранённых presence/history, защита +истёкших recovery claims, отсутствие успешного ответа при удалении аккаунта, +учёт stanza до SM enable и потеря MUC fanout до подключения другого участника. +Первоначальный тест последнего случая принимал позднюю историю за доставку; +итоговый тест проверяет именно private pending queue до аутентификации. -## Повторение +Реальные TCP/TLS-сокеты после завершения процесса отсутствуют: требуется новое +защищённое аутентифицированное соединение. SM допускает повторную доставку при +неопределённом сетевом результате; это не exactly-once транзакция между всеми +хранилищами и сетью. Известные встроенные возможности MUC перенесены, произвольные +community Lua-модули не исполняются. Пределы записей и порядок восстановления: +[MUC-RECOVERY.md](MUC-RECOVERY.md). Полная замена всей установки и проверка +реальными клиентами этим не заявляются: [COMPATIBILITY.md](COMPATIBILITY.md). -Полный прогон: XMPP_LOAD_CHECK=1 bash scripts/verify-local.sh с native env -согласно scripts/prosody_compat/README.md. В этой среде дополнительно применены -CARGO_INCREMENTAL=0 CARGO_PROFILE_DEV_DEBUG=0 CARGO_PROFILE_TEST_DEBUG=0. -MinIO отдельно: python3 tests/upload_minio_network.py --binary target/release/rust-xmpp ---minio /path/to/minio --report /tmp/minio-report.json. При test adapter передайте ---minio-compat-patch /path/to/patch, чтобы он попал в результат. Можно задать -MINIO_BINARY перед verify-local.sh для opt-in передачи10 GiB; нужны место и MinIO executable. - -Инструкции migration/recovery: HTTP-UPLOAD.md. Source всегда сохраняется; -незавершённая миграция блокирует startup, неопределённый Complete quarantines -только свой slot. Потеря ownership metadata не позволяет безопасно удалить -произвольные чужие multiparts; bucket lifecycle остаётся дополнительной защитой. -Сетевой сбой с HEAD404 не выдаётся за доказанную неудачу удалённого commit. -Полная замена Prosody, настоящие production клиенты и DNSSEC этим не заявляются; -общие границы — COMPATIBILITY.md. +10GiB upload в0.8.0 не повторялся. Исторические испытания local/MinIO находятся +в VALIDATION-0.7.8.md и VALIDATION-0.7.9.md; их результаты не приписываются новой сборке. diff --git a/docs/validation-logs-0.8.0/initial-load-timeout.txt b/docs/validation-logs-0.8.0/initial-load-timeout.txt new file mode 100644 index 0000000..4f5441d --- /dev/null +++ b/docs/validation-logs-0.8.0/initial-load-timeout.txt @@ -0,0 +1,4241 @@ + Finished `test` profile [unoptimized] target(s) in 0.09s + Running unittests src/lib.rs (target/debug/deps/rust_xmpp-c18b5fae509f7258) + +running 46 tests +test federation::tests::federation_domains_are_dns_names_and_case_insensitive ... ok +test federation::tests::starttls_must_be_an_immediate_stream_feature ... ok +test federation::tests::external_must_be_in_the_advertised_mechanisms ... ok +test http_config::tests::external_prefix_and_standard_port ... ok +test http_config::tests::invalid_paths_types_urls_and_conflicts_are_errors ... ok +test federation::tests::stream_restarts_compare_canonical_domains ... ok +test http_config::tests::mounts_inherit_per_app_and_expand_virtual_host ... ok +test http_config::tests::literal_pchars_and_percent_encoding_are_supported ... ok +test http_config::tests::routes_hosts_and_default_without_overriding_known_hosts ... ok +test http_proxy::tests::config_validation_and_network_boundaries ... ok +test http_proxy::tests::empty_native_lua_table_disables_proxy_trust ... ok +test http_proxy::tests::legacy_chain_uses_rightmost_untrusted_and_tls_is_preserved ... ok +test http_proxy::tests::untrusted_socket_ignores_spoofed_headers ... ok +test http_proxy::tests::malformed_forwarded_and_unknown_identifiers_are_ignored ... ok +test http_proxy::tests::forwarded_mode_stops_at_first_untrusted_hop ... ok +test http_proxy::tests::forwarded_tls_termination_cannot_upgrade_a_plaintext_chain_hop ... ok +test http_transport::tests::bosh_processing_capacity_is_bounded ... ok +test http_transport::tests::independent_framing ... ok +test http_transport::tests::websocket_preserves_inherited_namespaces_and_spaced_declarations ... ok +test logging::tests::console_aliases_share_one_sink_with_combined_levels ... ok +test http_transport::tests::configured_mount_host_origin_and_secure_dispatch ... ok +test sasl::tests::reject_malformed_and_downgrade ... ok +test sasl::tests::rfc5802_sha1_vector ... ok +test server::authorization_tests::http_interfaces_follow_secure_override_wildcards_and_global_fallback ... ok +test server::authorization_tests::pep_diagnostics_count_only_first_item_devices_without_logging_ids ... ok +test server::authorization_tests::pep_diagnostics_exclude_payloads_and_identifiers ... ok +test http_service::tests::upload_claim_refreshes_completion_state_after_an_earlier_snapshot ... ok +test sessions::push_timeout_tests::first_important_push_shortens_extended_hibernation_once ... ok +test sessions::tests::acknowledgement_wraps ... ok +test sessions::tests::graceful_disconnect_is_not_resumable ... ok +test sessions::tests::resume_replays_only_unacked_and_checks_owner ... ok +test sessions::tests::traffic_before_sm_enable_is_not_counted ... ok +test upload_migration::tests::local_spool_checks_size_and_hash_and_preserves_source ... ok +test upload_migration::tests::pending_and_corrupt_journals_block_startup ... ok +test wire::tests::arbitrary_prefix_and_inherited_namespaces ... ok +test wire::tests::cdata_and_comments_frame_without_counting_brackets ... ok +test wire::tests::declarations_rejected ... ok +test wire::tests::fragmented_and_pipelined ... ok +test wire::tests::invalid_namespace_and_declarations_rejected ... ok +test http_service::tests::upload_internal_mount_is_independent_of_advertised_proxy_prefix ... ok +test sasl::tests::sha256_independent_python_vector ... ok +test http_service::tests::abandoned_slots_release_quota_without_pruning_existing_or_active_files ... ok +test sasl::tests::plus_channel_binding_and_ssdp_are_authenticated ... ok +test server::authorization_tests::upload_requires_registered_local_account_or_explicit_remote_access ... ok +test sasl::tests::wrong_proof_nonce_binding_and_duplicates ... ok +test admin::tests::real_admin_xml_protocol_over_duplex ... ok + +test result: ok. 46 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.59s + + Running unittests src/main.rs (target/debug/deps/rust_xmpp-c4e45dd69a11a11d) + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/admin_socket.rs (target/debug/deps/admin_socket-61170eb8eabf7ff1) + +running 1 test +test prosody_wire_commands_password_prompt_and_safe_errors ... ignored, requires AF_UNIX socket permission; run on target host with --ignored + +test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/archive_mam.rs (target/debug/deps/archive_mam-66e5d9709846757b) + +running 14 tests +test archive_larger_than_128mib_streams ... ignored, large-file scalability regression; run explicitly +test corrupt_archive_reports_server_error_and_namespace_stripping_is_precise ... ok +test mam_preferences_persist ... ok +test legacy_records_binary_cache_and_roundtrip ... ok +test append_is_incremental_and_recovers_torn_tail ... ok +test archive_roundtrip_preserves_default_namespace_resets ... ok +test equal_cursors_and_normalized_query_jids ... ok +test muc_archive_filters_stanza_kind_instead_of_sender_jid ... ok +test smart_enable_and_message_selection ... ok +test real_archive_sid_and_sender_privacy ... ok +test zero_page_dates_and_invalid_forms ... ok +test mam_paging_filters_and_forbidden ... ok +test extended_ids_ranges_flip_and_metadata ... ok +test namespaces_expiry_and_concurrent_append ... ok + +test result: ok. 13 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.04s + + Running tests/auth.rs (target/debug/deps/auth-3fecc5005dc5e6c7) + +running 3 tests +test traversal_and_malicious_account_records_rejected ... ok +test create_and_read_hashed_accounts ... ok +test authentication_prepares_names_without_relaxing_account_management ... ok + +test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.11s + + Running tests/cli.rs (target/debug/deps/cli-a1c004101734b0cf) + +running 2 tests +test server_cannot_be_mistaken_for_running_service ... ok +test conversion_preserves_source_and_refuses_overwrite ... ok + +test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s + + Running tests/config.rs (target/debug/deps/config-bb0cdd36fb8d5839) + +running 12 tests +test include_cycles_rejected ... ok +test component_can_explicitly_enable_global_modules ... ok +test storage_paths_encode_like_prosody ... ok +test include_has_own_global_scope_and_parent_scope_is_restored ... ok +test declarations_and_overrides ... ok +test tables_cannot_recurse_forever ... ok +test supplied_configuration_scopes_arithmetic_and_modules ... ok +test runtime_capabilities_are_unavailable ... ok +test all_formats_round_trip_actual_config ... ok +test supplied_config_matches_original_prosody_loader ... ok +test malformed_values_rejected ... ok +test loops_are_bounded ... ok + +test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s + + Running tests/csi.rs (target/debug/deps/csi-ef5a8b30cab0cbf7) + +running 2 tests +test bounded_queue_flush_delay_activity_and_grace ... ok +test native_importance_rules ... ok + +test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/csi_native.rs (target/debug/deps/csi_native-7a0bbbead7a19df9) + +running 1 test +test native_prosody_csi_importance_matches ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA + +test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/data_lock.rs (target/debug/deps/data_lock-897044c51991a534) + +running 2 tests +test child_process_probe ... ok +test excludes_another_process_and_releases_on_drop ... ok + +test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/debug_legacy.rs (target/debug/deps/debug_legacy-3c721d03a5eecf02) + +running 1 test +test debug_empty_legacy_bind ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s + + Running tests/federation_tls.rs (target/debug/deps/federation_tls-6dc128df24b929d8) + +running 3 tests +test native_prosody_tls_external_bidirectional ... ignored, requires native Prosody cafd74b9c5ea and Lua TLS dependencies +test mutual_tls_external_delivery_and_certificate_identity_rejection ... ok +test reuses_connections_serializes_writes_and_retires_idle_or_closed_peers ... ok + +test result: ok. 2 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 1.48s + + Running tests/gajim_features.rs (target/debug/deps/gajim_features-f6c3a49b9451f82c) + +running 6 tests +test policy_catalog_selects_default_policy_and_maps_display_and_explicit_label ... ok +test security_catalog_default_is_a_real_label_and_module_can_be_disabled ... ok +test actual_example_policy_configuration_exposes_classifications_as_catalog_labels ... ok +test unsupported_security_policy_configuration_returns_explicit_error ... ok +test security_catalogs_serve_both_versions_and_preserve_requested_target ... ok +test malformed_or_unknown_policy_catalog_schemas_are_rejected ... ok + +test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/http_altconnect.rs (target/debug/deps/http_altconnect-9136542484c4f432) + +running 3 tests +test native_link_order_schemes_and_loaded_module_gates ... ok +test public_prefix_and_host_paths_inherit_independently ... ok +test bad_advertisement_types_and_route_collisions_are_rejected ... ok + +test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/http_transport.rs (target/debug/deps/http_transport-ba31449c82cc1657) + +running 10 tests +test configured_origin_is_enforced ... ok +test bosh_preserves_namespace_inherited_from_body ... ok +test transport_paths_and_cors_preflight_match_prosody ... ok +test bosh_session_retries_restart_termination ... ok +test bosh_termination_waits_for_graceful_cleanup_before_reconnect ... ok +test bosh_reorders_two_requests_without_replaying_stanzas ... ok +test websocket_frames_are_independent_xml ... ok +test websocket_close_allows_graceful_engine_cleanup ... ok +test websocket_disconnect_delivers_eof_without_graceful_close ... ok +test bosh_retry_survives_aborted_http_request_without_replaying_stanzas ... ok + +test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s + + Running tests/http_upload.rs (target/debug/deps/http_upload-ff5554e98fd3b948) + +running 5 tests +test https_endpoint_uses_real_tls ... ok +test percent_escape_case_and_equivalent_url_spelling ... ok +test persisted_prosody_archive_and_hs256_slot_survive_without_sidecar ... ok +test expired_upload_releases_quota ... ok +test upload_authorization_streaming_ranges_and_restart ... ok + +test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s + + Running tests/iq_errors.rs (target/debug/deps/iq_errors-f6728f43bbee20cf) + +running 2 tests +test pep_errors_identify_the_account_and_echo_the_request ... ok +test server_errors_without_target_remain_unaddressed_and_escape_attributes ... ok + +test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/logging.rs (target/debug/deps/logging-49936a1290966f86) + +running 10 tests +test native_console_shorthands_are_accepted ... ok +test rejects_malformed_configuration ... ok +test json_records_and_bounded_ranges ... ok +test failed_reopen_keeps_all_original_handles ... ok +test filters_appends_escapes_and_redacts ... ok +test reopen_rotated_files_updates_clones ... ok +test explicit_sink_levels_select_exactly_and_deduplicate ... ok +test shared_sink_unions_levels_and_preserves_distinct_destinations ... ok +test overlapping_shorthand_destinations_receive_each_record_once ... ok +test cloned_loggers_serialize_records ... ok + +test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s + + Running tests/message_routing.rs (target/debug/deps/message_routing-e8cb56e9c75084cc) + +running 2 tests +test unknown_resource_falls_back_to_available_bare_jid ... ok +test headline_uses_all_nonnegative_available_resources_and_errors_never_fallback ... ok + +test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/muc_access.rs (target/debug/deps/muc_access-3d45cfc19a946c63) + +running 3 tests +test binary_occupant_id_salt_survives_saves_and_restarts ... ok +test moderators_cannot_kick_or_demote_other_moderators ... ok +test nested_affiliations_do_not_fall_back_to_obsolete_flat_entries ... ok + +test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s + + Running tests/muc_crash_state.rs (target/debug/deps/muc_crash_state-f6de95e841b62f79) + +running 7 tests +test safe_presence_checkpoint_sanitization_is_idempotent ... ok +test foreign_stanzas_do_not_initialize_or_rewrite_muc_checkpoint ... ok +test durable_disconnect_removes_last_temporary_room_without_shutdown_export ... ok +test journal_failure_returns_no_routing_and_rolls_back_role_mutation ... ok +test acknowledged_kick_and_room_destruction_cannot_resurrect_membership ... ok +test dormant_deadline_stays_fixed_when_another_occupant_recovers_and_sends ... ok +test temporary_membership_and_full_bounded_history_survive_ungraceful_loss ... ok + +test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s + + Running tests/muc_domain_bans.rs (target/debug/deps/muc_domain_bans-bf16a8c751b147a4) + +running 2 tests +test native_domain_bans_block_remote_users_but_allow_explicit_members ... ok +test applying_domain_ban_removes_remote_occupants_and_blocks_rejoin ... ok + +test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s + + Running tests/muc_extensions.rs (target/debug/deps/muc_extensions-8aa1a3ac3d2930b2) + +running 10 tests +test disabled_optional_vcard_and_occupant_ids_are_not_advertised_or_emitted ... ok +test broadcast_roles_hide_visitors_and_configuration_announces_transition ... ok +test messages_cannot_spoof_room_identity_hats_or_occupant_identifiers ... ok +test mam_all_rooms_presence_logging_public_queries_and_optional_totals ... ok +test large_optional_history_does_not_prevent_checkpointing_membership ... ok +test restricted_private_messages_allow_self_and_optional_moderators ... ok +test offline_reserved_affiliates_follow_anonymity_and_roominfo_counts_nicknames ... ok +test language_config_sections_discovery_and_native_affiliation_hats ... ok +test recovery_claim_is_durable_and_unrelated_disconnect_keeps_temporary_claims ... ok +test explicit_new_nickname_consumes_old_proof_and_pending_nicks_are_reserved ... ok + +test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s + + Running tests/muc_flow.rs (target/debug/deps/muc_flow-358a28db146dbe13) + +running 18 tests +test configured_lock_timeout_expires_without_owner_submission ... ok +test iq_response_requires_expected_sender ... ok +test multiple_resources_share_nick_and_private_delivery ... ok +test join_lock_chat_leave ... ok +test authorization_and_conflict ... ok +test nick_invite_destroy_and_local_creation ... ok +test occupant_id_is_stable_and_spoofed_ids_removed ... ok +test preserves_unknown_binary_mixed_room_fields ... ok +test restored_temporary_room_is_deleted_after_last_disconnect ... ok +test native_muc_archive_type_and_anonymity_are_preserved ... ok +test persistence_roundtrip ... ok +test maintenance_expires_idle_archives_and_tombstones ... ok +test persistent_destroy_creates_prosody_tombstone ... ok +test switching_to_members_only_removes_unaffiliated_users ... ok +test archive_history_and_permissions ... ok +test room_vcard_owner_only_and_avatar_presence ... ok +test visitor_voice_request_cannot_spoof_identity_or_grant_itself_voice ... ok +test reserved_nickname_blocks_other_users ... ok + +test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s + + Running tests/muc_history.rs (target/debug/deps/muc_history-f67a7a69e0bfd957) + +running 10 tests +test capacity_changes_trim_and_zero_disables_history ... ok +test only_direct_history_children_are_parsed ... ok +test maxchars_counts_transmitted_utf8_bytes_including_address_and_delay ... ok +test explicit_count_and_zero_limit ... ok +test snapshot_restores_last_message_without_adding_another_delay ... ok +test replay_carries_room_delay_and_recipient ... ok +test ordinary_history_is_bounded_and_returns_oldest_first ... ok +test subjects_and_hints_follow_native_history_eligibility ... ok +test since_and_seconds_use_stricter_cutoff_inclusive ... ok +test default_count_applies_only_without_valid_explicit_constraints ... ok + +test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/muc_native.rs (target/debug/deps/muc_native-f792fb43c05f2836) + +running 1 test +test actual_prosody_muc_mam_reads_rust_and_writes_native_archive ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA + +test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/muc_optional_admin.rs (target/debug/deps/muc_optional_admin-cda5bde07d3a924e) + +running 4 tests +test default_registration_denies_unaffiliated_users ... ok +test configured_tombstone_expiry_allows_immediate_recreation ... ok +test optional_registration_grants_membership_and_enforces_reserved_nickname ... ok +test administration_commands_recheck_authority_bind_sessions_and_update_live_rooms ... ok + +test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s + + Running tests/muc_protocol.rs (target/debug/deps/muc_protocol-5f42030bfe1d6522) + +running 5 tests +test ordinary_presence_extensions_survive_but_client_identity_is_filtered ... ok +test subject_with_body_remains_an_ordinary_groupchat_message ... ok +test probes_and_invalid_presence_cannot_join_or_rename ... ok +test error_messages_kick_only_on_delivery_failure_and_presence_errors_kick ... ok +test room_creation_policies_apply_only_to_new_rooms ... ok + +test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s + + Running tests/muc_recovery.rs (target/debug/deps/muc_recovery-226d89017c6b58d8) + +running 7 tests +test claim_is_one_time_and_does_not_change_untrusted_role ... ok +test pending_snapshot_keeps_original_checkpoint_time ... ok +test recovery_claim_requires_exact_authenticated_resource_and_expires ... ok +test native_last_message_roundtrip_preserves_namespaces_and_rejects_other_rooms ... ok +test native_checkpoint_roundtrip_filters_sensitive_extensions ... ok +test oversized_status_never_prevents_membership_checkpoint ... ok +test configuration_fingerprint_is_independent_of_lua_table_iteration_order ... ok + +test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s + + Running tests/muc_restart_state.rs (target/debug/deps/muc_restart_state-5cb216a0bea9ced1) + +running 3 tests +test unrelated_disconnect_does_not_delete_dormant_temporary_room ... ok +test changed_configuration_invalidates_auto_recovery_without_disclosing_password ... ok +test repeated_restart_keeps_dormant_claim_and_deadline_without_ghost_routing ... ok + +test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s + + Running tests/muc_state_native.rs (target/debug/deps/muc_state_native-e120e43e0108ea7f) + +running 1 test +test actual_prosody_restores_rust_checkpoint_and_rust_reads_native_freeze ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA + +test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/pep_client_interop.rs (target/debug/deps/pep_client_interop-1553fc66a4e090e1) + +running 7 tests +test native_component_notification_type_applies_to_events_and_subscription_replay ... ok +test missing_own_omemo_bundle_returns_recoverable_item_not_found ... ok +test publish_options_match_implicit_notification_defaults_on_old_nodes ... ok +test migrated_native_configuration_can_roundtrip_access_model_edit ... ok +test avatar_and_omemo_publish_options_support_readback_and_caps_notifications ... ok +test native_itemreply_controls_publisher_visibility_in_reads_and_replays ... ok +test native_open_and_subscriber_publish_models_preserve_outcast_and_blocking_checks ... ok + +test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.24s + + Running tests/pep_diagnostics.rs (target/debug/deps/pep_diagnostics-98b92a168aa66315) + +running 6 tests +test nonempty_xml_can_be_an_empty_android_device_list ... ok +test avatar_classification_does_not_inspect_or_expose_avatar_data ... ok +test arbitrary_node_payload_and_wrong_namespace_do_not_leak ... ok +test only_first_direct_item_is_parsed_and_protocols_are_distinct ... ok +test payloadless_notification_is_visible_without_identifiers ... ok +test signed_integer_limits_and_duplicates_match_java_parser ... ok + +test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/pep_discovery.rs (target/debug/deps/pep_discovery-3e3fb8c04ba0a062) + +running 4 tests +test standalone_component_does_not_claim_pep_automatic_subscriptions ... ok +test account_disco_advertises_pep_without_requiring_a_node ... ok +test account_discovery_does_not_intercept_server_or_resource_caps ... ok +test node_discovery_keeps_node_identity_errors_and_access_checks ... ok + +test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s + + Running tests/pep_item_order.rs (target/debug/deps/pep_item_order-77f6b485fd7811b4) + +running 2 tests +test native_prosody_orders_retained_pep_items_newest_first ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA +test first_pep_item_is_current_device_list_even_with_retained_old_items ... ok + +test result: ok. 1 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.10s + + Running tests/preauth.rs (target/debug/deps/preauth-4dd44275632445e0) + +running 10 tests +test duplicate_or_wrong_namespace_tokens_do_not_qualify ... ok +test standard_adhoc_command_returns_contact_uri ... ok +test unknown_tokens_do_not_create_invite_stores_and_disabled_accounts_cannot_issue ... ok +test prosody_numeric_expiry_is_consumed_and_other_entries_preserved ... ok +test concurrent_redemption_has_exactly_one_winner ... ok +test unknown_client_token_is_preserved_on_remote_and_pending_delivery ... ok +test identity_scope_does_not_burn_on_wrong_sender_or_leak_to_prosody ... ok +test invitations_expire_are_single_use_and_owner_scoped ... ok +test valid_token_autoapproves_and_sends_reciprocal_request ... ok +test local_invitation_updates_both_rosters_without_granting_reverse_subscription ... ok + +test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s + + Running tests/preauth_native.rs (target/debug/deps/preauth_native-36f66c5afb8f3b7f) + +running 1 test +test native_prosody_invitation_tokens_roundtrip ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA + +test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/pubsub_native.rs (target/debug/deps/pubsub_native-5bfe7997d9ab4681) + +running 1 test +test native_prosody_pep_reads_rust_and_rust_reads_native ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA + +test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/pubsub_persistence.rs (target/debug/deps/pubsub_persistence-96d57930ef04b71a) + +running 18 tests +test modern_bookmarks_notify_legacy_capability ... ok +test native_string_max_items_satisfies_numeric_publish_precondition ... ok +test configurable_limits_component_creation_and_publisher ... ok +test configure_requires_owner ... ok +test capability_discovery_replays_and_filters_notifications ... ok +test nonpersistent_items_stay_in_memory_and_can_be_made_persistent ... ok +test open_model_and_notifications ... ok +test reads_prosody_legacy_fixture ... ok +test full_jid_block_applies_to_reads_subscription_replays_and_events ... ok +test pep_persists_namespaces_and_enforces_owner ... ok +test publish_options_conflict_is_recoverable_and_preserves_item ... ok +test remote_unavailable_is_scoped_to_addressed_owner_and_cancels_pending ... ok +test roster_presence_access_and_foreign_subscription_denied ... ok +test remote_caps_replay_and_open_node_privacy_revoke ... ok +test subscription_options_disable_events_and_require_subscriber ... ok +test payload_policy_applies_to_subscription_and_caps_replays ... ok +test native_notification_fields_and_retract_policy_are_independent ... ok +test component_default_retention_matches_prosody_twenty_items ... ok + +test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.24s + + Running tests/push.rs (target/debug/deps/push-e74594c0e96b1321) + +running 7 tests +test native_push_body_lookup_excludes_extensions ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA +test foreign_account_cannot_register ... ok +test queue_coalesces_and_importance_matches_native ... ok +test push_summary_never_copies_foreign_namespace_body ... ok +test reenable_cancels_old_errors_and_failure_counts_are_per_account ... ok +test stable_client_registration_and_targeted_notification ... ok +test registrations_notifications_and_authenticated_errors ... ok + +test result: ok. 6 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.12s + + Running tests/reference_prosody.rs (target/debug/deps/reference_prosody-fe62c7cdfcb258f2) + +running 1 test +test real_prosody_storage_and_auth_roundtrip ... ignored, requires native supplied Prosody source; run scripts/prosody_compat/verify.sh + +test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/resource_sessions.rs (target/debug/deps/resource_sessions-c00bb0104e05dfa7) + +running 7 tests +test increment_skips_occupied_suffixes_and_preserves_sessions ... ok +test invalid_resume_owner_or_ack_does_not_evict_active_session ... ok +test kick_new_leaves_existing_session_unchanged ... ok +test replacement_revokes_hibernating_resume_and_survives_old_cleanup ... ok +test random_conflicts_get_distinct_resources_for_same_owner ... ok +test concurrent_default_binds_replace_atomically ... ok +test active_resume_preserves_state_and_replaces_transport_notifier ... ok + +test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s + + Running tests/sasl_accounts.rs (target/debug/deps/sasl_accounts-c2c6690c56d78954) + +running 1 test +test disabled_legacy_and_unicode_accounts ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.63s + + Running tests/sm_durable_slots.rs (target/debug/deps/sm_durable_slots-cf591ebfb421691b) + +running 11 tests +test corrupt_committed_slot_fails_recovery_closed ... ok +test durable_tokens_and_private_pending_output_have_owner_only_permissions ... ok +test recovery_discards_owned_crash_temps_and_keeps_last_committed_slot ... ok +test session_reference_does_not_keep_store_locked_or_allow_unpersisted_writes ... ok +test disconnected_deadline_is_fixed_across_recovery ... ok +test durable_counters_wrap_without_accepting_stale_acknowledgements ... ok +test shutdown_freeze_retires_old_transport_before_cleanup ... ok +test independent_hubs_with_identical_connection_names_keep_their_own_slots ... ok +test restart_restores_owner_presence_and_only_unacknowledged_output ... ok +test graceful_close_conflict_account_purge_and_expiration_remove_tokens ... ok +test store_has_one_process_owner_and_enforces_output_byte_bound ... ok + +test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.26s + + Running tests/storage_accounts.rs (target/debug/deps/storage_accounts-1d75e90b4e9212f9) + +running 20 tests +test account_purge_refuses_symlink_store_without_touching_other_files ... ok +test broken_roster_is_not_overwritten ... ok +test inbound_subscription_requires_pending_to_grant_to ... ok +test blocklist_enforcement_api ... ok +test domain_roster_and_block_jid_normalization ... ok +test malformed_roster_iq_never_mutates ... ok +test malformed_legacy_vcard_and_private_bookmarks_rejected ... ok +test private_and_vcard_authorization ... ok +test privacy_migration_only_default_deny_jids ... ok +test reads_timestamp_blocklist_and_keeps_metadata ... ok +test roster_empty_name_and_foreign_group_ignored ... ok +test roster_preserves_subscription_and_metadata ... ok +test purge_account_exact_files_preserves_others_and_extras ... ok +test subscription_handshake_and_cancel ... ok +test legacy_bookmarks_respect_host_limit_and_read_over_256 ... ok +test bookmarks_private_pep_bidirectional_and_private ... ok +test legacy_migration_clears_source_after_success ... ok +test vcard_pep_conversion_and_avatar ... ok +test password_change_after_purge_never_recreates_account ... ok +test creation_and_purge_are_serialized ... ok + +test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.36s + + Running tests/storage_compat.rs (target/debug/deps/storage_compat-147836efd1c208ca) + +running 6 tests +test empty_namespace_preserved ... ok +test mixed_binary_roundtrip ... ok +test stanza_roundtrip ... ok +test path_and_atomic_update ... ok +test rejects_cycles_code_and_bad_files ... ok +test concurrent_updates_do_not_lose_entries ... ok + +test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s + + Running tests/tls_binding.rs (target/debug/deps/tls_binding-5e699c7900a4d099) + +running 4 tests +test malformed_der_and_pss_parameters_fail_closed ... ok +test unknown_and_eddsa_algorithms_fail_closed ... ok +test ecdsa_uses_certificate_signature_hash ... ok +test rsa_signature_digest_and_weak_hash_upgrade ... ok + +test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.30s + + Running tests/tls_plus_network.rs (target/debug/deps/tls_plus_network-b82a1b9340e268e4) + +running 2 tests +test disabling_plus_hides_bindings_and_accepts_scram_y_with_mechanisms_only_ssdp ... ok +test starttls_scram_plus_binds_real_tls_and_authenticates_ssdp_sasl1_and_sasl2 ... ok + +test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.37s + + Doc-tests rust_xmpp + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Finished `dev` profile [unoptimized] target(s) in 0.10s + Finished `release` profile [optimized] target(s) in 0.11s +PASS: integrated TCP roster/subscriptions, client IQ routing, CSI buffering/keepalive flush, MAM, blocking, OMEMO PEP, MUC, offline replay and SM resumption +PASS: graceful SIGTERM shutdown +PASS: independent SCRAM-SHA-1 over TLS, SASL1/SASL2, SSDP verification, server signatures and wrong-password rejection +PASS: independent SCRAM-SHA-256 over TLS, SASL1/SASL2, SSDP verification, server signatures and wrong-password rejection +PASS: Android TLS1.2 selector, TLS1.2/1.3 SCRAM SHA1/256 PLUS, SASL1/2, SSDP on/off and invalid binding rejection +PASS: JSON file logging, TLS/auth/bind correlation, rejection reasons, secret redaction and SIGHUP rotation +PASS: 20 TLS1.2/1.3 SASL1/2 cases: prepared PLAIN identities and canonical binds, invalid authz rejection, SCRAM abort/retry and active exchange restart +PASS: WSS SCRAM-SHA-256 SASL1/SASL2 with GS2 y, absent CB/PLUS, SSDP without CB separator, server signatures, bind and ping +PASS: HTTPS-only configured interfaces (127.0.0.1,::1), verified TLS, reproduced original Origin 403 then allowed Converse Origin 101, xmpp subprotocol, both WS paths, RFC 7395 open/features/close and private HTTP diagnostics +PASS: custom WS/BOSH routes, default-route 404, exact Origin policy, verified TLS proxy rewrite, trusted HTTPS metadata, untrusted/spoofed metadata denial, IPv6 when available, authenticated WS/BOSH bind/ping in legacy and RFC7239 modes and cached BOSH RID retry +PASS: XEP-0156 XRD/JRD parity, CORS, safe methods, ignored JSONP, host checks, secure URL preference, custom mounts/public prefixes, module and advertisement gates, HTTP fallback and verified WSS framing +PASS: SASL2 Bind2 TLS flow, inline SM/CSI/Carbons, private random resource, malformed requests, authentication failure and fallback +PASS: bind2-disabled, SSDP=False, SCRAM-SHA-1/PLAIN success and wrong-password rejection +PASS: bind2-disabled, SSDP=True, SCRAM-SHA-1/PLAIN success and wrong-password rejection +PASS: bind2-enabled, SSDP=False, SCRAM-SHA-1/PLAIN success and wrong-password rejection +PASS: bind2-enabled, SSDP=True, SCRAM-SHA-1/PLAIN success and wrong-password rejection +PASS: sm-disabled, SSDP=False, SCRAM-SHA-1/PLAIN success and wrong-password rejection +PASS: sm-disabled, SSDP=True, SCRAM-SHA-1/PLAIN success and wrong-password rejection +PASS: enabled-False-registration-False +PASS: enabled-False-registration-True +PASS: enabled-True-registration-False +PASS: enabled-True-registration-True +PASS: Gajim domain/account discovery, both label catalogs, authenticated password changes, IBR registration gates and fresh logins +PASS: SASL2 inline SM active/EOF resume, authenticated owner/id/h checks, replay ordering, full JID, Bind2 fallback and malformed requests +PASS: TLS account/domain discovery with PEP and push enabled/disabled; real push enable, publish options, per-node and service-wide disable +PASS: TLS Monocles/Conversations PEP first-run, no-to publishing, owner config recovery, migrated metadata, device item selectors and restart persistence +PASS: Android first-item device-list parsing sees latest publish and replacement before and after restart +PASS: STARTTLS PEP replay/live diagnostics, legacy/OMEMO2, payloadless notifications with intact IQ payloads, and private values excluded +PASS: TLS invitation command discovery, preapproval, single-use mutual roster, replay denial, unknown preauth forwarding/offline pending, account isolation +PASS: STARTTLS MUC SIGTERM restart restores live temporary/persistent rooms, exact full-JID membership, roles, presence and groupchat routing; rejects automatic cross-resource/account claims and nickname theft +PASS: recovery-history +PASS: leave +PASS: kick +PASS: demotion +PASS: password +PASS: configuration +PASS: restart-grace +PASS: custom-grace +PASS: unknown-module +PASS: actual STARTTLS SIGKILL MUC recovery, history, acknowledged barriers and fixed grace +PASS: TLS legacy/SASL2 durable SM after SIGKILL/SIGTERM, counters, ack pruning, at-least-once pending replay, owner/token/h rejection, transport/resource conflict, MUC activation/offline fanout, grace expiry and account deletion/recreation revocation +PASS: TLS conflict_resolve=default, live and hibernating SM resources +PASS: TLS conflict_resolve=kick_old, live and hibernating SM resources +PASS: TLS conflict_resolve=kick_new, live and hibernating SM resources +PASS: TLS conflict_resolve=increment, live and hibernating SM resources +PASS: TLS conflict_resolve=random, live and hibernating SM resources +PASS: integrated WSS + HTTPS BOSH SASL/bind, CSI, inherited BOSH namespaces, roster, bidirectional chat, upload IQ/PUT/GET/reuse, graceful SM close and same-resource relogin under kick_new +PASS: integrated WSS + HTTPS BOSH SASL/bind, CSI, inherited BOSH namespaces, roster, bidirectional chat, upload IQ/PUT/GET/reuse, graceful SM close and same-resource relogin under kick_new +PASS: configured upload HTTP path with $host through integrated listener +PASS: multiple upload hosts/shared-host paths, discovery, quotas, JWT isolation, persistence, transport composition and conflict validation +PASS upload S3 protocol fixture: SigV4, multipart, abort, range, restart, expiry and backend isolation +PASS upload migration: local -> S3 -> S3 -> local, hashes, original URLs/JWT/HEAD, lock, dry-run, fail-closed resume +{ + "total_load_wall_seconds": 6.57, + "requested_resources": 500, + "authenticated_bound_resources": 500, + "connection_setup_concurrency": 50, + "setup_wall_seconds": 0.617, + "setup_latency": { + "samples": 500, + "median_ms": 57.355, + "p95_ms": 75.79, + "max_ms": 93.594 + }, + "ping_rounds": 10, + "ping_round_trip": { + "samples": 5000, + "median_ms": 12.184, + "p95_ms": 25.508, + "max_ms": 28.647 + }, + "accounts": 100, + "message_rounds": 10, + "messages_sent": 5000, + "messages_received": 5000, + "message_batch_seconds": 3.668, + "metrics_before": { + "rss_kib": 8532, + "cpu_seconds": 0.0, + "fd_count": 11 + }, + "metrics_connected": { + "rss_kib": 27360, + "cpu_seconds": 1.06, + "fd_count": 511 + }, + "metrics_after_workload": { + "rss_kib": 28192, + "cpu_seconds": 8.11, + "fd_count": 511 + }, + "metrics_two_seconds_after_disconnect": { + "rss_kib": 28192, + "cpu_seconds": 8.13, + "fd_count": 11 + }, + "sampled_peak_rss_kib": 28192, + "fd_delta_after_disconnect": 0, + "failures": [], + "scope": "One loopback host, 100 accounts with distinct resources, TLS+PLAIN, ping and directed messages; not a production benchmark or proof of no memory leaks.", + "mam": { + "archive_files": 100, + "records": 10000, + "expected_records": 10000 + } +} +MUC+SM load: connected (4.847s) +MUC+SM load: joined (53.423s) +MUC+SM load: fanout_verified (63.805s) +MUC+SM load: before_sigkill (68.702s) +timestamp="2026-10-20T10:29:47.025Z" level=info module="server" event="starting" "version"="0.8.0" "host"="localhost" +timestamp="2026-10-20T10:29:47.027Z" level=info module="smacks" event="durable-sessions-loaded" "count"="0" +timestamp="2026-10-20T10:29:47.027Z" level=info module="c2s" event="listener-ready" "address"="127.0.0.1:45095" "transport"="tcp-starttls" +timestamp="2026-10-20T10:29:47.027Z" level=info module="server" event="ready" "host"="localhost" "version"="0.8.0" "storage"="/tmp/xmpp-durable-muc-load-qsl_wiry/data" "account_hash"="SHA-256" +timestamp="2026-10-20T10:29:47.075Z" level=info module="c2s" event="connection-open" connection="4c21eb75-8a28-4e7a-a86e-12387d2d2851" "transport"="tcp" "peer"="127.0.0.1:58742" "host"="localhost" +timestamp="2026-10-20T10:29:47.075Z" level=info module="c2s" event="connection-closed" connection="4c21eb75-8a28-4e7a-a86e-12387d2d2851" "phase"="stream-open" "reason"="peer-disconnected" "duration_ms"="0" "io_kind"="none" +timestamp="2026-10-20T10:29:47.097Z" level=info module="c2s" event="connection-open" connection="9b1d80c0-0815-43a6-b0d1-06bca5f0d33d" "transport"="tcp" "peer"="127.0.0.1:58744" "host"="localhost" +timestamp="2026-10-20T10:29:47.097Z" level=info module="c2s" event="connection-open" connection="8a2ae8f8-12fc-4478-9556-77d617ca3071" "transport"="tcp" "peer"="127.0.0.1:58748" "host"="localhost" +timestamp="2026-10-20T10:29:47.097Z" level=info module="c2s" event="connection-open" connection="83b92bea-6c46-457d-9170-dba55e156492" "transport"="tcp" "peer"="127.0.0.1:58756" "host"="localhost" +timestamp="2026-10-20T10:29:47.097Z" level=info module="c2s" event="connection-open" connection="1ae94846-8be9-4bd8-b9f4-35c536c6a7e3" "transport"="tcp" "peer"="127.0.0.1:58760" "host"="localhost" +timestamp="2026-10-20T10:29:47.098Z" level=info module="c2s" event="connection-open" connection="39ee3607-1c99-4fcc-88bb-f6a1f5a7df91" "transport"="tcp" "peer"="127.0.0.1:58766" "host"="localhost" +timestamp="2026-10-20T10:29:47.098Z" level=info module="c2s" event="connection-open" connection="06276ece-b381-4e6b-bf63-6cb1129d0b0b" "transport"="tcp" "peer"="127.0.0.1:58772" "host"="localhost" +timestamp="2026-10-20T10:29:47.098Z" level=info module="c2s" event="connection-open" connection="dad81709-9583-4063-8918-8ea6340b0208" "transport"="tcp" "peer"="127.0.0.1:58782" "host"="localhost" +timestamp="2026-10-20T10:29:47.098Z" level=info module="c2s" event="connection-open" connection="e7d7f8a4-e9d3-4026-8390-f3ffdec6db87" "transport"="tcp" "peer"="127.0.0.1:58796" "host"="localhost" +timestamp="2026-10-20T10:29:47.098Z" level=info module="c2s" event="connection-open" connection="b9dbad10-eda5-48a0-bd3f-92b3d4bb8e6a" "transport"="tcp" "peer"="127.0.0.1:58810" "host"="localhost" +timestamp="2026-10-20T10:29:47.098Z" level=info module="c2s" event="connection-open" connection="a21aa63e-ba72-45db-8361-cc9c55d04e00" "transport"="tcp" "peer"="127.0.0.1:58826" "host"="localhost" +timestamp="2026-10-20T10:29:47.098Z" level=info module="c2s" event="connection-open" connection="f8b925e2-5442-4c4c-ab0a-8c68b7414f47" "transport"="tcp" "peer"="127.0.0.1:58838" "host"="localhost" +timestamp="2026-10-20T10:29:47.098Z" level=info module="c2s" event="connection-open" connection="37e9a667-fd0e-4420-b03d-51c057473d92" "transport"="tcp" "peer"="127.0.0.1:58852" "host"="localhost" +timestamp="2026-10-20T10:29:47.098Z" level=info module="c2s" event="connection-open" connection="a1068c7b-cfba-40a6-b915-99205fe9cbe0" "transport"="tcp" "peer"="127.0.0.1:58856" "host"="localhost" +timestamp="2026-10-20T10:29:47.098Z" level=info module="c2s" event="connection-open" connection="9127e522-e290-4f53-930e-36dbcc0cb7b6" "transport"="tcp" "peer"="127.0.0.1:58862" "host"="localhost" +timestamp="2026-10-20T10:29:47.098Z" level=info module="c2s" event="connection-open" connection="a8240a6d-f348-494f-a509-14dd68deaa78" "transport"="tcp" "peer"="127.0.0.1:58866" "host"="localhost" +timestamp="2026-10-20T10:29:47.098Z" level=info module="c2s" event="connection-open" connection="187d72b6-2054-4053-82d0-7a94418b023f" "transport"="tcp" "peer"="127.0.0.1:58880" "host"="localhost" +timestamp="2026-10-20T10:29:47.099Z" level=info module="c2s" event="connection-open" connection="b322b2bd-50ab-4980-a470-41e171c4a6b4" "transport"="tcp" "peer"="127.0.0.1:58884" "host"="localhost" +timestamp="2026-10-20T10:29:47.099Z" level=info module="c2s" event="connection-open" connection="7198c120-e139-4bd1-8030-34e1f3463522" "transport"="tcp" "peer"="127.0.0.1:58894" "host"="localhost" +timestamp="2026-10-20T10:29:47.099Z" level=info module="c2s" event="connection-open" connection="c3d6cec9-d2ae-46c3-957c-4951acf82543" "transport"="tcp" "peer"="127.0.0.1:58898" "host"="localhost" +timestamp="2026-10-20T10:29:47.099Z" level=info module="c2s" event="connection-open" connection="609693c3-6f53-438c-9cd4-556a276c11a3" "transport"="tcp" "peer"="127.0.0.1:58912" "host"="localhost" +timestamp="2026-10-20T10:29:47.109Z" level=info module="c2s" event="tls-established" connection="9b1d80c0-0815-43a6-b0d1-06bca5f0d33d" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.109Z" level=info module="c2s" event="sasl-features" connection="9b1d80c0-0815-43a6-b0d1-06bca5f0d33d" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.109Z" level=info module="c2s" event="tls-established" connection="06276ece-b381-4e6b-bf63-6cb1129d0b0b" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.109Z" level=info module="c2s" event="sasl-features" connection="06276ece-b381-4e6b-bf63-6cb1129d0b0b" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.109Z" level=info module="c2s" event="tls-established" connection="1ae94846-8be9-4bd8-b9f4-35c536c6a7e3" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.109Z" level=info module="c2s" event="sasl-features" connection="1ae94846-8be9-4bd8-b9f4-35c536c6a7e3" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.110Z" level=info module="c2s" event="tls-established" connection="39ee3607-1c99-4fcc-88bb-f6a1f5a7df91" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.110Z" level=info module="c2s" event="sasl-features" connection="39ee3607-1c99-4fcc-88bb-f6a1f5a7df91" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.110Z" level=info module="c2s" event="tls-established" connection="83b92bea-6c46-457d-9170-dba55e156492" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.110Z" level=info module="c2s" event="sasl-features" connection="83b92bea-6c46-457d-9170-dba55e156492" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.110Z" level=info module="c2s" event="tls-established" connection="f8b925e2-5442-4c4c-ab0a-8c68b7414f47" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.110Z" level=info module="c2s" event="sasl-features" connection="f8b925e2-5442-4c4c-ab0a-8c68b7414f47" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.110Z" level=info module="c2s" event="tls-established" connection="e7d7f8a4-e9d3-4026-8390-f3ffdec6db87" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.110Z" level=info module="c2s" event="sasl-features" connection="e7d7f8a4-e9d3-4026-8390-f3ffdec6db87" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.111Z" level=info module="c2s" event="tls-established" connection="b9dbad10-eda5-48a0-bd3f-92b3d4bb8e6a" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.111Z" level=info module="c2s" event="sasl-features" connection="b9dbad10-eda5-48a0-bd3f-92b3d4bb8e6a" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.111Z" level=info module="c2s" event="tls-established" connection="8a2ae8f8-12fc-4478-9556-77d617ca3071" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.111Z" level=info module="c2s" event="sasl-features" connection="8a2ae8f8-12fc-4478-9556-77d617ca3071" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.111Z" level=info module="c2s" event="tls-established" connection="dad81709-9583-4063-8918-8ea6340b0208" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.111Z" level=info module="c2s" event="sasl-features" connection="dad81709-9583-4063-8918-8ea6340b0208" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.112Z" level=info module="c2s" event="tls-established" connection="a21aa63e-ba72-45db-8361-cc9c55d04e00" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.112Z" level=info module="c2s" event="sasl-features" connection="a21aa63e-ba72-45db-8361-cc9c55d04e00" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.112Z" level=info module="c2s" event="tls-established" connection="a1068c7b-cfba-40a6-b915-99205fe9cbe0" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.112Z" level=info module="c2s" event="sasl-features" connection="a1068c7b-cfba-40a6-b915-99205fe9cbe0" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.112Z" level=info module="c2s" event="tls-established" connection="37e9a667-fd0e-4420-b03d-51c057473d92" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.112Z" level=info module="c2s" event="sasl-features" connection="37e9a667-fd0e-4420-b03d-51c057473d92" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.112Z" level=info module="c2s" event="tls-established" connection="9127e522-e290-4f53-930e-36dbcc0cb7b6" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.113Z" level=info module="c2s" event="sasl-features" connection="9127e522-e290-4f53-930e-36dbcc0cb7b6" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.113Z" level=info module="c2s" event="tls-established" connection="a8240a6d-f348-494f-a509-14dd68deaa78" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.113Z" level=info module="c2s" event="sasl-features" connection="a8240a6d-f348-494f-a509-14dd68deaa78" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.113Z" level=info module="c2s" event="tls-established" connection="187d72b6-2054-4053-82d0-7a94418b023f" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.113Z" level=info module="c2s" event="sasl-features" connection="187d72b6-2054-4053-82d0-7a94418b023f" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.113Z" level=info module="c2s" event="tls-established" connection="7198c120-e139-4bd1-8030-34e1f3463522" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.113Z" level=info module="c2s" event="sasl-features" connection="7198c120-e139-4bd1-8030-34e1f3463522" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.114Z" level=info module="c2s" event="tls-established" connection="b322b2bd-50ab-4980-a470-41e171c4a6b4" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.114Z" level=info module="c2s" event="sasl-features" connection="b322b2bd-50ab-4980-a470-41e171c4a6b4" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.115Z" level=info module="c2s" event="tls-established" connection="c3d6cec9-d2ae-46c3-957c-4951acf82543" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.115Z" level=info module="c2s" event="sasl-features" connection="c3d6cec9-d2ae-46c3-957c-4951acf82543" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.115Z" level=info module="c2s" event="tls-established" connection="609693c3-6f53-438c-9cd4-556a276c11a3" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.115Z" level=info module="c2s" event="sasl-features" connection="609693c3-6f53-438c-9cd4-556a276c11a3" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.115Z" level=info module="c2s" event="sasl-attempt" connection="9b1d80c0-0815-43a6-b0d1-06bca5f0d33d" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.115Z" level=info module="c2s" event="auth-identity" connection="9b1d80c0-0815-43a6-b0d1-06bca5f0d33d" "user"="load-0" +timestamp="2026-10-20T10:29:47.115Z" level=info module="c2s" event="sasl-attempt" connection="1ae94846-8be9-4bd8-b9f4-35c536c6a7e3" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.115Z" level=info module="c2s" event="auth-identity" connection="1ae94846-8be9-4bd8-b9f4-35c536c6a7e3" "user"="load-3" +timestamp="2026-10-20T10:29:47.115Z" level=info module="c2s" event="sasl-attempt" connection="06276ece-b381-4e6b-bf63-6cb1129d0b0b" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.115Z" level=info module="c2s" event="auth-identity" connection="06276ece-b381-4e6b-bf63-6cb1129d0b0b" "user"="load-5" +timestamp="2026-10-20T10:29:47.115Z" level=info module="c2s" event="sasl-attempt" connection="83b92bea-6c46-457d-9170-dba55e156492" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.115Z" level=info module="c2s" event="auth-identity" connection="83b92bea-6c46-457d-9170-dba55e156492" "user"="load-2" +timestamp="2026-10-20T10:29:47.115Z" level=info module="c2s" event="sasl-attempt" connection="39ee3607-1c99-4fcc-88bb-f6a1f5a7df91" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.115Z" level=info module="c2s" event="auth-identity" connection="39ee3607-1c99-4fcc-88bb-f6a1f5a7df91" "user"="load-4" +timestamp="2026-10-20T10:29:47.115Z" level=info module="c2s" event="sasl-attempt" connection="e7d7f8a4-e9d3-4026-8390-f3ffdec6db87" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.115Z" level=info module="c2s" event="auth-identity" connection="e7d7f8a4-e9d3-4026-8390-f3ffdec6db87" "user"="load-7" +timestamp="2026-10-20T10:29:47.115Z" level=info module="c2s" event="sasl-attempt" connection="8a2ae8f8-12fc-4478-9556-77d617ca3071" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.115Z" level=info module="c2s" event="auth-identity" connection="8a2ae8f8-12fc-4478-9556-77d617ca3071" "user"="load-1" +timestamp="2026-10-20T10:29:47.115Z" level=info module="c2s" event="sasl-attempt" connection="f8b925e2-5442-4c4c-ab0a-8c68b7414f47" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.115Z" level=info module="c2s" event="auth-identity" connection="f8b925e2-5442-4c4c-ab0a-8c68b7414f47" "user"="load-10" +timestamp="2026-10-20T10:29:47.115Z" level=info module="c2s" event="sasl-attempt" connection="b9dbad10-eda5-48a0-bd3f-92b3d4bb8e6a" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.115Z" level=info module="c2s" event="auth-identity" connection="b9dbad10-eda5-48a0-bd3f-92b3d4bb8e6a" "user"="load-8" +timestamp="2026-10-20T10:29:47.115Z" level=info module="c2s" event="sasl-attempt" connection="9127e522-e290-4f53-930e-36dbcc0cb7b6" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.115Z" level=info module="c2s" event="auth-identity" connection="9127e522-e290-4f53-930e-36dbcc0cb7b6" "user"="load-13" +timestamp="2026-10-20T10:29:47.115Z" level=info module="c2s" event="sasl-attempt" connection="7198c120-e139-4bd1-8030-34e1f3463522" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.115Z" level=info module="c2s" event="auth-identity" connection="7198c120-e139-4bd1-8030-34e1f3463522" "user"="load-17" +timestamp="2026-10-20T10:29:47.115Z" level=info module="c2s" event="sasl-attempt" connection="187d72b6-2054-4053-82d0-7a94418b023f" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.115Z" level=info module="c2s" event="auth-identity" connection="187d72b6-2054-4053-82d0-7a94418b023f" "user"="load-15" +timestamp="2026-10-20T10:29:47.115Z" level=info module="c2s" event="sasl-attempt" connection="a8240a6d-f348-494f-a509-14dd68deaa78" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.115Z" level=info module="c2s" event="auth-identity" connection="a8240a6d-f348-494f-a509-14dd68deaa78" "user"="load-14" +timestamp="2026-10-20T10:29:47.115Z" level=info module="c2s" event="sasl-attempt" connection="a21aa63e-ba72-45db-8361-cc9c55d04e00" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.115Z" level=info module="c2s" event="auth-identity" connection="a21aa63e-ba72-45db-8361-cc9c55d04e00" "user"="load-9" +timestamp="2026-10-20T10:29:47.116Z" level=info module="c2s" event="sasl-attempt" connection="a1068c7b-cfba-40a6-b915-99205fe9cbe0" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.116Z" level=info module="c2s" event="auth-identity" connection="a1068c7b-cfba-40a6-b915-99205fe9cbe0" "user"="load-12" +timestamp="2026-10-20T10:29:47.116Z" level=info module="c2s" event="sasl-attempt" connection="37e9a667-fd0e-4420-b03d-51c057473d92" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.116Z" level=info module="c2s" event="auth-identity" connection="37e9a667-fd0e-4420-b03d-51c057473d92" "user"="load-11" +timestamp="2026-10-20T10:29:47.116Z" level=info module="c2s" event="sasl-attempt" connection="dad81709-9583-4063-8918-8ea6340b0208" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.116Z" level=info module="c2s" event="auth-identity" connection="dad81709-9583-4063-8918-8ea6340b0208" "user"="load-6" +timestamp="2026-10-20T10:29:47.116Z" level=info module="c2s" event="sasl-attempt" connection="c3d6cec9-d2ae-46c3-957c-4951acf82543" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.116Z" level=info module="c2s" event="auth-identity" connection="c3d6cec9-d2ae-46c3-957c-4951acf82543" "user"="load-18" +timestamp="2026-10-20T10:29:47.116Z" level=info module="c2s" event="sasl-attempt" connection="b322b2bd-50ab-4980-a470-41e171c4a6b4" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.116Z" level=info module="c2s" event="auth-identity" connection="b322b2bd-50ab-4980-a470-41e171c4a6b4" "user"="load-16" +timestamp="2026-10-20T10:29:47.116Z" level=info module="c2s" event="sasl-attempt" connection="609693c3-6f53-438c-9cd4-556a276c11a3" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.116Z" level=info module="c2s" event="auth-identity" connection="609693c3-6f53-438c-9cd4-556a276c11a3" "user"="load-19" +timestamp="2026-10-20T10:29:47.118Z" level=info module="c2s" event="auth-success" connection="1ae94846-8be9-4bd8-b9f4-35c536c6a7e3" "user"="load-3" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.119Z" level=info module="c2s" event="auth-success" connection="06276ece-b381-4e6b-bf63-6cb1129d0b0b" "user"="load-5" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.119Z" level=info module="c2s" event="auth-success" connection="a1068c7b-cfba-40a6-b915-99205fe9cbe0" "user"="load-12" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.119Z" level=info module="c2s" event="auth-success" connection="f8b925e2-5442-4c4c-ab0a-8c68b7414f47" "user"="load-10" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.119Z" level=info module="c2s" event="auth-success" connection="9b1d80c0-0815-43a6-b0d1-06bca5f0d33d" "user"="load-0" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.119Z" level=info module="c2s" event="auth-success" connection="187d72b6-2054-4053-82d0-7a94418b023f" "user"="load-15" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.119Z" level=info module="c2s" event="auth-success" connection="39ee3607-1c99-4fcc-88bb-f6a1f5a7df91" "user"="load-4" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.119Z" level=info module="c2s" event="auth-success" connection="b9dbad10-eda5-48a0-bd3f-92b3d4bb8e6a" "user"="load-8" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.119Z" level=info module="c2s" event="auth-success" connection="9127e522-e290-4f53-930e-36dbcc0cb7b6" "user"="load-13" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.119Z" level=info module="c2s" event="auth-success" connection="8a2ae8f8-12fc-4478-9556-77d617ca3071" "user"="load-1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.119Z" level=info module="c2s" event="auth-success" connection="7198c120-e139-4bd1-8030-34e1f3463522" "user"="load-17" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.119Z" level=info module="c2s" event="auth-success" connection="83b92bea-6c46-457d-9170-dba55e156492" "user"="load-2" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.119Z" level=info module="c2s" event="auth-success" connection="c3d6cec9-d2ae-46c3-957c-4951acf82543" "user"="load-18" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.119Z" level=info module="c2s" event="auth-success" connection="609693c3-6f53-438c-9cd4-556a276c11a3" "user"="load-19" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.120Z" level=info module="c2s" event="auth-success" connection="e7d7f8a4-e9d3-4026-8390-f3ffdec6db87" "user"="load-7" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.120Z" level=info module="c2s" event="auth-success" connection="37e9a667-fd0e-4420-b03d-51c057473d92" "user"="load-11" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.120Z" level=info module="c2s" event="auth-success" connection="b322b2bd-50ab-4980-a470-41e171c4a6b4" "user"="load-16" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.120Z" level=info module="c2s" event="auth-success" connection="dad81709-9583-4063-8918-8ea6340b0208" "user"="load-6" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.120Z" level=info module="c2s" event="auth-success" connection="a8240a6d-f348-494f-a509-14dd68deaa78" "user"="load-14" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.122Z" level=info module="c2s" event="auth-success" connection="a21aa63e-ba72-45db-8361-cc9c55d04e00" "user"="load-9" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.122Z" level=info module="c2s" event="resource-bound" connection="b322b2bd-50ab-4980-a470-41e171c4a6b4" "jid"="load-16@localhost/load-16" "mode"="legacy" +timestamp="2026-10-20T10:29:47.122Z" level=info module="c2s" event="resource-bound" connection="83b92bea-6c46-457d-9170-dba55e156492" "jid"="load-2@localhost/load-2" "mode"="legacy" +timestamp="2026-10-20T10:29:47.122Z" level=info module="c2s" event="resource-bound" connection="a1068c7b-cfba-40a6-b915-99205fe9cbe0" "jid"="load-12@localhost/load-12" "mode"="legacy" +timestamp="2026-10-20T10:29:47.122Z" level=info module="c2s" event="resource-bound" connection="b9dbad10-eda5-48a0-bd3f-92b3d4bb8e6a" "jid"="load-8@localhost/load-8" "mode"="legacy" +timestamp="2026-10-20T10:29:47.122Z" level=info module="c2s" event="resource-bound" connection="c3d6cec9-d2ae-46c3-957c-4951acf82543" "jid"="load-18@localhost/load-18" "mode"="legacy" +timestamp="2026-10-20T10:29:47.122Z" level=info module="c2s" event="resource-bound" connection="8a2ae8f8-12fc-4478-9556-77d617ca3071" "jid"="load-1@localhost/load-1" "mode"="legacy" +timestamp="2026-10-20T10:29:47.122Z" level=info module="c2s" event="resource-bound" connection="7198c120-e139-4bd1-8030-34e1f3463522" "jid"="load-17@localhost/load-17" "mode"="legacy" +timestamp="2026-10-20T10:29:47.122Z" level=info module="c2s" event="resource-bound" connection="609693c3-6f53-438c-9cd4-556a276c11a3" "jid"="load-19@localhost/load-19" "mode"="legacy" +timestamp="2026-10-20T10:29:47.122Z" level=info module="c2s" event="resource-bound" connection="9127e522-e290-4f53-930e-36dbcc0cb7b6" "jid"="load-13@localhost/load-13" "mode"="legacy" +timestamp="2026-10-20T10:29:47.122Z" level=info module="c2s" event="resource-bound" connection="37e9a667-fd0e-4420-b03d-51c057473d92" "jid"="load-11@localhost/load-11" "mode"="legacy" +timestamp="2026-10-20T10:29:47.122Z" level=info module="c2s" event="resource-bound" connection="f8b925e2-5442-4c4c-ab0a-8c68b7414f47" "jid"="load-10@localhost/load-10" "mode"="legacy" +timestamp="2026-10-20T10:29:47.123Z" level=info module="c2s" event="resource-bound" connection="06276ece-b381-4e6b-bf63-6cb1129d0b0b" "jid"="load-5@localhost/load-5" "mode"="legacy" +timestamp="2026-10-20T10:29:47.123Z" level=info module="c2s" event="resource-bound" connection="e7d7f8a4-e9d3-4026-8390-f3ffdec6db87" "jid"="load-7@localhost/load-7" "mode"="legacy" +timestamp="2026-10-20T10:29:47.123Z" level=info module="c2s" event="resource-bound" connection="9b1d80c0-0815-43a6-b0d1-06bca5f0d33d" "jid"="load-0@localhost/load-0" "mode"="legacy" +timestamp="2026-10-20T10:29:47.123Z" level=info module="c2s" event="resource-bound" connection="187d72b6-2054-4053-82d0-7a94418b023f" "jid"="load-15@localhost/load-15" "mode"="legacy" +timestamp="2026-10-20T10:29:47.123Z" level=info module="c2s" event="resource-bound" connection="39ee3607-1c99-4fcc-88bb-f6a1f5a7df91" "jid"="load-4@localhost/load-4" "mode"="legacy" +timestamp="2026-10-20T10:29:47.123Z" level=info module="c2s" event="resource-bound" connection="1ae94846-8be9-4bd8-b9f4-35c536c6a7e3" "jid"="load-3@localhost/load-3" "mode"="legacy" +timestamp="2026-10-20T10:29:47.147Z" level=info module="c2s" event="resource-bound" connection="a8240a6d-f348-494f-a509-14dd68deaa78" "jid"="load-14@localhost/load-14" "mode"="legacy" +timestamp="2026-10-20T10:29:47.157Z" level=info module="c2s" event="connection-open" connection="9f7b08b9-9ae1-464c-8549-d3d486673437" "transport"="tcp" "peer"="127.0.0.1:58944" "host"="localhost" +timestamp="2026-10-20T10:29:47.163Z" level=info module="c2s" event="resource-bound" connection="a21aa63e-ba72-45db-8361-cc9c55d04e00" "jid"="load-9@localhost/load-9" "mode"="legacy" +timestamp="2026-10-20T10:29:47.170Z" level=info module="c2s" event="resource-bound" connection="dad81709-9583-4063-8918-8ea6340b0208" "jid"="load-6@localhost/load-6" "mode"="legacy" +timestamp="2026-10-20T10:29:47.179Z" level=info module="c2s" event="connection-open" connection="d0eeede6-56a6-41d7-91e2-1128e1647c76" "transport"="tcp" "peer"="127.0.0.1:58928" "host"="localhost" +timestamp="2026-10-20T10:29:47.184Z" level=info module="c2s" event="connection-open" connection="acfc55ea-8bb4-4bb3-b065-d067027acf8a" "transport"="tcp" "peer"="127.0.0.1:58942" "host"="localhost" +timestamp="2026-10-20T10:29:47.206Z" level=info module="c2s" event="connection-open" connection="20885c85-1770-4738-8ad8-2e652c30cbbd" "transport"="tcp" "peer"="127.0.0.1:59000" "host"="localhost" +timestamp="2026-10-20T10:29:47.229Z" level=info module="c2s" event="connection-open" connection="92fb41bf-6c77-463c-87cb-c014c13ad9d1" "transport"="tcp" "peer"="127.0.0.1:58954" "host"="localhost" +timestamp="2026-10-20T10:29:47.230Z" level=info module="c2s" event="connection-open" connection="6b1bb0ae-8f17-4709-b73e-5d8d067bebe0" "transport"="tcp" "peer"="127.0.0.1:58972" "host"="localhost" +timestamp="2026-10-20T10:29:47.230Z" level=info module="c2s" event="connection-open" connection="794fd967-9a42-48bd-ba68-a851693e6c73" "transport"="tcp" "peer"="127.0.0.1:58960" "host"="localhost" +timestamp="2026-10-20T10:29:47.230Z" level=info module="c2s" event="connection-open" connection="ffdb62af-56b1-4695-beea-21a6ea134b2f" "transport"="tcp" "peer"="127.0.0.1:58974" "host"="localhost" +timestamp="2026-10-20T10:29:47.234Z" level=info module="c2s" event="connection-open" connection="9165a8a5-a179-496f-8052-9b25caf3956c" "transport"="tcp" "peer"="127.0.0.1:58946" "host"="localhost" +timestamp="2026-10-20T10:29:47.234Z" level=info module="c2s" event="connection-open" connection="ffea4991-9156-4fde-8e1e-ca646ead9605" "transport"="tcp" "peer"="127.0.0.1:58988" "host"="localhost" +timestamp="2026-10-20T10:29:47.243Z" level=info module="c2s" event="connection-open" connection="0cfaaede-057c-4302-8692-542330827bdd" "transport"="tcp" "peer"="127.0.0.1:59042" "host"="localhost" +timestamp="2026-10-20T10:29:47.250Z" level=info module="c2s" event="connection-open" connection="bb531bbd-45dd-49f2-a5cf-e42dea25c473" "transport"="tcp" "peer"="127.0.0.1:59002" "host"="localhost" +timestamp="2026-10-20T10:29:47.250Z" level=info module="c2s" event="connection-open" connection="743c0fc8-b8ef-4afc-ab72-7f00e3ffce1c" "transport"="tcp" "peer"="127.0.0.1:59004" "host"="localhost" +timestamp="2026-10-20T10:29:47.250Z" level=info module="c2s" event="connection-open" connection="8fa8b3a4-f5f0-4701-b9bb-09a82d88a78d" "transport"="tcp" "peer"="127.0.0.1:59016" "host"="localhost" +timestamp="2026-10-20T10:29:47.250Z" level=info module="c2s" event="connection-open" connection="1a69e9fa-4e50-4904-b533-cc1272a0201b" "transport"="tcp" "peer"="127.0.0.1:59032" "host"="localhost" +timestamp="2026-10-20T10:29:47.256Z" level=info module="c2s" event="tls-established" connection="d0eeede6-56a6-41d7-91e2-1128e1647c76" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.256Z" level=info module="c2s" event="sasl-features" connection="d0eeede6-56a6-41d7-91e2-1128e1647c76" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.256Z" level=info module="c2s" event="tls-established" connection="9f7b08b9-9ae1-464c-8549-d3d486673437" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.256Z" level=info module="c2s" event="sasl-features" connection="9f7b08b9-9ae1-464c-8549-d3d486673437" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.256Z" level=info module="c2s" event="connection-open" connection="2ef49c21-e249-4533-9761-2623a852ebec" "transport"="tcp" "peer"="127.0.0.1:59054" "host"="localhost" +timestamp="2026-10-20T10:29:47.256Z" level=info module="c2s" event="connection-open" connection="8cd3565a-e32b-4fee-900e-56ba214b49a9" "transport"="tcp" "peer"="127.0.0.1:59050" "host"="localhost" +timestamp="2026-10-20T10:29:47.256Z" level=info module="c2s" event="tls-established" connection="acfc55ea-8bb4-4bb3-b065-d067027acf8a" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.256Z" level=info module="c2s" event="sasl-features" connection="acfc55ea-8bb4-4bb3-b065-d067027acf8a" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.257Z" level=info module="c2s" event="tls-established" connection="ffdb62af-56b1-4695-beea-21a6ea134b2f" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.257Z" level=info module="c2s" event="sasl-features" connection="ffdb62af-56b1-4695-beea-21a6ea134b2f" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.257Z" level=info module="c2s" event="tls-established" connection="ffea4991-9156-4fde-8e1e-ca646ead9605" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.257Z" level=info module="c2s" event="sasl-features" connection="ffea4991-9156-4fde-8e1e-ca646ead9605" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.257Z" level=info module="c2s" event="sasl-attempt" connection="9f7b08b9-9ae1-464c-8549-d3d486673437" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.257Z" level=info module="c2s" event="auth-identity" connection="9f7b08b9-9ae1-464c-8549-d3d486673437" "user"="load-22" +timestamp="2026-10-20T10:29:47.258Z" level=info module="c2s" event="tls-established" connection="20885c85-1770-4738-8ad8-2e652c30cbbd" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.258Z" level=info module="c2s" event="sasl-features" connection="20885c85-1770-4738-8ad8-2e652c30cbbd" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.258Z" level=info module="c2s" event="sasl-attempt" connection="ffea4991-9156-4fde-8e1e-ca646ead9605" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.258Z" level=info module="c2s" event="auth-identity" connection="ffea4991-9156-4fde-8e1e-ca646ead9605" "user"="load-28" +timestamp="2026-10-20T10:29:47.258Z" level=info module="c2s" event="sasl-attempt" connection="d0eeede6-56a6-41d7-91e2-1128e1647c76" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.258Z" level=info module="c2s" event="auth-identity" connection="d0eeede6-56a6-41d7-91e2-1128e1647c76" "user"="load-20" +timestamp="2026-10-20T10:29:47.258Z" level=info module="c2s" event="sasl-attempt" connection="ffdb62af-56b1-4695-beea-21a6ea134b2f" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.258Z" level=info module="c2s" event="auth-identity" connection="ffdb62af-56b1-4695-beea-21a6ea134b2f" "user"="load-27" +timestamp="2026-10-20T10:29:47.258Z" level=info module="c2s" event="sasl-attempt" connection="acfc55ea-8bb4-4bb3-b065-d067027acf8a" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.258Z" level=info module="c2s" event="auth-identity" connection="acfc55ea-8bb4-4bb3-b065-d067027acf8a" "user"="load-21" +timestamp="2026-10-20T10:29:47.259Z" level=info module="c2s" event="auth-success" connection="9f7b08b9-9ae1-464c-8549-d3d486673437" "user"="load-22" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.259Z" level=info module="c2s" event="auth-success" connection="ffea4991-9156-4fde-8e1e-ca646ead9605" "user"="load-28" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.260Z" level=info module="c2s" event="auth-success" connection="ffdb62af-56b1-4695-beea-21a6ea134b2f" "user"="load-27" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.260Z" level=info module="c2s" event="auth-success" connection="acfc55ea-8bb4-4bb3-b065-d067027acf8a" "user"="load-21" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.260Z" level=info module="c2s" event="auth-success" connection="d0eeede6-56a6-41d7-91e2-1128e1647c76" "user"="load-20" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.261Z" level=info module="c2s" event="sasl-attempt" connection="20885c85-1770-4738-8ad8-2e652c30cbbd" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.261Z" level=info module="c2s" event="auth-identity" connection="20885c85-1770-4738-8ad8-2e652c30cbbd" "user"="load-29" +timestamp="2026-10-20T10:29:47.262Z" level=info module="c2s" event="tls-established" connection="92fb41bf-6c77-463c-87cb-c014c13ad9d1" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.262Z" level=info module="c2s" event="sasl-features" connection="92fb41bf-6c77-463c-87cb-c014c13ad9d1" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.262Z" level=info module="c2s" event="tls-established" connection="9165a8a5-a179-496f-8052-9b25caf3956c" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.262Z" level=info module="c2s" event="sasl-features" connection="9165a8a5-a179-496f-8052-9b25caf3956c" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.262Z" level=info module="c2s" event="tls-established" connection="794fd967-9a42-48bd-ba68-a851693e6c73" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.262Z" level=info module="c2s" event="sasl-features" connection="794fd967-9a42-48bd-ba68-a851693e6c73" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.263Z" level=info module="c2s" event="tls-established" connection="6b1bb0ae-8f17-4709-b73e-5d8d067bebe0" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.263Z" level=info module="c2s" event="sasl-features" connection="6b1bb0ae-8f17-4709-b73e-5d8d067bebe0" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.263Z" level=info module="c2s" event="auth-success" connection="20885c85-1770-4738-8ad8-2e652c30cbbd" "user"="load-29" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.263Z" level=info module="c2s" event="tls-established" connection="743c0fc8-b8ef-4afc-ab72-7f00e3ffce1c" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.263Z" level=info module="c2s" event="sasl-features" connection="743c0fc8-b8ef-4afc-ab72-7f00e3ffce1c" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.263Z" level=info module="c2s" event="tls-established" connection="bb531bbd-45dd-49f2-a5cf-e42dea25c473" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.263Z" level=info module="c2s" event="sasl-features" connection="bb531bbd-45dd-49f2-a5cf-e42dea25c473" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.264Z" level=info module="c2s" event="tls-established" connection="0cfaaede-057c-4302-8692-542330827bdd" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.264Z" level=info module="c2s" event="sasl-features" connection="0cfaaede-057c-4302-8692-542330827bdd" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.264Z" level=info module="c2s" event="tls-established" connection="8fa8b3a4-f5f0-4701-b9bb-09a82d88a78d" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.264Z" level=info module="c2s" event="sasl-features" connection="8fa8b3a4-f5f0-4701-b9bb-09a82d88a78d" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.264Z" level=info module="c2s" event="tls-established" connection="1a69e9fa-4e50-4904-b533-cc1272a0201b" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.264Z" level=info module="c2s" event="sasl-features" connection="1a69e9fa-4e50-4904-b533-cc1272a0201b" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.265Z" level=info module="c2s" event="sasl-attempt" connection="794fd967-9a42-48bd-ba68-a851693e6c73" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.265Z" level=info module="c2s" event="auth-identity" connection="794fd967-9a42-48bd-ba68-a851693e6c73" "user"="load-25" +timestamp="2026-10-20T10:29:47.265Z" level=info module="c2s" event="sasl-attempt" connection="6b1bb0ae-8f17-4709-b73e-5d8d067bebe0" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.265Z" level=info module="c2s" event="auth-identity" connection="6b1bb0ae-8f17-4709-b73e-5d8d067bebe0" "user"="load-26" +timestamp="2026-10-20T10:29:47.265Z" level=info module="c2s" event="sasl-attempt" connection="bb531bbd-45dd-49f2-a5cf-e42dea25c473" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.265Z" level=info module="c2s" event="auth-identity" connection="bb531bbd-45dd-49f2-a5cf-e42dea25c473" "user"="load-30" +timestamp="2026-10-20T10:29:47.265Z" level=info module="c2s" event="sasl-attempt" connection="8fa8b3a4-f5f0-4701-b9bb-09a82d88a78d" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.265Z" level=info module="c2s" event="auth-identity" connection="8fa8b3a4-f5f0-4701-b9bb-09a82d88a78d" "user"="load-32" +timestamp="2026-10-20T10:29:47.265Z" level=info module="c2s" event="sasl-attempt" connection="0cfaaede-057c-4302-8692-542330827bdd" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.265Z" level=info module="c2s" event="auth-identity" connection="0cfaaede-057c-4302-8692-542330827bdd" "user"="load-34" +timestamp="2026-10-20T10:29:47.265Z" level=info module="c2s" event="sasl-attempt" connection="92fb41bf-6c77-463c-87cb-c014c13ad9d1" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.265Z" level=info module="c2s" event="auth-identity" connection="92fb41bf-6c77-463c-87cb-c014c13ad9d1" "user"="load-24" +timestamp="2026-10-20T10:29:47.265Z" level=info module="c2s" event="sasl-attempt" connection="743c0fc8-b8ef-4afc-ab72-7f00e3ffce1c" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.265Z" level=info module="c2s" event="auth-identity" connection="743c0fc8-b8ef-4afc-ab72-7f00e3ffce1c" "user"="load-31" +timestamp="2026-10-20T10:29:47.265Z" level=info module="c2s" event="resource-bound" connection="9f7b08b9-9ae1-464c-8549-d3d486673437" "jid"="load-22@localhost/load-22" "mode"="legacy" +timestamp="2026-10-20T10:29:47.265Z" level=info module="c2s" event="tls-established" connection="2ef49c21-e249-4533-9761-2623a852ebec" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.265Z" level=info module="c2s" event="sasl-features" connection="2ef49c21-e249-4533-9761-2623a852ebec" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.266Z" level=info module="c2s" event="tls-established" connection="8cd3565a-e32b-4fee-900e-56ba214b49a9" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.266Z" level=info module="c2s" event="sasl-features" connection="8cd3565a-e32b-4fee-900e-56ba214b49a9" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.266Z" level=info module="c2s" event="sasl-attempt" connection="9165a8a5-a179-496f-8052-9b25caf3956c" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.266Z" level=info module="c2s" event="auth-identity" connection="9165a8a5-a179-496f-8052-9b25caf3956c" "user"="load-23" +timestamp="2026-10-20T10:29:47.266Z" level=info module="c2s" event="sasl-attempt" connection="1a69e9fa-4e50-4904-b533-cc1272a0201b" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.266Z" level=info module="c2s" event="auth-identity" connection="1a69e9fa-4e50-4904-b533-cc1272a0201b" "user"="load-33" +timestamp="2026-10-20T10:29:47.266Z" level=info module="c2s" event="resource-bound" connection="ffea4991-9156-4fde-8e1e-ca646ead9605" "jid"="load-28@localhost/load-28" "mode"="legacy" +timestamp="2026-10-20T10:29:47.266Z" level=info module="c2s" event="resource-bound" connection="acfc55ea-8bb4-4bb3-b065-d067027acf8a" "jid"="load-21@localhost/load-21" "mode"="legacy" +timestamp="2026-10-20T10:29:47.266Z" level=info module="c2s" event="resource-bound" connection="ffdb62af-56b1-4695-beea-21a6ea134b2f" "jid"="load-27@localhost/load-27" "mode"="legacy" +timestamp="2026-10-20T10:29:47.267Z" level=info module="c2s" event="resource-bound" connection="d0eeede6-56a6-41d7-91e2-1128e1647c76" "jid"="load-20@localhost/load-20" "mode"="legacy" +timestamp="2026-10-20T10:29:47.267Z" level=info module="c2s" event="auth-success" connection="794fd967-9a42-48bd-ba68-a851693e6c73" "user"="load-25" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.267Z" level=info module="c2s" event="auth-success" connection="0cfaaede-057c-4302-8692-542330827bdd" "user"="load-34" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.267Z" level=info module="c2s" event="auth-success" connection="8fa8b3a4-f5f0-4701-b9bb-09a82d88a78d" "user"="load-32" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.267Z" level=info module="c2s" event="auth-success" connection="6b1bb0ae-8f17-4709-b73e-5d8d067bebe0" "user"="load-26" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.267Z" level=info module="c2s" event="auth-success" connection="92fb41bf-6c77-463c-87cb-c014c13ad9d1" "user"="load-24" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.267Z" level=info module="c2s" event="auth-success" connection="743c0fc8-b8ef-4afc-ab72-7f00e3ffce1c" "user"="load-31" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.270Z" level=info module="c2s" event="resource-bound" connection="20885c85-1770-4738-8ad8-2e652c30cbbd" "jid"="load-29@localhost/load-29" "mode"="legacy" +timestamp="2026-10-20T10:29:47.271Z" level=info module="c2s" event="sasl-attempt" connection="8cd3565a-e32b-4fee-900e-56ba214b49a9" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.271Z" level=info module="c2s" event="auth-identity" connection="8cd3565a-e32b-4fee-900e-56ba214b49a9" "user"="load-35" +timestamp="2026-10-20T10:29:47.271Z" level=info module="c2s" event="auth-success" connection="9165a8a5-a179-496f-8052-9b25caf3956c" "user"="load-23" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.272Z" level=info module="c2s" event="auth-success" connection="bb531bbd-45dd-49f2-a5cf-e42dea25c473" "user"="load-30" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.272Z" level=info module="c2s" event="sasl-attempt" connection="2ef49c21-e249-4533-9761-2623a852ebec" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.272Z" level=info module="c2s" event="auth-identity" connection="2ef49c21-e249-4533-9761-2623a852ebec" "user"="load-36" +timestamp="2026-10-20T10:29:47.272Z" level=info module="c2s" event="auth-success" connection="1a69e9fa-4e50-4904-b533-cc1272a0201b" "user"="load-33" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.273Z" level=info module="c2s" event="auth-success" connection="8cd3565a-e32b-4fee-900e-56ba214b49a9" "user"="load-35" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.279Z" level=info module="c2s" event="auth-success" connection="2ef49c21-e249-4533-9761-2623a852ebec" "user"="load-36" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.283Z" level=info module="c2s" event="connection-open" connection="360485d7-54a3-45fc-b5f5-58b8a08e64f7" "transport"="tcp" "peer"="127.0.0.1:59066" "host"="localhost" +timestamp="2026-10-20T10:29:47.284Z" level=info module="c2s" event="resource-bound" connection="9165a8a5-a179-496f-8052-9b25caf3956c" "jid"="load-23@localhost/load-23" "mode"="legacy" +timestamp="2026-10-20T10:29:47.284Z" level=info module="c2s" event="resource-bound" connection="6b1bb0ae-8f17-4709-b73e-5d8d067bebe0" "jid"="load-26@localhost/load-26" "mode"="legacy" +timestamp="2026-10-20T10:29:47.285Z" level=info module="c2s" event="resource-bound" connection="794fd967-9a42-48bd-ba68-a851693e6c73" "jid"="load-25@localhost/load-25" "mode"="legacy" +timestamp="2026-10-20T10:29:47.286Z" level=info module="c2s" event="resource-bound" connection="92fb41bf-6c77-463c-87cb-c014c13ad9d1" "jid"="load-24@localhost/load-24" "mode"="legacy" +timestamp="2026-10-20T10:29:47.286Z" level=info module="c2s" event="resource-bound" connection="0cfaaede-057c-4302-8692-542330827bdd" "jid"="load-34@localhost/load-34" "mode"="legacy" +timestamp="2026-10-20T10:29:47.287Z" level=info module="c2s" event="resource-bound" connection="2ef49c21-e249-4533-9761-2623a852ebec" "jid"="load-36@localhost/load-36" "mode"="legacy" +timestamp="2026-10-20T10:29:47.287Z" level=info module="c2s" event="resource-bound" connection="743c0fc8-b8ef-4afc-ab72-7f00e3ffce1c" "jid"="load-31@localhost/load-31" "mode"="legacy" +timestamp="2026-10-20T10:29:47.287Z" level=info module="c2s" event="resource-bound" connection="8fa8b3a4-f5f0-4701-b9bb-09a82d88a78d" "jid"="load-32@localhost/load-32" "mode"="legacy" +timestamp="2026-10-20T10:29:47.287Z" level=info module="c2s" event="resource-bound" connection="bb531bbd-45dd-49f2-a5cf-e42dea25c473" "jid"="load-30@localhost/load-30" "mode"="legacy" +timestamp="2026-10-20T10:29:47.290Z" level=info module="c2s" event="resource-bound" connection="8cd3565a-e32b-4fee-900e-56ba214b49a9" "jid"="load-35@localhost/load-35" "mode"="legacy" +timestamp="2026-10-20T10:29:47.290Z" level=info module="c2s" event="resource-bound" connection="1a69e9fa-4e50-4904-b533-cc1272a0201b" "jid"="load-33@localhost/load-33" "mode"="legacy" +timestamp="2026-10-20T10:29:47.330Z" level=info module="c2s" event="connection-open" connection="4be168fa-a630-4490-9281-15dbb4b9a652" "transport"="tcp" "peer"="127.0.0.1:59090" "host"="localhost" +timestamp="2026-10-20T10:29:47.330Z" level=info module="c2s" event="connection-open" connection="f99ad851-3af1-47d5-b272-407149335242" "transport"="tcp" "peer"="127.0.0.1:59070" "host"="localhost" +timestamp="2026-10-20T10:29:47.330Z" level=info module="c2s" event="connection-open" connection="0a527693-9ad7-4487-9f1e-f41d6a6924f4" "transport"="tcp" "peer"="127.0.0.1:59076" "host"="localhost" +timestamp="2026-10-20T10:29:47.330Z" level=info module="c2s" event="connection-open" connection="1dd32245-38c3-401a-bbf1-5277eb2e7cfa" "transport"="tcp" "peer"="127.0.0.1:59084" "host"="localhost" +timestamp="2026-10-20T10:29:47.330Z" level=info module="c2s" event="connection-open" connection="993ffd0b-3f49-4a78-816e-5611f834290a" "transport"="tcp" "peer"="127.0.0.1:59086" "host"="localhost" +timestamp="2026-10-20T10:29:47.330Z" level=info module="c2s" event="connection-open" connection="61739e0f-95eb-4370-b306-a3861c3a48c1" "transport"="tcp" "peer"="127.0.0.1:59088" "host"="localhost" +timestamp="2026-10-20T10:29:47.380Z" level=info module="c2s" event="connection-open" connection="38e7dc22-60aa-45d3-9b79-2d56c0b6b99c" "transport"="tcp" "peer"="127.0.0.1:59134" "host"="localhost" +timestamp="2026-10-20T10:29:47.380Z" level=info module="c2s" event="connection-open" connection="98a43dd7-378a-4999-b2a0-bbca42afe9d1" "transport"="tcp" "peer"="127.0.0.1:59096" "host"="localhost" +timestamp="2026-10-20T10:29:47.380Z" level=info module="c2s" event="connection-open" connection="a96270cd-be35-4482-b3ed-b2e7ea91ead7" "transport"="tcp" "peer"="127.0.0.1:59102" "host"="localhost" +timestamp="2026-10-20T10:29:47.380Z" level=info module="c2s" event="connection-open" connection="18396e7c-178b-4db3-be37-95ba7311b08a" "transport"="tcp" "peer"="127.0.0.1:59106" "host"="localhost" +timestamp="2026-10-20T10:29:47.380Z" level=info module="c2s" event="connection-open" connection="2358fcd4-43d1-4cbd-b57d-1fb0b0ec5046" "transport"="tcp" "peer"="127.0.0.1:59120" "host"="localhost" +timestamp="2026-10-20T10:29:47.380Z" level=info module="c2s" event="connection-open" connection="5a11cdc9-8d8e-4579-81eb-c60f67e9d651" "transport"="tcp" "peer"="127.0.0.1:59128" "host"="localhost" +timestamp="2026-10-20T10:29:47.380Z" level=info module="c2s" event="tls-established" connection="360485d7-54a3-45fc-b5f5-58b8a08e64f7" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.380Z" level=info module="c2s" event="sasl-features" connection="360485d7-54a3-45fc-b5f5-58b8a08e64f7" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.411Z" level=info module="c2s" event="sasl-attempt" connection="360485d7-54a3-45fc-b5f5-58b8a08e64f7" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.411Z" level=info module="c2s" event="auth-identity" connection="360485d7-54a3-45fc-b5f5-58b8a08e64f7" "user"="load-37" +timestamp="2026-10-20T10:29:47.415Z" level=info module="c2s" event="auth-success" connection="360485d7-54a3-45fc-b5f5-58b8a08e64f7" "user"="load-37" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.418Z" level=info module="c2s" event="connection-open" connection="daccd0cf-de57-40f7-ac6c-d27e0ec1c4dc" "transport"="tcp" "peer"="127.0.0.1:59146" "host"="localhost" +timestamp="2026-10-20T10:29:47.418Z" level=info module="c2s" event="connection-open" connection="1168265a-d93e-4ffc-bf62-24a6bd57ba6d" "transport"="tcp" "peer"="127.0.0.1:59140" "host"="localhost" +timestamp="2026-10-20T10:29:47.422Z" level=info module="c2s" event="tls-established" connection="38e7dc22-60aa-45d3-9b79-2d56c0b6b99c" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.422Z" level=info module="c2s" event="sasl-features" connection="38e7dc22-60aa-45d3-9b79-2d56c0b6b99c" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.422Z" level=info module="c2s" event="tls-established" connection="0a527693-9ad7-4487-9f1e-f41d6a6924f4" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.422Z" level=info module="c2s" event="sasl-features" connection="0a527693-9ad7-4487-9f1e-f41d6a6924f4" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.422Z" level=info module="c2s" event="tls-established" connection="993ffd0b-3f49-4a78-816e-5611f834290a" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.422Z" level=info module="c2s" event="sasl-features" connection="993ffd0b-3f49-4a78-816e-5611f834290a" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.422Z" level=info module="c2s" event="tls-established" connection="2358fcd4-43d1-4cbd-b57d-1fb0b0ec5046" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.422Z" level=info module="c2s" event="sasl-features" connection="2358fcd4-43d1-4cbd-b57d-1fb0b0ec5046" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.422Z" level=info module="c2s" event="tls-established" connection="4be168fa-a630-4490-9281-15dbb4b9a652" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.422Z" level=info module="c2s" event="sasl-features" connection="4be168fa-a630-4490-9281-15dbb4b9a652" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.422Z" level=info module="c2s" event="tls-established" connection="f99ad851-3af1-47d5-b272-407149335242" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.422Z" level=info module="c2s" event="sasl-features" connection="f99ad851-3af1-47d5-b272-407149335242" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.423Z" level=info module="c2s" event="connection-open" connection="8358a386-1b64-4eb2-89ce-6382418771b5" "transport"="tcp" "peer"="127.0.0.1:59152" "host"="localhost" +timestamp="2026-10-20T10:29:47.424Z" level=info module="c2s" event="tls-established" connection="61739e0f-95eb-4370-b306-a3861c3a48c1" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.424Z" level=info module="c2s" event="sasl-features" connection="61739e0f-95eb-4370-b306-a3861c3a48c1" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.424Z" level=info module="c2s" event="sasl-attempt" connection="2358fcd4-43d1-4cbd-b57d-1fb0b0ec5046" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.424Z" level=info module="c2s" event="auth-identity" connection="2358fcd4-43d1-4cbd-b57d-1fb0b0ec5046" "user"="load-47" +timestamp="2026-10-20T10:29:47.424Z" level=info module="c2s" event="tls-established" connection="1dd32245-38c3-401a-bbf1-5277eb2e7cfa" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.424Z" level=info module="c2s" event="sasl-features" connection="1dd32245-38c3-401a-bbf1-5277eb2e7cfa" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.424Z" level=info module="c2s" event="tls-established" connection="98a43dd7-378a-4999-b2a0-bbca42afe9d1" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.424Z" level=info module="c2s" event="sasl-features" connection="98a43dd7-378a-4999-b2a0-bbca42afe9d1" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.424Z" level=info module="c2s" event="resource-bound" connection="360485d7-54a3-45fc-b5f5-58b8a08e64f7" "jid"="load-37@localhost/load-37" "mode"="legacy" +timestamp="2026-10-20T10:29:47.424Z" level=info module="c2s" event="sasl-attempt" connection="38e7dc22-60aa-45d3-9b79-2d56c0b6b99c" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.424Z" level=info module="c2s" event="auth-identity" connection="38e7dc22-60aa-45d3-9b79-2d56c0b6b99c" "user"="load-49" +timestamp="2026-10-20T10:29:47.424Z" level=info module="c2s" event="sasl-attempt" connection="0a527693-9ad7-4487-9f1e-f41d6a6924f4" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.424Z" level=info module="c2s" event="auth-identity" connection="0a527693-9ad7-4487-9f1e-f41d6a6924f4" "user"="load-39" +timestamp="2026-10-20T10:29:47.424Z" level=info module="c2s" event="sasl-attempt" connection="993ffd0b-3f49-4a78-816e-5611f834290a" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.424Z" level=info module="c2s" event="auth-identity" connection="993ffd0b-3f49-4a78-816e-5611f834290a" "user"="load-41" +timestamp="2026-10-20T10:29:47.424Z" level=info module="c2s" event="tls-established" connection="18396e7c-178b-4db3-be37-95ba7311b08a" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.424Z" level=info module="c2s" event="sasl-features" connection="18396e7c-178b-4db3-be37-95ba7311b08a" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.424Z" level=info module="c2s" event="tls-established" connection="5a11cdc9-8d8e-4579-81eb-c60f67e9d651" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.424Z" level=info module="c2s" event="sasl-features" connection="5a11cdc9-8d8e-4579-81eb-c60f67e9d651" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.424Z" level=info module="c2s" event="tls-established" connection="a96270cd-be35-4482-b3ed-b2e7ea91ead7" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.424Z" level=info module="c2s" event="sasl-features" connection="a96270cd-be35-4482-b3ed-b2e7ea91ead7" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.424Z" level=info module="c2s" event="sasl-attempt" connection="4be168fa-a630-4490-9281-15dbb4b9a652" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.424Z" level=info module="c2s" event="auth-identity" connection="4be168fa-a630-4490-9281-15dbb4b9a652" "user"="load-43" +timestamp="2026-10-20T10:29:47.424Z" level=info module="c2s" event="sasl-attempt" connection="f99ad851-3af1-47d5-b272-407149335242" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.424Z" level=info module="c2s" event="auth-identity" connection="f99ad851-3af1-47d5-b272-407149335242" "user"="load-38" +timestamp="2026-10-20T10:29:47.426Z" level=info module="c2s" event="sasl-attempt" connection="61739e0f-95eb-4370-b306-a3861c3a48c1" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.426Z" level=info module="c2s" event="auth-identity" connection="61739e0f-95eb-4370-b306-a3861c3a48c1" "user"="load-42" +timestamp="2026-10-20T10:29:47.426Z" level=info module="c2s" event="auth-success" connection="2358fcd4-43d1-4cbd-b57d-1fb0b0ec5046" "user"="load-47" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.426Z" level=info module="c2s" event="auth-success" connection="0a527693-9ad7-4487-9f1e-f41d6a6924f4" "user"="load-39" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.426Z" level=info module="c2s" event="auth-success" connection="38e7dc22-60aa-45d3-9b79-2d56c0b6b99c" "user"="load-49" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.426Z" level=info module="c2s" event="auth-success" connection="993ffd0b-3f49-4a78-816e-5611f834290a" "user"="load-41" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.426Z" level=info module="c2s" event="auth-success" connection="4be168fa-a630-4490-9281-15dbb4b9a652" "user"="load-43" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.426Z" level=info module="c2s" event="sasl-attempt" connection="1dd32245-38c3-401a-bbf1-5277eb2e7cfa" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.426Z" level=info module="c2s" event="auth-identity" connection="1dd32245-38c3-401a-bbf1-5277eb2e7cfa" "user"="load-40" +timestamp="2026-10-20T10:29:47.426Z" level=info module="c2s" event="sasl-attempt" connection="98a43dd7-378a-4999-b2a0-bbca42afe9d1" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.426Z" level=info module="c2s" event="auth-identity" connection="98a43dd7-378a-4999-b2a0-bbca42afe9d1" "user"="load-44" +timestamp="2026-10-20T10:29:47.432Z" level=info module="c2s" event="auth-success" connection="f99ad851-3af1-47d5-b272-407149335242" "user"="load-38" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.432Z" level=info module="c2s" event="auth-success" connection="61739e0f-95eb-4370-b306-a3861c3a48c1" "user"="load-42" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.433Z" level=info module="c2s" event="auth-success" connection="1dd32245-38c3-401a-bbf1-5277eb2e7cfa" "user"="load-40" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.433Z" level=info module="c2s" event="auth-success" connection="98a43dd7-378a-4999-b2a0-bbca42afe9d1" "user"="load-44" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.433Z" level=info module="c2s" event="sasl-attempt" connection="18396e7c-178b-4db3-be37-95ba7311b08a" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.433Z" level=info module="c2s" event="auth-identity" connection="18396e7c-178b-4db3-be37-95ba7311b08a" "user"="load-46" +timestamp="2026-10-20T10:29:47.433Z" level=info module="c2s" event="sasl-attempt" connection="5a11cdc9-8d8e-4579-81eb-c60f67e9d651" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.433Z" level=info module="c2s" event="auth-identity" connection="5a11cdc9-8d8e-4579-81eb-c60f67e9d651" "user"="load-48" +timestamp="2026-10-20T10:29:47.433Z" level=info module="c2s" event="tls-established" connection="daccd0cf-de57-40f7-ac6c-d27e0ec1c4dc" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.433Z" level=info module="c2s" event="sasl-features" connection="daccd0cf-de57-40f7-ac6c-d27e0ec1c4dc" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.433Z" level=info module="c2s" event="sasl-attempt" connection="a96270cd-be35-4482-b3ed-b2e7ea91ead7" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.433Z" level=info module="c2s" event="auth-identity" connection="a96270cd-be35-4482-b3ed-b2e7ea91ead7" "user"="load-45" +timestamp="2026-10-20T10:29:47.433Z" level=info module="c2s" event="connection-open" connection="24d572c8-ee12-442c-8d24-4964cd5b1196" "transport"="tcp" "peer"="127.0.0.1:59166" "host"="localhost" +timestamp="2026-10-20T10:29:47.433Z" level=info module="c2s" event="tls-established" connection="1168265a-d93e-4ffc-bf62-24a6bd57ba6d" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.433Z" level=info module="c2s" event="sasl-features" connection="1168265a-d93e-4ffc-bf62-24a6bd57ba6d" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.434Z" level=info module="c2s" event="tls-established" connection="8358a386-1b64-4eb2-89ce-6382418771b5" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.434Z" level=info module="c2s" event="sasl-features" connection="8358a386-1b64-4eb2-89ce-6382418771b5" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.434Z" level=info module="c2s" event="resource-bound" connection="2358fcd4-43d1-4cbd-b57d-1fb0b0ec5046" "jid"="load-47@localhost/load-47" "mode"="legacy" +timestamp="2026-10-20T10:29:47.434Z" level=info module="c2s" event="resource-bound" connection="98a43dd7-378a-4999-b2a0-bbca42afe9d1" "jid"="load-44@localhost/load-44" "mode"="legacy" +timestamp="2026-10-20T10:29:47.434Z" level=info module="c2s" event="auth-success" connection="5a11cdc9-8d8e-4579-81eb-c60f67e9d651" "user"="load-48" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.434Z" level=info module="c2s" event="auth-success" connection="18396e7c-178b-4db3-be37-95ba7311b08a" "user"="load-46" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.435Z" level=info module="c2s" event="auth-success" connection="a96270cd-be35-4482-b3ed-b2e7ea91ead7" "user"="load-45" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.436Z" level=info module="c2s" event="resource-bound" connection="f99ad851-3af1-47d5-b272-407149335242" "jid"="load-38@localhost/load-38" "mode"="legacy" +timestamp="2026-10-20T10:29:47.436Z" level=info module="c2s" event="resource-bound" connection="0a527693-9ad7-4487-9f1e-f41d6a6924f4" "jid"="load-39@localhost/load-39" "mode"="legacy" +timestamp="2026-10-20T10:29:47.436Z" level=info module="c2s" event="resource-bound" connection="38e7dc22-60aa-45d3-9b79-2d56c0b6b99c" "jid"="load-49@localhost/load-49" "mode"="legacy" +timestamp="2026-10-20T10:29:47.436Z" level=info module="c2s" event="resource-bound" connection="993ffd0b-3f49-4a78-816e-5611f834290a" "jid"="load-41@localhost/load-41" "mode"="legacy" +timestamp="2026-10-20T10:29:47.436Z" level=info module="c2s" event="resource-bound" connection="4be168fa-a630-4490-9281-15dbb4b9a652" "jid"="load-43@localhost/load-43" "mode"="legacy" +timestamp="2026-10-20T10:29:47.436Z" level=info module="c2s" event="sasl-attempt" connection="daccd0cf-de57-40f7-ac6c-d27e0ec1c4dc" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.436Z" level=info module="c2s" event="auth-identity" connection="daccd0cf-de57-40f7-ac6c-d27e0ec1c4dc" "user"="load-51" +timestamp="2026-10-20T10:29:47.436Z" level=info module="c2s" event="resource-bound" connection="61739e0f-95eb-4370-b306-a3861c3a48c1" "jid"="load-42@localhost/load-42" "mode"="legacy" +timestamp="2026-10-20T10:29:47.436Z" level=info module="c2s" event="resource-bound" connection="1dd32245-38c3-401a-bbf1-5277eb2e7cfa" "jid"="load-40@localhost/load-40" "mode"="legacy" +timestamp="2026-10-20T10:29:47.436Z" level=info module="c2s" event="sasl-attempt" connection="1168265a-d93e-4ffc-bf62-24a6bd57ba6d" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.436Z" level=info module="c2s" event="auth-identity" connection="1168265a-d93e-4ffc-bf62-24a6bd57ba6d" "user"="load-50" +timestamp="2026-10-20T10:29:47.439Z" level=info module="c2s" event="auth-success" connection="daccd0cf-de57-40f7-ac6c-d27e0ec1c4dc" "user"="load-51" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.439Z" level=info module="c2s" event="auth-success" connection="1168265a-d93e-4ffc-bf62-24a6bd57ba6d" "user"="load-50" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.456Z" level=info module="c2s" event="resource-bound" connection="18396e7c-178b-4db3-be37-95ba7311b08a" "jid"="load-46@localhost/load-46" "mode"="legacy" +timestamp="2026-10-20T10:29:47.468Z" level=info module="c2s" event="resource-bound" connection="a96270cd-be35-4482-b3ed-b2e7ea91ead7" "jid"="load-45@localhost/load-45" "mode"="legacy" +timestamp="2026-10-20T10:29:47.472Z" level=info module="c2s" event="resource-bound" connection="5a11cdc9-8d8e-4579-81eb-c60f67e9d651" "jid"="load-48@localhost/load-48" "mode"="legacy" +timestamp="2026-10-20T10:29:47.481Z" level=info module="c2s" event="connection-open" connection="ea20491b-3e82-4582-8bb5-5c8ca7d0e711" "transport"="tcp" "peer"="127.0.0.1:59208" "host"="localhost" +timestamp="2026-10-20T10:29:47.481Z" level=info module="c2s" event="connection-open" connection="967a8104-405b-4f68-b031-33195fa635e2" "transport"="tcp" "peer"="127.0.0.1:59176" "host"="localhost" +timestamp="2026-10-20T10:29:47.481Z" level=info module="c2s" event="connection-open" connection="575fa71e-da99-4fe5-8a1d-8ba75918c827" "transport"="tcp" "peer"="127.0.0.1:59182" "host"="localhost" +timestamp="2026-10-20T10:29:47.481Z" level=info module="c2s" event="connection-open" connection="603dfbb8-ca3f-421b-bea3-8343b6ee87a9" "transport"="tcp" "peer"="127.0.0.1:59192" "host"="localhost" +timestamp="2026-10-20T10:29:47.484Z" level=info module="c2s" event="sasl-attempt" connection="8358a386-1b64-4eb2-89ce-6382418771b5" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.484Z" level=info module="c2s" event="auth-identity" connection="8358a386-1b64-4eb2-89ce-6382418771b5" "user"="load-52" +timestamp="2026-10-20T10:29:47.484Z" level=info module="c2s" event="resource-bound" connection="daccd0cf-de57-40f7-ac6c-d27e0ec1c4dc" "jid"="load-51@localhost/load-51" "mode"="legacy" +timestamp="2026-10-20T10:29:47.495Z" level=info module="c2s" event="auth-success" connection="8358a386-1b64-4eb2-89ce-6382418771b5" "user"="load-52" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.528Z" level=info module="c2s" event="resource-bound" connection="1168265a-d93e-4ffc-bf62-24a6bd57ba6d" "jid"="load-50@localhost/load-50" "mode"="legacy" +timestamp="2026-10-20T10:29:47.531Z" level=info module="c2s" event="tls-established" connection="24d572c8-ee12-442c-8d24-4964cd5b1196" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.531Z" level=info module="c2s" event="sasl-features" connection="24d572c8-ee12-442c-8d24-4964cd5b1196" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.536Z" level=info module="c2s" event="connection-open" connection="cab03f5b-813b-4acf-b566-d998b1c91b20" "transport"="tcp" "peer"="127.0.0.1:59296" "host"="localhost" +timestamp="2026-10-20T10:29:47.536Z" level=info module="c2s" event="connection-open" connection="97491e26-8919-4ecf-a0d4-ad7b93f039ea" "transport"="tcp" "peer"="127.0.0.1:59218" "host"="localhost" +timestamp="2026-10-20T10:29:47.536Z" level=info module="c2s" event="connection-open" connection="ce3d90bc-8232-43c4-a83a-173876ebf775" "transport"="tcp" "peer"="127.0.0.1:59230" "host"="localhost" +timestamp="2026-10-20T10:29:47.536Z" level=info module="c2s" event="connection-open" connection="afbea3ed-b2e9-47f1-ac91-f8f21bd70f06" "transport"="tcp" "peer"="127.0.0.1:59238" "host"="localhost" +timestamp="2026-10-20T10:29:47.536Z" level=info module="c2s" event="connection-open" connection="8c6ea7dd-37dd-4338-b669-309c6cacf7a7" "transport"="tcp" "peer"="127.0.0.1:59248" "host"="localhost" +timestamp="2026-10-20T10:29:47.536Z" level=info module="c2s" event="connection-open" connection="5d21b942-0765-40ab-828f-f18e3a205336" "transport"="tcp" "peer"="127.0.0.1:59262" "host"="localhost" +timestamp="2026-10-20T10:29:47.536Z" level=info module="c2s" event="connection-open" connection="4f7e9560-f737-475c-8113-e7a275492e8e" "transport"="tcp" "peer"="127.0.0.1:59266" "host"="localhost" +timestamp="2026-10-20T10:29:47.536Z" level=info module="c2s" event="connection-open" connection="6db1818e-d36d-4459-a2cc-6db75e7ae60c" "transport"="tcp" "peer"="127.0.0.1:59278" "host"="localhost" +timestamp="2026-10-20T10:29:47.536Z" level=info module="c2s" event="connection-open" connection="5a62e9cb-b254-4244-bc2a-a4dff09e74ae" "transport"="tcp" "peer"="127.0.0.1:59294" "host"="localhost" +timestamp="2026-10-20T10:29:47.539Z" level=info module="c2s" event="resource-bound" connection="8358a386-1b64-4eb2-89ce-6382418771b5" "jid"="load-52@localhost/load-52" "mode"="legacy" +timestamp="2026-10-20T10:29:47.545Z" level=info module="c2s" event="sasl-attempt" connection="24d572c8-ee12-442c-8d24-4964cd5b1196" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.545Z" level=info module="c2s" event="auth-identity" connection="24d572c8-ee12-442c-8d24-4964cd5b1196" "user"="load-53" +timestamp="2026-10-20T10:29:47.548Z" level=info module="c2s" event="auth-success" connection="24d572c8-ee12-442c-8d24-4964cd5b1196" "user"="load-53" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.560Z" level=info module="c2s" event="connection-open" connection="7329c681-9016-47a7-a5af-594dfd4305ea" "transport"="tcp" "peer"="127.0.0.1:59308" "host"="localhost" +timestamp="2026-10-20T10:29:47.560Z" level=info module="c2s" event="tls-established" connection="603dfbb8-ca3f-421b-bea3-8343b6ee87a9" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.560Z" level=info module="c2s" event="sasl-features" connection="603dfbb8-ca3f-421b-bea3-8343b6ee87a9" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.568Z" level=info module="c2s" event="connection-open" connection="04732bd6-3156-4599-81fe-4e94885b9f02" "transport"="tcp" "peer"="127.0.0.1:59320" "host"="localhost" +timestamp="2026-10-20T10:29:47.569Z" level=info module="c2s" event="resource-bound" connection="24d572c8-ee12-442c-8d24-4964cd5b1196" "jid"="load-53@localhost/load-53" "mode"="legacy" +timestamp="2026-10-20T10:29:47.569Z" level=info module="c2s" event="tls-established" connection="575fa71e-da99-4fe5-8a1d-8ba75918c827" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.569Z" level=info module="c2s" event="sasl-features" connection="575fa71e-da99-4fe5-8a1d-8ba75918c827" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.569Z" level=info module="c2s" event="tls-established" connection="967a8104-405b-4f68-b031-33195fa635e2" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.569Z" level=info module="c2s" event="sasl-features" connection="967a8104-405b-4f68-b031-33195fa635e2" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.569Z" level=info module="c2s" event="tls-established" connection="97491e26-8919-4ecf-a0d4-ad7b93f039ea" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.569Z" level=info module="c2s" event="sasl-features" connection="97491e26-8919-4ecf-a0d4-ad7b93f039ea" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.569Z" level=info module="c2s" event="tls-established" connection="ea20491b-3e82-4582-8bb5-5c8ca7d0e711" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.569Z" level=info module="c2s" event="sasl-features" connection="ea20491b-3e82-4582-8bb5-5c8ca7d0e711" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.570Z" level=info module="c2s" event="sasl-attempt" connection="603dfbb8-ca3f-421b-bea3-8343b6ee87a9" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.570Z" level=info module="c2s" event="auth-identity" connection="603dfbb8-ca3f-421b-bea3-8343b6ee87a9" "user"="load-56" +timestamp="2026-10-20T10:29:47.570Z" level=info module="c2s" event="sasl-attempt" connection="97491e26-8919-4ecf-a0d4-ad7b93f039ea" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.570Z" level=info module="c2s" event="auth-identity" connection="97491e26-8919-4ecf-a0d4-ad7b93f039ea" "user"="load-58" +timestamp="2026-10-20T10:29:47.570Z" level=info module="c2s" event="tls-established" connection="5d21b942-0765-40ab-828f-f18e3a205336" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.570Z" level=info module="c2s" event="sasl-features" connection="5d21b942-0765-40ab-828f-f18e3a205336" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.570Z" level=info module="c2s" event="tls-established" connection="afbea3ed-b2e9-47f1-ac91-f8f21bd70f06" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.570Z" level=info module="c2s" event="sasl-features" connection="afbea3ed-b2e9-47f1-ac91-f8f21bd70f06" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.572Z" level=info module="c2s" event="auth-success" connection="603dfbb8-ca3f-421b-bea3-8343b6ee87a9" "user"="load-56" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.572Z" level=info module="c2s" event="auth-success" connection="97491e26-8919-4ecf-a0d4-ad7b93f039ea" "user"="load-58" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.572Z" level=info module="c2s" event="sasl-attempt" connection="575fa71e-da99-4fe5-8a1d-8ba75918c827" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.572Z" level=info module="c2s" event="auth-identity" connection="575fa71e-da99-4fe5-8a1d-8ba75918c827" "user"="load-55" +timestamp="2026-10-20T10:29:47.574Z" level=info module="c2s" event="auth-success" connection="575fa71e-da99-4fe5-8a1d-8ba75918c827" "user"="load-55" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.574Z" level=info module="c2s" event="tls-established" connection="5a62e9cb-b254-4244-bc2a-a4dff09e74ae" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.574Z" level=info module="c2s" event="sasl-features" connection="5a62e9cb-b254-4244-bc2a-a4dff09e74ae" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.574Z" level=info module="c2s" event="sasl-attempt" connection="967a8104-405b-4f68-b031-33195fa635e2" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.574Z" level=info module="c2s" event="auth-identity" connection="967a8104-405b-4f68-b031-33195fa635e2" "user"="load-54" +timestamp="2026-10-20T10:29:47.574Z" level=info module="c2s" event="tls-established" connection="8c6ea7dd-37dd-4338-b669-309c6cacf7a7" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.574Z" level=info module="c2s" event="sasl-features" connection="8c6ea7dd-37dd-4338-b669-309c6cacf7a7" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.574Z" level=info module="c2s" event="tls-established" connection="cab03f5b-813b-4acf-b566-d998b1c91b20" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.574Z" level=info module="c2s" event="sasl-features" connection="cab03f5b-813b-4acf-b566-d998b1c91b20" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.574Z" level=info module="c2s" event="tls-established" connection="4f7e9560-f737-475c-8113-e7a275492e8e" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.574Z" level=info module="c2s" event="sasl-features" connection="4f7e9560-f737-475c-8113-e7a275492e8e" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.574Z" level=info module="c2s" event="tls-established" connection="6db1818e-d36d-4459-a2cc-6db75e7ae60c" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.574Z" level=info module="c2s" event="sasl-features" connection="6db1818e-d36d-4459-a2cc-6db75e7ae60c" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.574Z" level=info module="c2s" event="tls-established" connection="ce3d90bc-8232-43c4-a83a-173876ebf775" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.574Z" level=info module="c2s" event="sasl-features" connection="ce3d90bc-8232-43c4-a83a-173876ebf775" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.574Z" level=info module="c2s" event="sasl-attempt" connection="ea20491b-3e82-4582-8bb5-5c8ca7d0e711" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.574Z" level=info module="c2s" event="auth-identity" connection="ea20491b-3e82-4582-8bb5-5c8ca7d0e711" "user"="load-57" +timestamp="2026-10-20T10:29:47.574Z" level=info module="c2s" event="sasl-attempt" connection="5d21b942-0765-40ab-828f-f18e3a205336" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.574Z" level=info module="c2s" event="auth-identity" connection="5d21b942-0765-40ab-828f-f18e3a205336" "user"="load-62" +timestamp="2026-10-20T10:29:47.574Z" level=info module="c2s" event="sasl-attempt" connection="afbea3ed-b2e9-47f1-ac91-f8f21bd70f06" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.574Z" level=info module="c2s" event="auth-identity" connection="afbea3ed-b2e9-47f1-ac91-f8f21bd70f06" "user"="load-60" +timestamp="2026-10-20T10:29:47.575Z" level=info module="c2s" event="auth-success" connection="967a8104-405b-4f68-b031-33195fa635e2" "user"="load-54" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.576Z" level=info module="c2s" event="sasl-attempt" connection="5a62e9cb-b254-4244-bc2a-a4dff09e74ae" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.576Z" level=info module="c2s" event="auth-identity" connection="5a62e9cb-b254-4244-bc2a-a4dff09e74ae" "user"="load-65" +timestamp="2026-10-20T10:29:47.576Z" level=info module="c2s" event="auth-success" connection="ea20491b-3e82-4582-8bb5-5c8ca7d0e711" "user"="load-57" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.576Z" level=info module="c2s" event="auth-success" connection="5d21b942-0765-40ab-828f-f18e3a205336" "user"="load-62" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.576Z" level=info module="c2s" event="auth-success" connection="afbea3ed-b2e9-47f1-ac91-f8f21bd70f06" "user"="load-60" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.576Z" level=info module="c2s" event="tls-established" connection="7329c681-9016-47a7-a5af-594dfd4305ea" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.576Z" level=info module="c2s" event="sasl-features" connection="7329c681-9016-47a7-a5af-594dfd4305ea" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.576Z" level=info module="c2s" event="connection-open" connection="3ee40c6c-a4cb-481e-982d-a62a76aefcf5" "transport"="tcp" "peer"="127.0.0.1:59322" "host"="localhost" +timestamp="2026-10-20T10:29:47.576Z" level=info module="c2s" event="resource-bound" connection="97491e26-8919-4ecf-a0d4-ad7b93f039ea" "jid"="load-58@localhost/load-58" "mode"="legacy" +timestamp="2026-10-20T10:29:47.576Z" level=info module="c2s" event="sasl-attempt" connection="ce3d90bc-8232-43c4-a83a-173876ebf775" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.576Z" level=info module="c2s" event="auth-identity" connection="ce3d90bc-8232-43c4-a83a-173876ebf775" "user"="load-59" +timestamp="2026-10-20T10:29:47.576Z" level=info module="c2s" event="sasl-attempt" connection="8c6ea7dd-37dd-4338-b669-309c6cacf7a7" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.576Z" level=info module="c2s" event="auth-identity" connection="8c6ea7dd-37dd-4338-b669-309c6cacf7a7" "user"="load-61" +timestamp="2026-10-20T10:29:47.576Z" level=info module="c2s" event="sasl-attempt" connection="cab03f5b-813b-4acf-b566-d998b1c91b20" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.576Z" level=info module="c2s" event="auth-identity" connection="cab03f5b-813b-4acf-b566-d998b1c91b20" "user"="load-66" +timestamp="2026-10-20T10:29:47.576Z" level=info module="c2s" event="sasl-attempt" connection="4f7e9560-f737-475c-8113-e7a275492e8e" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.576Z" level=info module="c2s" event="auth-identity" connection="4f7e9560-f737-475c-8113-e7a275492e8e" "user"="load-63" +timestamp="2026-10-20T10:29:47.577Z" level=info module="c2s" event="sasl-attempt" connection="6db1818e-d36d-4459-a2cc-6db75e7ae60c" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.577Z" level=info module="c2s" event="auth-identity" connection="6db1818e-d36d-4459-a2cc-6db75e7ae60c" "user"="load-64" +timestamp="2026-10-20T10:29:47.577Z" level=info module="c2s" event="resource-bound" connection="575fa71e-da99-4fe5-8a1d-8ba75918c827" "jid"="load-55@localhost/load-55" "mode"="legacy" +timestamp="2026-10-20T10:29:47.577Z" level=info module="c2s" event="resource-bound" connection="603dfbb8-ca3f-421b-bea3-8343b6ee87a9" "jid"="load-56@localhost/load-56" "mode"="legacy" +timestamp="2026-10-20T10:29:47.578Z" level=info module="c2s" event="auth-success" connection="ce3d90bc-8232-43c4-a83a-173876ebf775" "user"="load-59" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.578Z" level=info module="c2s" event="auth-success" connection="6db1818e-d36d-4459-a2cc-6db75e7ae60c" "user"="load-64" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.578Z" level=info module="c2s" event="auth-success" connection="4f7e9560-f737-475c-8113-e7a275492e8e" "user"="load-63" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.578Z" level=info module="c2s" event="auth-success" connection="8c6ea7dd-37dd-4338-b669-309c6cacf7a7" "user"="load-61" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.578Z" level=info module="c2s" event="auth-success" connection="5a62e9cb-b254-4244-bc2a-a4dff09e74ae" "user"="load-65" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.583Z" level=info module="c2s" event="auth-success" connection="cab03f5b-813b-4acf-b566-d998b1c91b20" "user"="load-66" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.583Z" level=info module="c2s" event="resource-bound" connection="ea20491b-3e82-4582-8bb5-5c8ca7d0e711" "jid"="load-57@localhost/load-57" "mode"="legacy" +timestamp="2026-10-20T10:29:47.586Z" level=info module="c2s" event="tls-established" connection="04732bd6-3156-4599-81fe-4e94885b9f02" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.586Z" level=info module="c2s" event="sasl-features" connection="04732bd6-3156-4599-81fe-4e94885b9f02" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.587Z" level=info module="c2s" event="resource-bound" connection="afbea3ed-b2e9-47f1-ac91-f8f21bd70f06" "jid"="load-60@localhost/load-60" "mode"="legacy" +timestamp="2026-10-20T10:29:47.587Z" level=info module="c2s" event="resource-bound" connection="5d21b942-0765-40ab-828f-f18e3a205336" "jid"="load-62@localhost/load-62" "mode"="legacy" +timestamp="2026-10-20T10:29:47.588Z" level=info module="c2s" event="sasl-attempt" connection="7329c681-9016-47a7-a5af-594dfd4305ea" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.588Z" level=info module="c2s" event="auth-identity" connection="7329c681-9016-47a7-a5af-594dfd4305ea" "user"="load-67" +timestamp="2026-10-20T10:29:47.589Z" level=info module="c2s" event="resource-bound" connection="967a8104-405b-4f68-b031-33195fa635e2" "jid"="load-54@localhost/load-54" "mode"="legacy" +timestamp="2026-10-20T10:29:47.591Z" level=info module="c2s" event="auth-success" connection="7329c681-9016-47a7-a5af-594dfd4305ea" "user"="load-67" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.591Z" level=info module="c2s" event="sasl-attempt" connection="04732bd6-3156-4599-81fe-4e94885b9f02" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.591Z" level=info module="c2s" event="auth-identity" connection="04732bd6-3156-4599-81fe-4e94885b9f02" "user"="load-68" +timestamp="2026-10-20T10:29:47.596Z" level=info module="c2s" event="auth-success" connection="04732bd6-3156-4599-81fe-4e94885b9f02" "user"="load-68" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.604Z" level=info module="c2s" event="resource-bound" connection="4f7e9560-f737-475c-8113-e7a275492e8e" "jid"="load-63@localhost/load-63" "mode"="legacy" +timestamp="2026-10-20T10:29:47.606Z" level=info module="c2s" event="resource-bound" connection="ce3d90bc-8232-43c4-a83a-173876ebf775" "jid"="load-59@localhost/load-59" "mode"="legacy" +timestamp="2026-10-20T10:29:47.606Z" level=info module="c2s" event="resource-bound" connection="cab03f5b-813b-4acf-b566-d998b1c91b20" "jid"="load-66@localhost/load-66" "mode"="legacy" +timestamp="2026-10-20T10:29:47.618Z" level=info module="c2s" event="connection-open" connection="c4a44f0b-6b67-4d22-a338-caadb5dff0b4" "transport"="tcp" "peer"="127.0.0.1:59356" "host"="localhost" +timestamp="2026-10-20T10:29:47.618Z" level=info module="c2s" event="connection-open" connection="e002bc0e-39d4-471d-98f2-d6e8d4d71f9c" "transport"="tcp" "peer"="127.0.0.1:59326" "host"="localhost" +timestamp="2026-10-20T10:29:47.618Z" level=info module="c2s" event="connection-open" connection="5ff0f91b-8441-41ef-bf9f-ab977533f4df" "transport"="tcp" "peer"="127.0.0.1:59342" "host"="localhost" +timestamp="2026-10-20T10:29:47.618Z" level=info module="c2s" event="connection-open" connection="009c4596-d496-46fa-ba37-c1a1805cb043" "transport"="tcp" "peer"="127.0.0.1:59344" "host"="localhost" +timestamp="2026-10-20T10:29:47.618Z" level=info module="c2s" event="connection-open" connection="1f198d86-a115-4e60-ac2b-dd81da0f13f1" "transport"="tcp" "peer"="127.0.0.1:59352" "host"="localhost" +timestamp="2026-10-20T10:29:47.620Z" level=info module="c2s" event="resource-bound" connection="6db1818e-d36d-4459-a2cc-6db75e7ae60c" "jid"="load-64@localhost/load-64" "mode"="legacy" +timestamp="2026-10-20T10:29:47.624Z" level=info module="c2s" event="resource-bound" connection="8c6ea7dd-37dd-4338-b669-309c6cacf7a7" "jid"="load-61@localhost/load-61" "mode"="legacy" +timestamp="2026-10-20T10:29:47.626Z" level=info module="c2s" event="resource-bound" connection="5a62e9cb-b254-4244-bc2a-a4dff09e74ae" "jid"="load-65@localhost/load-65" "mode"="legacy" +timestamp="2026-10-20T10:29:47.629Z" level=info module="c2s" event="resource-bound" connection="7329c681-9016-47a7-a5af-594dfd4305ea" "jid"="load-67@localhost/load-67" "mode"="legacy" +timestamp="2026-10-20T10:29:47.635Z" level=info module="c2s" event="connection-open" connection="a58c4e8b-ed0e-4a3c-89d0-0575ac3bb9e4" "transport"="tcp" "peer"="127.0.0.1:59366" "host"="localhost" +timestamp="2026-10-20T10:29:47.661Z" level=info module="c2s" event="tls-established" connection="3ee40c6c-a4cb-481e-982d-a62a76aefcf5" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.661Z" level=info module="c2s" event="sasl-features" connection="3ee40c6c-a4cb-481e-982d-a62a76aefcf5" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.661Z" level=info module="c2s" event="resource-bound" connection="04732bd6-3156-4599-81fe-4e94885b9f02" "jid"="load-68@localhost/load-68" "mode"="legacy" +timestamp="2026-10-20T10:29:47.707Z" level=info module="c2s" event="connection-open" connection="a95fbc55-276f-455c-bf06-fce22b09d6ac" "transport"="tcp" "peer"="127.0.0.1:59492" "host"="localhost" +timestamp="2026-10-20T10:29:47.707Z" level=info module="c2s" event="connection-open" connection="bedb75dc-dabf-4148-a72c-387412464b6b" "transport"="tcp" "peer"="127.0.0.1:59378" "host"="localhost" +timestamp="2026-10-20T10:29:47.707Z" level=info module="c2s" event="connection-open" connection="46f83f17-60d3-4e52-8950-4956cf552e57" "transport"="tcp" "peer"="127.0.0.1:59394" "host"="localhost" +timestamp="2026-10-20T10:29:47.707Z" level=info module="c2s" event="connection-open" connection="c7401d86-33f3-498a-8804-882e468af83e" "transport"="tcp" "peer"="127.0.0.1:59404" "host"="localhost" +timestamp="2026-10-20T10:29:47.707Z" level=info module="c2s" event="connection-open" connection="e6cfe69d-bcdc-4cf4-a822-1b4140ace844" "transport"="tcp" "peer"="127.0.0.1:59420" "host"="localhost" +timestamp="2026-10-20T10:29:47.707Z" level=info module="c2s" event="connection-open" connection="8f2c7d19-55d9-423c-a18a-202075372756" "transport"="tcp" "peer"="127.0.0.1:59436" "host"="localhost" +timestamp="2026-10-20T10:29:47.707Z" level=info module="c2s" event="connection-open" connection="dd15aa93-139a-45e5-bc56-1b01b11b6d95" "transport"="tcp" "peer"="127.0.0.1:59448" "host"="localhost" +timestamp="2026-10-20T10:29:47.707Z" level=info module="c2s" event="connection-open" connection="ce77b42b-fad5-4713-b52e-3a5d932cd9cd" "transport"="tcp" "peer"="127.0.0.1:59458" "host"="localhost" +timestamp="2026-10-20T10:29:47.707Z" level=info module="c2s" event="connection-open" connection="a7c0ece7-b02b-4538-ad54-57ad38ca830d" "transport"="tcp" "peer"="127.0.0.1:59460" "host"="localhost" +timestamp="2026-10-20T10:29:47.707Z" level=info module="c2s" event="connection-open" connection="48e5bf84-5976-4579-8576-696ec7a4eb2e" "transport"="tcp" "peer"="127.0.0.1:59476" "host"="localhost" +timestamp="2026-10-20T10:29:47.707Z" level=info module="c2s" event="sasl-attempt" connection="3ee40c6c-a4cb-481e-982d-a62a76aefcf5" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.707Z" level=info module="c2s" event="auth-identity" connection="3ee40c6c-a4cb-481e-982d-a62a76aefcf5" "user"="load-69" +timestamp="2026-10-20T10:29:47.708Z" level=info module="c2s" event="tls-established" connection="e002bc0e-39d4-471d-98f2-d6e8d4d71f9c" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.708Z" level=info module="c2s" event="sasl-features" connection="e002bc0e-39d4-471d-98f2-d6e8d4d71f9c" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.708Z" level=info module="c2s" event="sasl-attempt" connection="e002bc0e-39d4-471d-98f2-d6e8d4d71f9c" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.708Z" level=info module="c2s" event="auth-identity" connection="e002bc0e-39d4-471d-98f2-d6e8d4d71f9c" "user"="load-70" +timestamp="2026-10-20T10:29:47.712Z" level=info module="c2s" event="auth-success" connection="3ee40c6c-a4cb-481e-982d-a62a76aefcf5" "user"="load-69" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.712Z" level=info module="c2s" event="auth-success" connection="e002bc0e-39d4-471d-98f2-d6e8d4d71f9c" "user"="load-70" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.714Z" level=info module="c2s" event="tls-established" connection="009c4596-d496-46fa-ba37-c1a1805cb043" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.714Z" level=info module="c2s" event="sasl-features" connection="009c4596-d496-46fa-ba37-c1a1805cb043" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.714Z" level=info module="c2s" event="tls-established" connection="5ff0f91b-8441-41ef-bf9f-ab977533f4df" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.714Z" level=info module="c2s" event="sasl-features" connection="5ff0f91b-8441-41ef-bf9f-ab977533f4df" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.714Z" level=info module="c2s" event="tls-established" connection="c4a44f0b-6b67-4d22-a338-caadb5dff0b4" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.714Z" level=info module="c2s" event="sasl-features" connection="c4a44f0b-6b67-4d22-a338-caadb5dff0b4" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.714Z" level=info module="c2s" event="tls-established" connection="1f198d86-a115-4e60-ac2b-dd81da0f13f1" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.714Z" level=info module="c2s" event="sasl-features" connection="1f198d86-a115-4e60-ac2b-dd81da0f13f1" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.716Z" level=info module="c2s" event="sasl-attempt" connection="009c4596-d496-46fa-ba37-c1a1805cb043" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.716Z" level=info module="c2s" event="auth-identity" connection="009c4596-d496-46fa-ba37-c1a1805cb043" "user"="load-72" +timestamp="2026-10-20T10:29:47.716Z" level=info module="c2s" event="sasl-attempt" connection="5ff0f91b-8441-41ef-bf9f-ab977533f4df" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.716Z" level=info module="c2s" event="auth-identity" connection="5ff0f91b-8441-41ef-bf9f-ab977533f4df" "user"="load-71" +timestamp="2026-10-20T10:29:47.716Z" level=info module="c2s" event="sasl-attempt" connection="c4a44f0b-6b67-4d22-a338-caadb5dff0b4" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.716Z" level=info module="c2s" event="auth-identity" connection="c4a44f0b-6b67-4d22-a338-caadb5dff0b4" "user"="load-74" +timestamp="2026-10-20T10:29:47.716Z" level=info module="c2s" event="tls-established" connection="a58c4e8b-ed0e-4a3c-89d0-0575ac3bb9e4" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.716Z" level=info module="c2s" event="sasl-features" connection="a58c4e8b-ed0e-4a3c-89d0-0575ac3bb9e4" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.717Z" level=info module="c2s" event="sasl-attempt" connection="1f198d86-a115-4e60-ac2b-dd81da0f13f1" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.717Z" level=info module="c2s" event="auth-identity" connection="1f198d86-a115-4e60-ac2b-dd81da0f13f1" "user"="load-73" +timestamp="2026-10-20T10:29:47.717Z" level=info module="c2s" event="resource-bound" connection="3ee40c6c-a4cb-481e-982d-a62a76aefcf5" "jid"="load-69@localhost/load-69" "mode"="legacy" +timestamp="2026-10-20T10:29:47.717Z" level=info module="c2s" event="resource-bound" connection="e002bc0e-39d4-471d-98f2-d6e8d4d71f9c" "jid"="load-70@localhost/load-70" "mode"="legacy" +timestamp="2026-10-20T10:29:47.717Z" level=info module="c2s" event="tls-established" connection="e6cfe69d-bcdc-4cf4-a822-1b4140ace844" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.717Z" level=info module="c2s" event="sasl-features" connection="e6cfe69d-bcdc-4cf4-a822-1b4140ace844" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.722Z" level=info module="c2s" event="auth-success" connection="009c4596-d496-46fa-ba37-c1a1805cb043" "user"="load-72" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.722Z" level=info module="c2s" event="auth-success" connection="5ff0f91b-8441-41ef-bf9f-ab977533f4df" "user"="load-71" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.722Z" level=info module="c2s" event="auth-success" connection="c4a44f0b-6b67-4d22-a338-caadb5dff0b4" "user"="load-74" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.722Z" level=info module="c2s" event="auth-success" connection="1f198d86-a115-4e60-ac2b-dd81da0f13f1" "user"="load-73" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.722Z" level=info module="c2s" event="sasl-attempt" connection="a58c4e8b-ed0e-4a3c-89d0-0575ac3bb9e4" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.722Z" level=info module="c2s" event="auth-identity" connection="a58c4e8b-ed0e-4a3c-89d0-0575ac3bb9e4" "user"="load-75" +timestamp="2026-10-20T10:29:47.722Z" level=info module="c2s" event="tls-established" connection="bedb75dc-dabf-4148-a72c-387412464b6b" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.722Z" level=info module="c2s" event="sasl-features" connection="bedb75dc-dabf-4148-a72c-387412464b6b" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.724Z" level=info module="c2s" event="auth-success" connection="a58c4e8b-ed0e-4a3c-89d0-0575ac3bb9e4" "user"="load-75" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.724Z" level=info module="c2s" event="sasl-attempt" connection="e6cfe69d-bcdc-4cf4-a822-1b4140ace844" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.724Z" level=info module="c2s" event="auth-identity" connection="e6cfe69d-bcdc-4cf4-a822-1b4140ace844" "user"="load-79" +timestamp="2026-10-20T10:29:47.724Z" level=info module="c2s" event="sasl-attempt" connection="bedb75dc-dabf-4148-a72c-387412464b6b" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.724Z" level=info module="c2s" event="auth-identity" connection="bedb75dc-dabf-4148-a72c-387412464b6b" "user"="load-76" +timestamp="2026-10-20T10:29:47.725Z" level=info module="c2s" event="tls-established" connection="dd15aa93-139a-45e5-bc56-1b01b11b6d95" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.725Z" level=info module="c2s" event="sasl-features" connection="dd15aa93-139a-45e5-bc56-1b01b11b6d95" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.725Z" level=info module="c2s" event="tls-established" connection="ce77b42b-fad5-4713-b52e-3a5d932cd9cd" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.725Z" level=info module="c2s" event="sasl-features" connection="ce77b42b-fad5-4713-b52e-3a5d932cd9cd" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.725Z" level=info module="c2s" event="tls-established" connection="8f2c7d19-55d9-423c-a18a-202075372756" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.725Z" level=info module="c2s" event="sasl-features" connection="8f2c7d19-55d9-423c-a18a-202075372756" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.726Z" level=info module="c2s" event="auth-success" connection="e6cfe69d-bcdc-4cf4-a822-1b4140ace844" "user"="load-79" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.726Z" level=info module="c2s" event="auth-success" connection="bedb75dc-dabf-4148-a72c-387412464b6b" "user"="load-76" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.726Z" level=info module="c2s" event="tls-established" connection="48e5bf84-5976-4579-8576-696ec7a4eb2e" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.726Z" level=info module="c2s" event="sasl-features" connection="48e5bf84-5976-4579-8576-696ec7a4eb2e" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.726Z" level=info module="c2s" event="tls-established" connection="a7c0ece7-b02b-4538-ad54-57ad38ca830d" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.726Z" level=info module="c2s" event="sasl-features" connection="a7c0ece7-b02b-4538-ad54-57ad38ca830d" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.726Z" level=info module="c2s" event="tls-established" connection="a95fbc55-276f-455c-bf06-fce22b09d6ac" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.726Z" level=info module="c2s" event="sasl-features" connection="a95fbc55-276f-455c-bf06-fce22b09d6ac" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.727Z" level=info module="c2s" event="tls-established" connection="46f83f17-60d3-4e52-8950-4956cf552e57" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.727Z" level=info module="c2s" event="sasl-features" connection="46f83f17-60d3-4e52-8950-4956cf552e57" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.727Z" level=info module="c2s" event="tls-established" connection="c7401d86-33f3-498a-8804-882e468af83e" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.727Z" level=info module="c2s" event="sasl-features" connection="c7401d86-33f3-498a-8804-882e468af83e" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.727Z" level=info module="c2s" event="resource-bound" connection="1f198d86-a115-4e60-ac2b-dd81da0f13f1" "jid"="load-73@localhost/load-73" "mode"="legacy" +timestamp="2026-10-20T10:29:47.727Z" level=info module="c2s" event="resource-bound" connection="c4a44f0b-6b67-4d22-a338-caadb5dff0b4" "jid"="load-74@localhost/load-74" "mode"="legacy" +timestamp="2026-10-20T10:29:47.727Z" level=info module="c2s" event="resource-bound" connection="5ff0f91b-8441-41ef-bf9f-ab977533f4df" "jid"="load-71@localhost/load-71" "mode"="legacy" +timestamp="2026-10-20T10:29:47.728Z" level=info module="c2s" event="sasl-attempt" connection="c7401d86-33f3-498a-8804-882e468af83e" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.728Z" level=info module="c2s" event="auth-identity" connection="c7401d86-33f3-498a-8804-882e468af83e" "user"="load-78" +timestamp="2026-10-20T10:29:47.728Z" level=info module="c2s" event="sasl-attempt" connection="48e5bf84-5976-4579-8576-696ec7a4eb2e" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.728Z" level=info module="c2s" event="auth-identity" connection="48e5bf84-5976-4579-8576-696ec7a4eb2e" "user"="load-84" +timestamp="2026-10-20T10:29:47.728Z" level=info module="c2s" event="resource-bound" connection="009c4596-d496-46fa-ba37-c1a1805cb043" "jid"="load-72@localhost/load-72" "mode"="legacy" +timestamp="2026-10-20T10:29:47.728Z" level=info module="c2s" event="sasl-attempt" connection="a95fbc55-276f-455c-bf06-fce22b09d6ac" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.728Z" level=info module="c2s" event="auth-identity" connection="a95fbc55-276f-455c-bf06-fce22b09d6ac" "user"="load-85" +timestamp="2026-10-20T10:29:47.728Z" level=info module="c2s" event="sasl-attempt" connection="46f83f17-60d3-4e52-8950-4956cf552e57" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.728Z" level=info module="c2s" event="auth-identity" connection="46f83f17-60d3-4e52-8950-4956cf552e57" "user"="load-77" +timestamp="2026-10-20T10:29:47.728Z" level=info module="c2s" event="sasl-attempt" connection="a7c0ece7-b02b-4538-ad54-57ad38ca830d" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.728Z" level=info module="c2s" event="auth-identity" connection="a7c0ece7-b02b-4538-ad54-57ad38ca830d" "user"="load-83" +timestamp="2026-10-20T10:29:47.728Z" level=info module="c2s" event="sasl-attempt" connection="ce77b42b-fad5-4713-b52e-3a5d932cd9cd" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.728Z" level=info module="c2s" event="auth-identity" connection="ce77b42b-fad5-4713-b52e-3a5d932cd9cd" "user"="load-82" +timestamp="2026-10-20T10:29:47.728Z" level=info module="c2s" event="sasl-attempt" connection="dd15aa93-139a-45e5-bc56-1b01b11b6d95" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.728Z" level=info module="c2s" event="auth-identity" connection="dd15aa93-139a-45e5-bc56-1b01b11b6d95" "user"="load-81" +timestamp="2026-10-20T10:29:47.728Z" level=info module="c2s" event="resource-bound" connection="a58c4e8b-ed0e-4a3c-89d0-0575ac3bb9e4" "jid"="load-75@localhost/load-75" "mode"="legacy" +timestamp="2026-10-20T10:29:47.728Z" level=info module="c2s" event="sasl-attempt" connection="8f2c7d19-55d9-423c-a18a-202075372756" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.728Z" level=info module="c2s" event="auth-identity" connection="8f2c7d19-55d9-423c-a18a-202075372756" "user"="load-80" +timestamp="2026-10-20T10:29:47.732Z" level=info module="c2s" event="auth-success" connection="c7401d86-33f3-498a-8804-882e468af83e" "user"="load-78" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.732Z" level=info module="c2s" event="auth-success" connection="a95fbc55-276f-455c-bf06-fce22b09d6ac" "user"="load-85" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.732Z" level=info module="c2s" event="auth-success" connection="46f83f17-60d3-4e52-8950-4956cf552e57" "user"="load-77" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.732Z" level=info module="c2s" event="auth-success" connection="a7c0ece7-b02b-4538-ad54-57ad38ca830d" "user"="load-83" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.732Z" level=info module="c2s" event="auth-success" connection="48e5bf84-5976-4579-8576-696ec7a4eb2e" "user"="load-84" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.732Z" level=info module="c2s" event="auth-success" connection="ce77b42b-fad5-4713-b52e-3a5d932cd9cd" "user"="load-82" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.732Z" level=info module="c2s" event="auth-success" connection="8f2c7d19-55d9-423c-a18a-202075372756" "user"="load-80" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.732Z" level=info module="c2s" event="auth-success" connection="dd15aa93-139a-45e5-bc56-1b01b11b6d95" "user"="load-81" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.752Z" level=info module="c2s" event="resource-bound" connection="bedb75dc-dabf-4148-a72c-387412464b6b" "jid"="load-76@localhost/load-76" "mode"="legacy" +timestamp="2026-10-20T10:29:47.759Z" level=info module="c2s" event="resource-bound" connection="e6cfe69d-bcdc-4cf4-a822-1b4140ace844" "jid"="load-79@localhost/load-79" "mode"="legacy" +timestamp="2026-10-20T10:29:47.761Z" level=info module="c2s" event="connection-open" connection="6d5fa85c-f0da-40e4-b7e6-ea1c4f806993" "transport"="tcp" "peer"="127.0.0.1:59524" "host"="localhost" +timestamp="2026-10-20T10:29:47.761Z" level=info module="c2s" event="connection-open" connection="e14f5362-e901-48ab-96f6-e26caaf0dc21" "transport"="tcp" "peer"="127.0.0.1:59494" "host"="localhost" +timestamp="2026-10-20T10:29:47.761Z" level=info module="c2s" event="connection-open" connection="acff0c56-d9ab-4aa4-8697-4f3e6d3a3709" "transport"="tcp" "peer"="127.0.0.1:59510" "host"="localhost" +timestamp="2026-10-20T10:29:47.762Z" level=info module="c2s" event="resource-bound" connection="c7401d86-33f3-498a-8804-882e468af83e" "jid"="load-78@localhost/load-78" "mode"="legacy" +timestamp="2026-10-20T10:29:47.770Z" level=info module="c2s" event="resource-bound" connection="ce77b42b-fad5-4713-b52e-3a5d932cd9cd" "jid"="load-82@localhost/load-82" "mode"="legacy" +timestamp="2026-10-20T10:29:47.775Z" level=info module="c2s" event="resource-bound" connection="46f83f17-60d3-4e52-8950-4956cf552e57" "jid"="load-77@localhost/load-77" "mode"="legacy" +timestamp="2026-10-20T10:29:47.777Z" level=info module="c2s" event="resource-bound" connection="a95fbc55-276f-455c-bf06-fce22b09d6ac" "jid"="load-85@localhost/load-85" "mode"="legacy" +timestamp="2026-10-20T10:29:47.778Z" level=info module="c2s" event="resource-bound" connection="48e5bf84-5976-4579-8576-696ec7a4eb2e" "jid"="load-84@localhost/load-84" "mode"="legacy" +timestamp="2026-10-20T10:29:47.779Z" level=info module="c2s" event="resource-bound" connection="a7c0ece7-b02b-4538-ad54-57ad38ca830d" "jid"="load-83@localhost/load-83" "mode"="legacy" +timestamp="2026-10-20T10:29:47.788Z" level=info module="c2s" event="resource-bound" connection="8f2c7d19-55d9-423c-a18a-202075372756" "jid"="load-80@localhost/load-80" "mode"="legacy" +timestamp="2026-10-20T10:29:47.792Z" level=info module="c2s" event="connection-open" connection="b154ecb2-72ed-48fd-b58a-691a1fa3f2de" "transport"="tcp" "peer"="127.0.0.1:59572" "host"="localhost" +timestamp="2026-10-20T10:29:47.793Z" level=info module="c2s" event="connection-open" connection="75967e25-168b-46fe-81df-14b6be7e6943" "transport"="tcp" "peer"="127.0.0.1:59530" "host"="localhost" +timestamp="2026-10-20T10:29:47.793Z" level=info module="c2s" event="resource-bound" connection="dd15aa93-139a-45e5-bc56-1b01b11b6d95" "jid"="load-81@localhost/load-81" "mode"="legacy" +timestamp="2026-10-20T10:29:47.793Z" level=info module="c2s" event="connection-open" connection="b79510f1-2e4d-4def-8eec-2c00a32ac12d" "transport"="tcp" "peer"="127.0.0.1:59544" "host"="localhost" +timestamp="2026-10-20T10:29:47.793Z" level=info module="c2s" event="connection-open" connection="d0443ca4-948b-45d4-bef9-f7600e18cce5" "transport"="tcp" "peer"="127.0.0.1:59532" "host"="localhost" +timestamp="2026-10-20T10:29:47.793Z" level=info module="c2s" event="connection-open" connection="725ed148-b687-4c87-893d-52c8c1c78ba6" "transport"="tcp" "peer"="127.0.0.1:59556" "host"="localhost" +timestamp="2026-10-20T10:29:47.816Z" level=info module="c2s" event="tls-established" connection="6d5fa85c-f0da-40e4-b7e6-ea1c4f806993" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.816Z" level=info module="c2s" event="sasl-features" connection="6d5fa85c-f0da-40e4-b7e6-ea1c4f806993" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.842Z" level=info module="c2s" event="connection-open" connection="04db807b-d809-44ec-8faa-565ec8683964" "transport"="tcp" "peer"="127.0.0.1:59636" "host"="localhost" +timestamp="2026-10-20T10:29:47.844Z" level=info module="c2s" event="connection-open" connection="c645012a-58f4-4f74-9934-acd0186371f2" "transport"="tcp" "peer"="127.0.0.1:59586" "host"="localhost" +timestamp="2026-10-20T10:29:47.844Z" level=info module="c2s" event="connection-open" connection="08c98933-0def-46e8-889e-068f641a1abb" "transport"="tcp" "peer"="127.0.0.1:59616" "host"="localhost" +timestamp="2026-10-20T10:29:47.844Z" level=info module="c2s" event="connection-open" connection="7f5a2bc4-74d8-4081-a522-ff6512b2c054" "transport"="tcp" "peer"="127.0.0.1:59602" "host"="localhost" +timestamp="2026-10-20T10:29:47.844Z" level=info module="c2s" event="connection-open" connection="0f053aaa-e6c4-4825-a511-bf9318109073" "transport"="tcp" "peer"="127.0.0.1:59632" "host"="localhost" +timestamp="2026-10-20T10:29:47.844Z" level=info module="c2s" event="sasl-attempt" connection="6d5fa85c-f0da-40e4-b7e6-ea1c4f806993" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.844Z" level=info module="c2s" event="auth-identity" connection="6d5fa85c-f0da-40e4-b7e6-ea1c4f806993" "user"="load-88" +timestamp="2026-10-20T10:29:47.846Z" level=info module="c2s" event="auth-success" connection="6d5fa85c-f0da-40e4-b7e6-ea1c4f806993" "user"="load-88" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.867Z" level=info module="c2s" event="tls-established" connection="75967e25-168b-46fe-81df-14b6be7e6943" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.867Z" level=info module="c2s" event="sasl-features" connection="75967e25-168b-46fe-81df-14b6be7e6943" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.867Z" level=info module="c2s" event="tls-established" connection="acff0c56-d9ab-4aa4-8697-4f3e6d3a3709" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.867Z" level=info module="c2s" event="sasl-features" connection="acff0c56-d9ab-4aa4-8697-4f3e6d3a3709" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.867Z" level=info module="c2s" event="tls-established" connection="e14f5362-e901-48ab-96f6-e26caaf0dc21" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.867Z" level=info module="c2s" event="sasl-features" connection="e14f5362-e901-48ab-96f6-e26caaf0dc21" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.867Z" level=info module="c2s" event="tls-established" connection="725ed148-b687-4c87-893d-52c8c1c78ba6" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.867Z" level=info module="c2s" event="sasl-features" connection="725ed148-b687-4c87-893d-52c8c1c78ba6" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.867Z" level=info module="c2s" event="tls-established" connection="b79510f1-2e4d-4def-8eec-2c00a32ac12d" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.867Z" level=info module="c2s" event="sasl-features" connection="b79510f1-2e4d-4def-8eec-2c00a32ac12d" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.867Z" level=info module="c2s" event="connection-open" connection="d676e41c-f935-4e52-a332-d3a97d846288" "transport"="tcp" "peer"="127.0.0.1:59672" "host"="localhost" +timestamp="2026-10-20T10:29:47.868Z" level=info module="c2s" event="sasl-attempt" connection="75967e25-168b-46fe-81df-14b6be7e6943" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.868Z" level=info module="c2s" event="auth-identity" connection="75967e25-168b-46fe-81df-14b6be7e6943" "user"="load-89" +timestamp="2026-10-20T10:29:47.868Z" level=info module="c2s" event="connection-open" connection="8125459d-07aa-47d8-ae63-b190f741558e" "transport"="tcp" "peer"="127.0.0.1:59644" "host"="localhost" +timestamp="2026-10-20T10:29:47.868Z" level=info module="c2s" event="connection-open" connection="80608da6-a158-475f-9007-6841f05adae5" "transport"="tcp" "peer"="127.0.0.1:59658" "host"="localhost" +timestamp="2026-10-20T10:29:47.868Z" level=info module="c2s" event="tls-established" connection="d0443ca4-948b-45d4-bef9-f7600e18cce5" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.868Z" level=info module="c2s" event="sasl-features" connection="d0443ca4-948b-45d4-bef9-f7600e18cce5" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.868Z" level=info module="c2s" event="tls-established" connection="b154ecb2-72ed-48fd-b58a-691a1fa3f2de" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.868Z" level=info module="c2s" event="sasl-features" connection="b154ecb2-72ed-48fd-b58a-691a1fa3f2de" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.868Z" level=info module="c2s" event="sasl-attempt" connection="acff0c56-d9ab-4aa4-8697-4f3e6d3a3709" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.868Z" level=info module="c2s" event="auth-identity" connection="acff0c56-d9ab-4aa4-8697-4f3e6d3a3709" "user"="load-87" +timestamp="2026-10-20T10:29:47.868Z" level=info module="c2s" event="sasl-attempt" connection="e14f5362-e901-48ab-96f6-e26caaf0dc21" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.868Z" level=info module="c2s" event="auth-identity" connection="e14f5362-e901-48ab-96f6-e26caaf0dc21" "user"="load-86" +timestamp="2026-10-20T10:29:47.868Z" level=info module="c2s" event="sasl-attempt" connection="725ed148-b687-4c87-893d-52c8c1c78ba6" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.868Z" level=info module="c2s" event="auth-identity" connection="725ed148-b687-4c87-893d-52c8c1c78ba6" "user"="load-92" +timestamp="2026-10-20T10:29:47.868Z" level=info module="c2s" event="resource-bound" connection="6d5fa85c-f0da-40e4-b7e6-ea1c4f806993" "jid"="load-88@localhost/load-88" "mode"="legacy" +timestamp="2026-10-20T10:29:47.869Z" level=info module="c2s" event="sasl-attempt" connection="d0443ca4-948b-45d4-bef9-f7600e18cce5" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.869Z" level=info module="c2s" event="auth-identity" connection="d0443ca4-948b-45d4-bef9-f7600e18cce5" "user"="load-90" +timestamp="2026-10-20T10:29:47.869Z" level=info module="c2s" event="sasl-attempt" connection="b79510f1-2e4d-4def-8eec-2c00a32ac12d" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.869Z" level=info module="c2s" event="auth-identity" connection="b79510f1-2e4d-4def-8eec-2c00a32ac12d" "user"="load-91" +timestamp="2026-10-20T10:29:47.870Z" level=info module="c2s" event="auth-success" connection="acff0c56-d9ab-4aa4-8697-4f3e6d3a3709" "user"="load-87" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.870Z" level=info module="c2s" event="auth-success" connection="e14f5362-e901-48ab-96f6-e26caaf0dc21" "user"="load-86" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.870Z" level=info module="c2s" event="auth-success" connection="75967e25-168b-46fe-81df-14b6be7e6943" "user"="load-89" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.870Z" level=info module="c2s" event="auth-success" connection="725ed148-b687-4c87-893d-52c8c1c78ba6" "user"="load-92" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.870Z" level=info module="c2s" event="auth-success" connection="d0443ca4-948b-45d4-bef9-f7600e18cce5" "user"="load-90" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.870Z" level=info module="c2s" event="auth-success" connection="b79510f1-2e4d-4def-8eec-2c00a32ac12d" "user"="load-91" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.874Z" level=info module="c2s" event="sasl-attempt" connection="b154ecb2-72ed-48fd-b58a-691a1fa3f2de" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.874Z" level=info module="c2s" event="auth-identity" connection="b154ecb2-72ed-48fd-b58a-691a1fa3f2de" "user"="load-93" +timestamp="2026-10-20T10:29:47.874Z" level=info module="c2s" event="connection-open" connection="6461d7d1-0983-4c9b-8c68-35b0e8ddc223" "transport"="tcp" "peer"="127.0.0.1:59674" "host"="localhost" +timestamp="2026-10-20T10:29:47.875Z" level=info module="c2s" event="tls-established" connection="7f5a2bc4-74d8-4081-a522-ff6512b2c054" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.875Z" level=info module="c2s" event="sasl-features" connection="7f5a2bc4-74d8-4081-a522-ff6512b2c054" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.875Z" level=info module="c2s" event="tls-established" connection="c645012a-58f4-4f74-9934-acd0186371f2" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.875Z" level=info module="c2s" event="sasl-features" connection="c645012a-58f4-4f74-9934-acd0186371f2" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.875Z" level=info module="c2s" event="tls-established" connection="08c98933-0def-46e8-889e-068f641a1abb" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.875Z" level=info module="c2s" event="sasl-features" connection="08c98933-0def-46e8-889e-068f641a1abb" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.875Z" level=info module="c2s" event="tls-established" connection="0f053aaa-e6c4-4825-a511-bf9318109073" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.875Z" level=info module="c2s" event="sasl-features" connection="0f053aaa-e6c4-4825-a511-bf9318109073" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.875Z" level=info module="c2s" event="tls-established" connection="04db807b-d809-44ec-8faa-565ec8683964" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.875Z" level=info module="c2s" event="sasl-features" connection="04db807b-d809-44ec-8faa-565ec8683964" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.876Z" level=info module="c2s" event="tls-established" connection="d676e41c-f935-4e52-a332-d3a97d846288" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.876Z" level=info module="c2s" event="sasl-features" connection="d676e41c-f935-4e52-a332-d3a97d846288" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.876Z" level=info module="c2s" event="tls-established" connection="8125459d-07aa-47d8-ae63-b190f741558e" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.876Z" level=info module="c2s" event="sasl-features" connection="8125459d-07aa-47d8-ae63-b190f741558e" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.876Z" level=info module="c2s" event="auth-success" connection="b154ecb2-72ed-48fd-b58a-691a1fa3f2de" "user"="load-93" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.876Z" level=info module="c2s" event="resource-bound" connection="acff0c56-d9ab-4aa4-8697-4f3e6d3a3709" "jid"="load-87@localhost/load-87" "mode"="legacy" +timestamp="2026-10-20T10:29:47.876Z" level=info module="c2s" event="sasl-attempt" connection="7f5a2bc4-74d8-4081-a522-ff6512b2c054" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.876Z" level=info module="c2s" event="auth-identity" connection="7f5a2bc4-74d8-4081-a522-ff6512b2c054" "user"="load-95" +timestamp="2026-10-20T10:29:47.876Z" level=info module="c2s" event="resource-bound" connection="e14f5362-e901-48ab-96f6-e26caaf0dc21" "jid"="load-86@localhost/load-86" "mode"="legacy" +timestamp="2026-10-20T10:29:47.876Z" level=info module="c2s" event="resource-bound" connection="75967e25-168b-46fe-81df-14b6be7e6943" "jid"="load-89@localhost/load-89" "mode"="legacy" +timestamp="2026-10-20T10:29:47.877Z" level=info module="c2s" event="resource-bound" connection="725ed148-b687-4c87-893d-52c8c1c78ba6" "jid"="load-92@localhost/load-92" "mode"="legacy" +timestamp="2026-10-20T10:29:47.877Z" level=info module="c2s" event="sasl-attempt" connection="c645012a-58f4-4f74-9934-acd0186371f2" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.877Z" level=info module="c2s" event="auth-identity" connection="c645012a-58f4-4f74-9934-acd0186371f2" "user"="load-94" +timestamp="2026-10-20T10:29:47.877Z" level=info module="c2s" event="sasl-attempt" connection="08c98933-0def-46e8-889e-068f641a1abb" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.877Z" level=info module="c2s" event="auth-identity" connection="08c98933-0def-46e8-889e-068f641a1abb" "user"="load-96" +timestamp="2026-10-20T10:29:47.877Z" level=info module="c2s" event="sasl-attempt" connection="04db807b-d809-44ec-8faa-565ec8683964" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.877Z" level=info module="c2s" event="auth-identity" connection="04db807b-d809-44ec-8faa-565ec8683964" "user"="load-98" +timestamp="2026-10-20T10:29:47.877Z" level=info module="c2s" event="tls-established" connection="80608da6-a158-475f-9007-6841f05adae5" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.877Z" level=info module="c2s" event="sasl-features" connection="80608da6-a158-475f-9007-6841f05adae5" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.877Z" level=info module="c2s" event="resource-bound" connection="d0443ca4-948b-45d4-bef9-f7600e18cce5" "jid"="load-90@localhost/load-90" "mode"="legacy" +timestamp="2026-10-20T10:29:47.877Z" level=info module="c2s" event="resource-bound" connection="b79510f1-2e4d-4def-8eec-2c00a32ac12d" "jid"="load-91@localhost/load-91" "mode"="legacy" +timestamp="2026-10-20T10:29:47.877Z" level=info module="c2s" event="sasl-attempt" connection="0f053aaa-e6c4-4825-a511-bf9318109073" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.877Z" level=info module="c2s" event="auth-identity" connection="0f053aaa-e6c4-4825-a511-bf9318109073" "user"="load-97" +timestamp="2026-10-20T10:29:47.881Z" level=info module="c2s" event="auth-success" connection="7f5a2bc4-74d8-4081-a522-ff6512b2c054" "user"="load-95" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.881Z" level=info module="c2s" event="auth-success" connection="c645012a-58f4-4f74-9934-acd0186371f2" "user"="load-94" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.881Z" level=info module="c2s" event="auth-success" connection="08c98933-0def-46e8-889e-068f641a1abb" "user"="load-96" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.881Z" level=info module="c2s" event="auth-success" connection="04db807b-d809-44ec-8faa-565ec8683964" "user"="load-98" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.881Z" level=info module="c2s" event="auth-success" connection="0f053aaa-e6c4-4825-a511-bf9318109073" "user"="load-97" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.883Z" level=info module="c2s" event="sasl-attempt" connection="8125459d-07aa-47d8-ae63-b190f741558e" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.883Z" level=info module="c2s" event="auth-identity" connection="8125459d-07aa-47d8-ae63-b190f741558e" "user"="load-99" +timestamp="2026-10-20T10:29:47.895Z" level=info module="c2s" event="auth-success" connection="8125459d-07aa-47d8-ae63-b190f741558e" "user"="load-99" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.895Z" level=info module="c2s" event="connection-open" connection="bff2dc11-eb59-404f-8f26-071eba264d7c" "transport"="tcp" "peer"="127.0.0.1:59684" "host"="localhost" +timestamp="2026-10-20T10:29:47.895Z" level=info module="c2s" event="sasl-attempt" connection="d676e41c-f935-4e52-a332-d3a97d846288" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.895Z" level=info module="c2s" event="auth-identity" connection="d676e41c-f935-4e52-a332-d3a97d846288" "user"="load-1" +timestamp="2026-10-20T10:29:47.895Z" level=info module="c2s" event="sasl-attempt" connection="80608da6-a158-475f-9007-6841f05adae5" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.895Z" level=info module="c2s" event="auth-identity" connection="80608da6-a158-475f-9007-6841f05adae5" "user"="load-0" +timestamp="2026-10-20T10:29:47.902Z" level=info module="c2s" event="auth-success" connection="d676e41c-f935-4e52-a332-d3a97d846288" "user"="load-1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.902Z" level=info module="c2s" event="auth-success" connection="80608da6-a158-475f-9007-6841f05adae5" "user"="load-0" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.903Z" level=info module="c2s" event="resource-bound" connection="b154ecb2-72ed-48fd-b58a-691a1fa3f2de" "jid"="load-93@localhost/load-93" "mode"="legacy" +timestamp="2026-10-20T10:29:47.907Z" level=info module="c2s" event="connection-open" connection="ce9f94c0-ec3b-4cb3-895e-ed758f939a68" "transport"="tcp" "peer"="127.0.0.1:59682" "host"="localhost" +timestamp="2026-10-20T10:29:47.912Z" level=info module="c2s" event="resource-bound" connection="08c98933-0def-46e8-889e-068f641a1abb" "jid"="load-96@localhost/load-96" "mode"="legacy" +timestamp="2026-10-20T10:29:47.912Z" level=info module="c2s" event="resource-bound" connection="04db807b-d809-44ec-8faa-565ec8683964" "jid"="load-98@localhost/load-98" "mode"="legacy" +timestamp="2026-10-20T10:29:47.921Z" level=info module="c2s" event="tls-established" connection="6461d7d1-0983-4c9b-8c68-35b0e8ddc223" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.921Z" level=info module="c2s" event="sasl-features" connection="6461d7d1-0983-4c9b-8c68-35b0e8ddc223" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.927Z" level=info module="c2s" event="resource-bound" connection="c645012a-58f4-4f74-9934-acd0186371f2" "jid"="load-94@localhost/load-94" "mode"="legacy" +timestamp="2026-10-20T10:29:47.938Z" level=info module="c2s" event="resource-bound" connection="0f053aaa-e6c4-4825-a511-bf9318109073" "jid"="load-97@localhost/load-97" "mode"="legacy" +timestamp="2026-10-20T10:29:47.955Z" level=info module="c2s" event="resource-bound" connection="8125459d-07aa-47d8-ae63-b190f741558e" "jid"="load-99@localhost/load-99" "mode"="legacy" +timestamp="2026-10-20T10:29:47.956Z" level=info module="c2s" event="connection-open" connection="37de4028-1d7e-40d2-917f-d9a337d01bc7" "transport"="tcp" "peer"="127.0.0.1:59752" "host"="localhost" +timestamp="2026-10-20T10:29:47.959Z" level=info module="c2s" event="resource-bound" connection="7f5a2bc4-74d8-4081-a522-ff6512b2c054" "jid"="load-95@localhost/load-95" "mode"="legacy" +timestamp="2026-10-20T10:29:47.959Z" level=info module="c2s" event="connection-open" connection="3181e1be-d0c6-427b-afb6-b455be69b327" "transport"="tcp" "peer"="127.0.0.1:59704" "host"="localhost" +timestamp="2026-10-20T10:29:47.959Z" level=info module="c2s" event="connection-open" connection="99ce003d-85c9-4aa3-a17e-d3671f2a2e96" "transport"="tcp" "peer"="127.0.0.1:59688" "host"="localhost" +timestamp="2026-10-20T10:29:47.959Z" level=info module="c2s" event="connection-open" connection="076a9f15-1cb7-4696-a3e6-e7e0bb46a9e0" "transport"="tcp" "peer"="127.0.0.1:59694" "host"="localhost" +timestamp="2026-10-20T10:29:47.959Z" level=info module="c2s" event="connection-open" connection="511704ca-a40a-4574-8bc6-9e77aa1b2f40" "transport"="tcp" "peer"="127.0.0.1:59722" "host"="localhost" +timestamp="2026-10-20T10:29:47.959Z" level=info module="c2s" event="connection-open" connection="378149b4-a21b-408d-a2e1-8555c7681da9" "transport"="tcp" "peer"="127.0.0.1:59708" "host"="localhost" +timestamp="2026-10-20T10:29:47.960Z" level=info module="c2s" event="sasl-attempt" connection="6461d7d1-0983-4c9b-8c68-35b0e8ddc223" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.960Z" level=info module="c2s" event="auth-identity" connection="6461d7d1-0983-4c9b-8c68-35b0e8ddc223" "user"="load-2" +timestamp="2026-10-20T10:29:47.963Z" level=info module="c2s" event="auth-success" connection="6461d7d1-0983-4c9b-8c68-35b0e8ddc223" "user"="load-2" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.963Z" level=info module="c2s" event="connection-open" connection="7b08fdda-cb75-48bf-98a5-d1b51236c224" "transport"="tcp" "peer"="127.0.0.1:59736" "host"="localhost" +timestamp="2026-10-20T10:29:47.966Z" level=info module="c2s" event="connection-open" connection="64d104e2-5a48-4eb5-af71-536916188b80" "transport"="tcp" "peer"="127.0.0.1:59766" "host"="localhost" +timestamp="2026-10-20T10:29:47.971Z" level=info module="c2s" event="resource-bound" connection="d676e41c-f935-4e52-a332-d3a97d846288" "jid"="load-1@localhost/load-101" "mode"="legacy" +timestamp="2026-10-20T10:29:47.971Z" level=info module="c2s" event="resource-bound" connection="80608da6-a158-475f-9007-6841f05adae5" "jid"="load-0@localhost/load-100" "mode"="legacy" +timestamp="2026-10-20T10:29:47.975Z" level=info module="c2s" event="tls-established" connection="ce9f94c0-ec3b-4cb3-895e-ed758f939a68" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.975Z" level=info module="c2s" event="sasl-features" connection="ce9f94c0-ec3b-4cb3-895e-ed758f939a68" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.983Z" level=info module="c2s" event="tls-established" connection="bff2dc11-eb59-404f-8f26-071eba264d7c" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:47.983Z" level=info module="c2s" event="sasl-features" connection="bff2dc11-eb59-404f-8f26-071eba264d7c" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:47.983Z" level=info module="c2s" event="resource-bound" connection="6461d7d1-0983-4c9b-8c68-35b0e8ddc223" "jid"="load-2@localhost/load-102" "mode"="legacy" +timestamp="2026-10-20T10:29:47.983Z" level=info module="c2s" event="sasl-attempt" connection="ce9f94c0-ec3b-4cb3-895e-ed758f939a68" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.983Z" level=info module="c2s" event="auth-identity" connection="ce9f94c0-ec3b-4cb3-895e-ed758f939a68" "user"="load-3" +timestamp="2026-10-20T10:29:47.986Z" level=info module="c2s" event="auth-success" connection="ce9f94c0-ec3b-4cb3-895e-ed758f939a68" "user"="load-3" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:47.986Z" level=info module="c2s" event="connection-open" connection="0afc4c29-14c1-452a-97f1-3515a5971fc9" "transport"="tcp" "peer"="127.0.0.1:59770" "host"="localhost" +timestamp="2026-10-20T10:29:48.020Z" level=info module="c2s" event="connection-open" connection="74e7c1d1-2967-4975-a782-bfd826271405" "transport"="tcp" "peer"="127.0.0.1:59772" "host"="localhost" +timestamp="2026-10-20T10:29:48.021Z" level=info module="c2s" event="tls-established" connection="99ce003d-85c9-4aa3-a17e-d3671f2a2e96" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.021Z" level=info module="c2s" event="sasl-features" connection="99ce003d-85c9-4aa3-a17e-d3671f2a2e96" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.021Z" level=info module="c2s" event="sasl-attempt" connection="bff2dc11-eb59-404f-8f26-071eba264d7c" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.021Z" level=info module="c2s" event="auth-identity" connection="bff2dc11-eb59-404f-8f26-071eba264d7c" "user"="load-4" +timestamp="2026-10-20T10:29:48.021Z" level=info module="c2s" event="tls-established" connection="3181e1be-d0c6-427b-afb6-b455be69b327" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.021Z" level=info module="c2s" event="sasl-features" connection="3181e1be-d0c6-427b-afb6-b455be69b327" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.021Z" level=info module="c2s" event="tls-established" connection="378149b4-a21b-408d-a2e1-8555c7681da9" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.021Z" level=info module="c2s" event="sasl-features" connection="378149b4-a21b-408d-a2e1-8555c7681da9" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.025Z" level=info module="c2s" event="auth-success" connection="bff2dc11-eb59-404f-8f26-071eba264d7c" "user"="load-4" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.025Z" level=info module="c2s" event="sasl-attempt" connection="378149b4-a21b-408d-a2e1-8555c7681da9" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.025Z" level=info module="c2s" event="auth-identity" connection="378149b4-a21b-408d-a2e1-8555c7681da9" "user"="load-8" +timestamp="2026-10-20T10:29:48.025Z" level=info module="c2s" event="tls-established" connection="076a9f15-1cb7-4696-a3e6-e7e0bb46a9e0" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.025Z" level=info module="c2s" event="sasl-features" connection="076a9f15-1cb7-4696-a3e6-e7e0bb46a9e0" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.025Z" level=info module="c2s" event="tls-established" connection="7b08fdda-cb75-48bf-98a5-d1b51236c224" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.025Z" level=info module="c2s" event="sasl-features" connection="7b08fdda-cb75-48bf-98a5-d1b51236c224" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.025Z" level=info module="c2s" event="sasl-attempt" connection="99ce003d-85c9-4aa3-a17e-d3671f2a2e96" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.025Z" level=info module="c2s" event="auth-identity" connection="99ce003d-85c9-4aa3-a17e-d3671f2a2e96" "user"="load-5" +timestamp="2026-10-20T10:29:48.025Z" level=info module="c2s" event="tls-established" connection="511704ca-a40a-4574-8bc6-9e77aa1b2f40" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.025Z" level=info module="c2s" event="sasl-features" connection="511704ca-a40a-4574-8bc6-9e77aa1b2f40" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.026Z" level=info module="c2s" event="tls-established" connection="37de4028-1d7e-40d2-917f-d9a337d01bc7" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.026Z" level=info module="c2s" event="sasl-features" connection="37de4028-1d7e-40d2-917f-d9a337d01bc7" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.026Z" level=info module="c2s" event="sasl-attempt" connection="3181e1be-d0c6-427b-afb6-b455be69b327" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.026Z" level=info module="c2s" event="auth-identity" connection="3181e1be-d0c6-427b-afb6-b455be69b327" "user"="load-7" +timestamp="2026-10-20T10:29:48.044Z" level=info module="c2s" event="auth-success" connection="378149b4-a21b-408d-a2e1-8555c7681da9" "user"="load-8" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.044Z" level=info module="c2s" event="auth-success" connection="99ce003d-85c9-4aa3-a17e-d3671f2a2e96" "user"="load-5" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.044Z" level=info module="c2s" event="auth-success" connection="3181e1be-d0c6-427b-afb6-b455be69b327" "user"="load-7" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.048Z" level=info module="c2s" event="tls-established" connection="64d104e2-5a48-4eb5-af71-536916188b80" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.048Z" level=info module="c2s" event="sasl-features" connection="64d104e2-5a48-4eb5-af71-536916188b80" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.048Z" level=info module="c2s" event="sasl-attempt" connection="076a9f15-1cb7-4696-a3e6-e7e0bb46a9e0" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.048Z" level=info module="c2s" event="auth-identity" connection="076a9f15-1cb7-4696-a3e6-e7e0bb46a9e0" "user"="load-6" +timestamp="2026-10-20T10:29:48.048Z" level=info module="c2s" event="sasl-attempt" connection="7b08fdda-cb75-48bf-98a5-d1b51236c224" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.048Z" level=info module="c2s" event="auth-identity" connection="7b08fdda-cb75-48bf-98a5-d1b51236c224" "user"="load-10" +timestamp="2026-10-20T10:29:48.048Z" level=info module="c2s" event="sasl-attempt" connection="511704ca-a40a-4574-8bc6-9e77aa1b2f40" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.048Z" level=info module="c2s" event="auth-identity" connection="511704ca-a40a-4574-8bc6-9e77aa1b2f40" "user"="load-9" +timestamp="2026-10-20T10:29:48.048Z" level=info module="c2s" event="sasl-attempt" connection="37de4028-1d7e-40d2-917f-d9a337d01bc7" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.048Z" level=info module="c2s" event="auth-identity" connection="37de4028-1d7e-40d2-917f-d9a337d01bc7" "user"="load-11" +timestamp="2026-10-20T10:29:48.052Z" level=info module="c2s" event="auth-success" connection="076a9f15-1cb7-4696-a3e6-e7e0bb46a9e0" "user"="load-6" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.052Z" level=info module="c2s" event="auth-success" connection="511704ca-a40a-4574-8bc6-9e77aa1b2f40" "user"="load-9" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.052Z" level=info module="c2s" event="auth-success" connection="7b08fdda-cb75-48bf-98a5-d1b51236c224" "user"="load-10" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.052Z" level=info module="c2s" event="auth-success" connection="37de4028-1d7e-40d2-917f-d9a337d01bc7" "user"="load-11" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.058Z" level=info module="c2s" event="sasl-attempt" connection="64d104e2-5a48-4eb5-af71-536916188b80" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.058Z" level=info module="c2s" event="auth-identity" connection="64d104e2-5a48-4eb5-af71-536916188b80" "user"="load-12" +timestamp="2026-10-20T10:29:48.061Z" level=info module="c2s" event="auth-success" connection="64d104e2-5a48-4eb5-af71-536916188b80" "user"="load-12" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.070Z" level=info module="c2s" event="connection-open" connection="a7415a61-fc20-4fbd-b147-82075dc19e64" "transport"="tcp" "peer"="127.0.0.1:59806" "host"="localhost" +timestamp="2026-10-20T10:29:48.070Z" level=info module="c2s" event="connection-open" connection="f8b2a853-dc9f-4d80-9c85-733110bc926b" "transport"="tcp" "peer"="127.0.0.1:59780" "host"="localhost" +timestamp="2026-10-20T10:29:48.070Z" level=info module="c2s" event="connection-open" connection="8d05e248-1b1f-4619-a1aa-5cebb9ea20bd" "transport"="tcp" "peer"="127.0.0.1:59782" "host"="localhost" +timestamp="2026-10-20T10:29:48.070Z" level=info module="c2s" event="connection-open" connection="231239d5-0f01-4c59-8dc3-640939265b6b" "transport"="tcp" "peer"="127.0.0.1:59784" "host"="localhost" +timestamp="2026-10-20T10:29:48.070Z" level=info module="c2s" event="connection-open" connection="86f414a5-1d8c-4bc8-a94f-d70f0a491a91" "transport"="tcp" "peer"="127.0.0.1:59786" "host"="localhost" +timestamp="2026-10-20T10:29:48.070Z" level=info module="c2s" event="connection-open" connection="2e836192-5433-4928-89c3-6742c69f1c52" "transport"="tcp" "peer"="127.0.0.1:59796" "host"="localhost" +timestamp="2026-10-20T10:29:48.075Z" level=info module="c2s" event="resource-bound" connection="ce9f94c0-ec3b-4cb3-895e-ed758f939a68" "jid"="load-3@localhost/load-103" "mode"="legacy" +timestamp="2026-10-20T10:29:48.076Z" level=info module="c2s" event="resource-bound" connection="378149b4-a21b-408d-a2e1-8555c7681da9" "jid"="load-8@localhost/load-108" "mode"="legacy" +timestamp="2026-10-20T10:29:48.076Z" level=info module="c2s" event="resource-bound" connection="bff2dc11-eb59-404f-8f26-071eba264d7c" "jid"="load-4@localhost/load-104" "mode"="legacy" +timestamp="2026-10-20T10:29:48.076Z" level=info module="c2s" event="resource-bound" connection="3181e1be-d0c6-427b-afb6-b455be69b327" "jid"="load-7@localhost/load-107" "mode"="legacy" +timestamp="2026-10-20T10:29:48.076Z" level=info module="c2s" event="resource-bound" connection="99ce003d-85c9-4aa3-a17e-d3671f2a2e96" "jid"="load-5@localhost/load-105" "mode"="legacy" +timestamp="2026-10-20T10:29:48.076Z" level=info module="c2s" event="connection-open" connection="9199ea16-d277-4524-9351-d88a87bb9df9" "transport"="tcp" "peer"="127.0.0.1:59816" "host"="localhost" +timestamp="2026-10-20T10:29:48.076Z" level=info module="c2s" event="tls-established" connection="74e7c1d1-2967-4975-a782-bfd826271405" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.076Z" level=info module="c2s" event="sasl-features" connection="74e7c1d1-2967-4975-a782-bfd826271405" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.076Z" level=info module="c2s" event="resource-bound" connection="37de4028-1d7e-40d2-917f-d9a337d01bc7" "jid"="load-11@localhost/load-111" "mode"="legacy" +timestamp="2026-10-20T10:29:48.076Z" level=info module="c2s" event="resource-bound" connection="511704ca-a40a-4574-8bc6-9e77aa1b2f40" "jid"="load-9@localhost/load-109" "mode"="legacy" +timestamp="2026-10-20T10:29:48.076Z" level=info module="c2s" event="resource-bound" connection="7b08fdda-cb75-48bf-98a5-d1b51236c224" "jid"="load-10@localhost/load-110" "mode"="legacy" +timestamp="2026-10-20T10:29:48.076Z" level=info module="c2s" event="resource-bound" connection="076a9f15-1cb7-4696-a3e6-e7e0bb46a9e0" "jid"="load-6@localhost/load-106" "mode"="legacy" +timestamp="2026-10-20T10:29:48.076Z" level=info module="c2s" event="resource-bound" connection="64d104e2-5a48-4eb5-af71-536916188b80" "jid"="load-12@localhost/load-112" "mode"="legacy" +timestamp="2026-10-20T10:29:48.080Z" level=info module="c2s" event="tls-established" connection="0afc4c29-14c1-452a-97f1-3515a5971fc9" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.080Z" level=info module="c2s" event="sasl-features" connection="0afc4c29-14c1-452a-97f1-3515a5971fc9" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.080Z" level=info module="c2s" event="sasl-attempt" connection="74e7c1d1-2967-4975-a782-bfd826271405" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.080Z" level=info module="c2s" event="auth-identity" connection="74e7c1d1-2967-4975-a782-bfd826271405" "user"="load-14" +timestamp="2026-10-20T10:29:48.087Z" level=info module="c2s" event="auth-success" connection="74e7c1d1-2967-4975-a782-bfd826271405" "user"="load-14" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.091Z" level=info module="c2s" event="tls-established" connection="86f414a5-1d8c-4bc8-a94f-d70f0a491a91" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.091Z" level=info module="c2s" event="sasl-features" connection="86f414a5-1d8c-4bc8-a94f-d70f0a491a91" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.100Z" level=info module="c2s" event="tls-established" connection="2e836192-5433-4928-89c3-6742c69f1c52" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.100Z" level=info module="c2s" event="sasl-features" connection="2e836192-5433-4928-89c3-6742c69f1c52" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.101Z" level=info module="c2s" event="connection-open" connection="df71ebe0-fac2-4e57-a11d-4f01931c531b" "transport"="tcp" "peer"="127.0.0.1:59818" "host"="localhost" +timestamp="2026-10-20T10:29:48.104Z" level=info module="c2s" event="sasl-attempt" connection="0afc4c29-14c1-452a-97f1-3515a5971fc9" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.104Z" level=info module="c2s" event="auth-identity" connection="0afc4c29-14c1-452a-97f1-3515a5971fc9" "user"="load-13" +timestamp="2026-10-20T10:29:48.104Z" level=info module="c2s" event="tls-established" connection="8d05e248-1b1f-4619-a1aa-5cebb9ea20bd" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.104Z" level=info module="c2s" event="sasl-features" connection="8d05e248-1b1f-4619-a1aa-5cebb9ea20bd" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.105Z" level=info module="c2s" event="tls-established" connection="f8b2a853-dc9f-4d80-9c85-733110bc926b" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.105Z" level=info module="c2s" event="sasl-features" connection="f8b2a853-dc9f-4d80-9c85-733110bc926b" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.124Z" level=info module="c2s" event="auth-success" connection="0afc4c29-14c1-452a-97f1-3515a5971fc9" "user"="load-13" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.124Z" level=info module="c2s" event="tls-established" connection="a7415a61-fc20-4fbd-b147-82075dc19e64" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.124Z" level=info module="c2s" event="sasl-features" connection="a7415a61-fc20-4fbd-b147-82075dc19e64" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.124Z" level=info module="c2s" event="sasl-attempt" connection="86f414a5-1d8c-4bc8-a94f-d70f0a491a91" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.124Z" level=info module="c2s" event="auth-identity" connection="86f414a5-1d8c-4bc8-a94f-d70f0a491a91" "user"="load-18" +timestamp="2026-10-20T10:29:48.125Z" level=info module="c2s" event="tls-established" connection="231239d5-0f01-4c59-8dc3-640939265b6b" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.125Z" level=info module="c2s" event="sasl-features" connection="231239d5-0f01-4c59-8dc3-640939265b6b" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.131Z" level=info module="c2s" event="auth-success" connection="86f414a5-1d8c-4bc8-a94f-d70f0a491a91" "user"="load-18" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.131Z" level=info module="c2s" event="sasl-attempt" connection="231239d5-0f01-4c59-8dc3-640939265b6b" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.131Z" level=info module="c2s" event="auth-identity" connection="231239d5-0f01-4c59-8dc3-640939265b6b" "user"="load-17" +timestamp="2026-10-20T10:29:48.131Z" level=info module="c2s" event="sasl-attempt" connection="2e836192-5433-4928-89c3-6742c69f1c52" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.131Z" level=info module="c2s" event="auth-identity" connection="2e836192-5433-4928-89c3-6742c69f1c52" "user"="load-19" +timestamp="2026-10-20T10:29:48.132Z" level=info module="c2s" event="resource-bound" connection="74e7c1d1-2967-4975-a782-bfd826271405" "jid"="load-14@localhost/load-114" "mode"="legacy" +timestamp="2026-10-20T10:29:48.136Z" level=info module="c2s" event="auth-success" connection="231239d5-0f01-4c59-8dc3-640939265b6b" "user"="load-17" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.136Z" level=info module="c2s" event="auth-success" connection="2e836192-5433-4928-89c3-6742c69f1c52" "user"="load-19" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.136Z" level=info module="c2s" event="connection-open" connection="216db327-d229-4bb6-a358-667f446ea966" "transport"="tcp" "peer"="127.0.0.1:59870" "host"="localhost" +timestamp="2026-10-20T10:29:48.136Z" level=info module="c2s" event="sasl-attempt" connection="8d05e248-1b1f-4619-a1aa-5cebb9ea20bd" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.136Z" level=info module="c2s" event="auth-identity" connection="8d05e248-1b1f-4619-a1aa-5cebb9ea20bd" "user"="load-16" +timestamp="2026-10-20T10:29:48.136Z" level=info module="c2s" event="tls-established" connection="9199ea16-d277-4524-9351-d88a87bb9df9" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.136Z" level=info module="c2s" event="sasl-features" connection="9199ea16-d277-4524-9351-d88a87bb9df9" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.136Z" level=info module="c2s" event="sasl-attempt" connection="f8b2a853-dc9f-4d80-9c85-733110bc926b" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.136Z" level=info module="c2s" event="auth-identity" connection="f8b2a853-dc9f-4d80-9c85-733110bc926b" "user"="load-15" +timestamp="2026-10-20T10:29:48.149Z" level=info module="c2s" event="auth-success" connection="8d05e248-1b1f-4619-a1aa-5cebb9ea20bd" "user"="load-16" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.149Z" level=info module="c2s" event="auth-success" connection="f8b2a853-dc9f-4d80-9c85-733110bc926b" "user"="load-15" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.156Z" level=info module="c2s" event="sasl-attempt" connection="a7415a61-fc20-4fbd-b147-82075dc19e64" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.156Z" level=info module="c2s" event="auth-identity" connection="a7415a61-fc20-4fbd-b147-82075dc19e64" "user"="load-20" +timestamp="2026-10-20T10:29:48.156Z" level=info module="c2s" event="connection-open" connection="fe0baa25-1ea4-42c8-afea-08e3314c47f8" "transport"="tcp" "peer"="127.0.0.1:59834" "host"="localhost" +timestamp="2026-10-20T10:29:48.156Z" level=info module="c2s" event="connection-open" connection="805e5f4d-0ab2-4277-8d10-adef10a9703a" "transport"="tcp" "peer"="127.0.0.1:59826" "host"="localhost" +timestamp="2026-10-20T10:29:48.156Z" level=info module="c2s" event="connection-open" connection="f07b806b-e1ff-42bf-b808-3a035993f0f8" "transport"="tcp" "peer"="127.0.0.1:59846" "host"="localhost" +timestamp="2026-10-20T10:29:48.156Z" level=info module="c2s" event="connection-open" connection="aec5adae-3a77-4dbd-8504-63b587949bc5" "transport"="tcp" "peer"="127.0.0.1:59858" "host"="localhost" +timestamp="2026-10-20T10:29:48.156Z" level=info module="c2s" event="resource-bound" connection="0afc4c29-14c1-452a-97f1-3515a5971fc9" "jid"="load-13@localhost/load-113" "mode"="legacy" +timestamp="2026-10-20T10:29:48.159Z" level=info module="c2s" event="auth-success" connection="a7415a61-fc20-4fbd-b147-82075dc19e64" "user"="load-20" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.161Z" level=info module="c2s" event="connection-open" connection="008ce59f-1d62-4c8a-944a-91c3a76cf435" "transport"="tcp" "peer"="127.0.0.1:59908" "host"="localhost" +timestamp="2026-10-20T10:29:48.161Z" level=info module="c2s" event="sasl-attempt" connection="9199ea16-d277-4524-9351-d88a87bb9df9" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.161Z" level=info module="c2s" event="auth-identity" connection="9199ea16-d277-4524-9351-d88a87bb9df9" "user"="load-21" +timestamp="2026-10-20T10:29:48.161Z" level=info module="c2s" event="connection-open" connection="7647640c-0305-40fe-bece-bb603be95c35" "transport"="tcp" "peer"="127.0.0.1:59886" "host"="localhost" +timestamp="2026-10-20T10:29:48.161Z" level=info module="c2s" event="connection-open" connection="1f0e6355-9b14-49cd-9f07-c068b9478a45" "transport"="tcp" "peer"="127.0.0.1:59902" "host"="localhost" +timestamp="2026-10-20T10:29:48.169Z" level=info module="c2s" event="auth-success" connection="9199ea16-d277-4524-9351-d88a87bb9df9" "user"="load-21" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.169Z" level=info module="c2s" event="connection-open" connection="00857d50-9780-474c-a156-2f4f33c6bed4" "transport"="tcp" "peer"="127.0.0.1:59920" "host"="localhost" +timestamp="2026-10-20T10:29:48.173Z" level=info module="c2s" event="resource-bound" connection="8d05e248-1b1f-4619-a1aa-5cebb9ea20bd" "jid"="load-16@localhost/load-116" "mode"="legacy" +timestamp="2026-10-20T10:29:48.173Z" level=info module="c2s" event="resource-bound" connection="86f414a5-1d8c-4bc8-a94f-d70f0a491a91" "jid"="load-18@localhost/load-118" "mode"="legacy" +timestamp="2026-10-20T10:29:48.173Z" level=info module="c2s" event="resource-bound" connection="2e836192-5433-4928-89c3-6742c69f1c52" "jid"="load-19@localhost/load-119" "mode"="legacy" +timestamp="2026-10-20T10:29:48.173Z" level=info module="c2s" event="tls-established" connection="df71ebe0-fac2-4e57-a11d-4f01931c531b" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.173Z" level=info module="c2s" event="sasl-features" connection="df71ebe0-fac2-4e57-a11d-4f01931c531b" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.173Z" level=info module="c2s" event="resource-bound" connection="f8b2a853-dc9f-4d80-9c85-733110bc926b" "jid"="load-15@localhost/load-115" "mode"="legacy" +timestamp="2026-10-20T10:29:48.173Z" level=info module="c2s" event="resource-bound" connection="231239d5-0f01-4c59-8dc3-640939265b6b" "jid"="load-17@localhost/load-117" "mode"="legacy" +timestamp="2026-10-20T10:29:48.174Z" level=info module="c2s" event="connection-open" connection="d1e0ef3b-c78a-45a8-87f8-6e9ef46e2950" "transport"="tcp" "peer"="127.0.0.1:59914" "host"="localhost" +timestamp="2026-10-20T10:29:48.174Z" level=info module="c2s" event="sasl-attempt" connection="df71ebe0-fac2-4e57-a11d-4f01931c531b" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.174Z" level=info module="c2s" event="auth-identity" connection="df71ebe0-fac2-4e57-a11d-4f01931c531b" "user"="load-22" +timestamp="2026-10-20T10:29:48.180Z" level=info module="c2s" event="auth-success" connection="df71ebe0-fac2-4e57-a11d-4f01931c531b" "user"="load-22" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.180Z" level=info module="c2s" event="resource-bound" connection="a7415a61-fc20-4fbd-b147-82075dc19e64" "jid"="load-20@localhost/load-120" "mode"="legacy" +timestamp="2026-10-20T10:29:48.188Z" level=info module="c2s" event="tls-established" connection="f07b806b-e1ff-42bf-b808-3a035993f0f8" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.188Z" level=info module="c2s" event="sasl-features" connection="f07b806b-e1ff-42bf-b808-3a035993f0f8" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.189Z" level=info module="c2s" event="resource-bound" connection="9199ea16-d277-4524-9351-d88a87bb9df9" "jid"="load-21@localhost/load-121" "mode"="legacy" +timestamp="2026-10-20T10:29:48.197Z" level=info module="c2s" event="tls-established" connection="805e5f4d-0ab2-4277-8d10-adef10a9703a" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.197Z" level=info module="c2s" event="sasl-features" connection="805e5f4d-0ab2-4277-8d10-adef10a9703a" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.197Z" level=info module="c2s" event="sasl-attempt" connection="f07b806b-e1ff-42bf-b808-3a035993f0f8" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.197Z" level=info module="c2s" event="auth-identity" connection="f07b806b-e1ff-42bf-b808-3a035993f0f8" "user"="load-25" +timestamp="2026-10-20T10:29:48.207Z" level=info module="c2s" event="auth-success" connection="f07b806b-e1ff-42bf-b808-3a035993f0f8" "user"="load-25" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.208Z" level=info module="c2s" event="tls-established" connection="aec5adae-3a77-4dbd-8504-63b587949bc5" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.208Z" level=info module="c2s" event="sasl-features" connection="aec5adae-3a77-4dbd-8504-63b587949bc5" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.208Z" level=info module="c2s" event="tls-established" connection="fe0baa25-1ea4-42c8-afea-08e3314c47f8" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.208Z" level=info module="c2s" event="sasl-features" connection="fe0baa25-1ea4-42c8-afea-08e3314c47f8" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.208Z" level=info module="c2s" event="tls-established" connection="216db327-d229-4bb6-a358-667f446ea966" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.208Z" level=info module="c2s" event="sasl-features" connection="216db327-d229-4bb6-a358-667f446ea966" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.208Z" level=info module="c2s" event="resource-bound" connection="df71ebe0-fac2-4e57-a11d-4f01931c531b" "jid"="load-22@localhost/load-122" "mode"="legacy" +timestamp="2026-10-20T10:29:48.208Z" level=info module="c2s" event="tls-established" connection="008ce59f-1d62-4c8a-944a-91c3a76cf435" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.209Z" level=info module="c2s" event="sasl-features" connection="008ce59f-1d62-4c8a-944a-91c3a76cf435" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.209Z" level=info module="c2s" event="connection-open" connection="4dca1a2a-a38e-47b0-b8bc-2da9dbf88d5b" "transport"="tcp" "peer"="127.0.0.1:59930" "host"="localhost" +timestamp="2026-10-20T10:29:48.223Z" level=info module="c2s" event="sasl-attempt" connection="805e5f4d-0ab2-4277-8d10-adef10a9703a" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.223Z" level=info module="c2s" event="auth-identity" connection="805e5f4d-0ab2-4277-8d10-adef10a9703a" "user"="load-23" +timestamp="2026-10-20T10:29:48.229Z" level=info module="c2s" event="auth-success" connection="805e5f4d-0ab2-4277-8d10-adef10a9703a" "user"="load-23" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.229Z" level=info module="c2s" event="tls-established" connection="00857d50-9780-474c-a156-2f4f33c6bed4" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.229Z" level=info module="c2s" event="sasl-features" connection="00857d50-9780-474c-a156-2f4f33c6bed4" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.229Z" level=info module="c2s" event="sasl-attempt" connection="aec5adae-3a77-4dbd-8504-63b587949bc5" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.229Z" level=info module="c2s" event="auth-identity" connection="aec5adae-3a77-4dbd-8504-63b587949bc5" "user"="load-26" +timestamp="2026-10-20T10:29:48.229Z" level=info module="c2s" event="sasl-attempt" connection="fe0baa25-1ea4-42c8-afea-08e3314c47f8" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.229Z" level=info module="c2s" event="auth-identity" connection="fe0baa25-1ea4-42c8-afea-08e3314c47f8" "user"="load-24" +timestamp="2026-10-20T10:29:48.229Z" level=info module="c2s" event="sasl-attempt" connection="216db327-d229-4bb6-a358-667f446ea966" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.229Z" level=info module="c2s" event="auth-identity" connection="216db327-d229-4bb6-a358-667f446ea966" "user"="load-27" +timestamp="2026-10-20T10:29:48.229Z" level=info module="c2s" event="resource-bound" connection="f07b806b-e1ff-42bf-b808-3a035993f0f8" "jid"="load-25@localhost/load-125" "mode"="legacy" +timestamp="2026-10-20T10:29:48.229Z" level=info module="c2s" event="tls-established" connection="7647640c-0305-40fe-bece-bb603be95c35" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.229Z" level=info module="c2s" event="sasl-features" connection="7647640c-0305-40fe-bece-bb603be95c35" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.229Z" level=info module="c2s" event="sasl-attempt" connection="008ce59f-1d62-4c8a-944a-91c3a76cf435" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.229Z" level=info module="c2s" event="auth-identity" connection="008ce59f-1d62-4c8a-944a-91c3a76cf435" "user"="load-30" +timestamp="2026-10-20T10:29:48.229Z" level=info module="c2s" event="tls-established" connection="d1e0ef3b-c78a-45a8-87f8-6e9ef46e2950" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.229Z" level=info module="c2s" event="sasl-features" connection="d1e0ef3b-c78a-45a8-87f8-6e9ef46e2950" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.240Z" level=info module="c2s" event="auth-success" connection="aec5adae-3a77-4dbd-8504-63b587949bc5" "user"="load-26" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.240Z" level=info module="c2s" event="auth-success" connection="008ce59f-1d62-4c8a-944a-91c3a76cf435" "user"="load-30" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.240Z" level=info module="c2s" event="auth-success" connection="fe0baa25-1ea4-42c8-afea-08e3314c47f8" "user"="load-24" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.240Z" level=info module="c2s" event="auth-success" connection="216db327-d229-4bb6-a358-667f446ea966" "user"="load-27" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.243Z" level=info module="c2s" event="connection-open" connection="736b360c-6845-47c4-b578-57314ff223f9" "transport"="tcp" "peer"="127.0.0.1:59964" "host"="localhost" +timestamp="2026-10-20T10:29:48.243Z" level=info module="c2s" event="connection-open" connection="e897ccf6-191d-4e95-80e2-630db86f6800" "transport"="tcp" "peer"="127.0.0.1:59932" "host"="localhost" +timestamp="2026-10-20T10:29:48.243Z" level=info module="c2s" event="connection-open" connection="c52b1e8c-2f04-4907-895a-9a60dfcd3bc1" "transport"="tcp" "peer"="127.0.0.1:59936" "host"="localhost" +timestamp="2026-10-20T10:29:48.244Z" level=info module="c2s" event="connection-open" connection="5b56c8f0-54c5-4fde-9d69-d376d6980290" "transport"="tcp" "peer"="127.0.0.1:59944" "host"="localhost" +timestamp="2026-10-20T10:29:48.244Z" level=info module="c2s" event="connection-open" connection="7e97f58b-31c3-4aed-9172-77eb15161905" "transport"="tcp" "peer"="127.0.0.1:59948" "host"="localhost" +timestamp="2026-10-20T10:29:48.244Z" level=info module="c2s" event="tls-established" connection="1f0e6355-9b14-49cd-9f07-c068b9478a45" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.244Z" level=info module="c2s" event="sasl-features" connection="1f0e6355-9b14-49cd-9f07-c068b9478a45" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.244Z" level=info module="c2s" event="sasl-attempt" connection="00857d50-9780-474c-a156-2f4f33c6bed4" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.244Z" level=info module="c2s" event="auth-identity" connection="00857d50-9780-474c-a156-2f4f33c6bed4" "user"="load-32" +timestamp="2026-10-20T10:29:48.248Z" level=info module="c2s" event="auth-success" connection="00857d50-9780-474c-a156-2f4f33c6bed4" "user"="load-32" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.248Z" level=info module="c2s" event="sasl-attempt" connection="7647640c-0305-40fe-bece-bb603be95c35" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.248Z" level=info module="c2s" event="auth-identity" connection="7647640c-0305-40fe-bece-bb603be95c35" "user"="load-28" +timestamp="2026-10-20T10:29:48.248Z" level=info module="c2s" event="sasl-attempt" connection="d1e0ef3b-c78a-45a8-87f8-6e9ef46e2950" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.248Z" level=info module="c2s" event="auth-identity" connection="d1e0ef3b-c78a-45a8-87f8-6e9ef46e2950" "user"="load-31" +timestamp="2026-10-20T10:29:48.251Z" level=info module="c2s" event="auth-success" connection="7647640c-0305-40fe-bece-bb603be95c35" "user"="load-28" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.251Z" level=info module="c2s" event="auth-success" connection="d1e0ef3b-c78a-45a8-87f8-6e9ef46e2950" "user"="load-31" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.259Z" level=info module="c2s" event="sasl-attempt" connection="1f0e6355-9b14-49cd-9f07-c068b9478a45" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.259Z" level=info module="c2s" event="auth-identity" connection="1f0e6355-9b14-49cd-9f07-c068b9478a45" "user"="load-29" +timestamp="2026-10-20T10:29:48.260Z" level=info module="c2s" event="resource-bound" connection="805e5f4d-0ab2-4277-8d10-adef10a9703a" "jid"="load-23@localhost/load-123" "mode"="legacy" +timestamp="2026-10-20T10:29:48.264Z" level=info module="c2s" event="auth-success" connection="1f0e6355-9b14-49cd-9f07-c068b9478a45" "user"="load-29" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.265Z" level=info module="c2s" event="resource-bound" connection="008ce59f-1d62-4c8a-944a-91c3a76cf435" "jid"="load-30@localhost/load-130" "mode"="legacy" +timestamp="2026-10-20T10:29:48.265Z" level=info module="c2s" event="connection-open" connection="ebc975ca-e12c-4b23-971d-7b0ae35f10fe" "transport"="tcp" "peer"="127.0.0.1:59976" "host"="localhost" +timestamp="2026-10-20T10:29:48.265Z" level=info module="c2s" event="resource-bound" connection="fe0baa25-1ea4-42c8-afea-08e3314c47f8" "jid"="load-24@localhost/load-124" "mode"="legacy" +timestamp="2026-10-20T10:29:48.265Z" level=info module="c2s" event="connection-open" connection="9ddad0d8-b62d-4edf-be74-ea6edfec12a1" "transport"="tcp" "peer"="127.0.0.1:59968" "host"="localhost" +timestamp="2026-10-20T10:29:48.265Z" level=info module="c2s" event="resource-bound" connection="7647640c-0305-40fe-bece-bb603be95c35" "jid"="load-28@localhost/load-128" "mode"="legacy" +timestamp="2026-10-20T10:29:48.265Z" level=info module="c2s" event="resource-bound" connection="aec5adae-3a77-4dbd-8504-63b587949bc5" "jid"="load-26@localhost/load-126" "mode"="legacy" +timestamp="2026-10-20T10:29:48.266Z" level=info module="c2s" event="tls-established" connection="4dca1a2a-a38e-47b0-b8bc-2da9dbf88d5b" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.266Z" level=info module="c2s" event="sasl-features" connection="4dca1a2a-a38e-47b0-b8bc-2da9dbf88d5b" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.266Z" level=info module="c2s" event="resource-bound" connection="d1e0ef3b-c78a-45a8-87f8-6e9ef46e2950" "jid"="load-31@localhost/load-131" "mode"="legacy" +timestamp="2026-10-20T10:29:48.266Z" level=info module="c2s" event="resource-bound" connection="216db327-d229-4bb6-a358-667f446ea966" "jid"="load-27@localhost/load-127" "mode"="legacy" +timestamp="2026-10-20T10:29:48.266Z" level=info module="c2s" event="resource-bound" connection="00857d50-9780-474c-a156-2f4f33c6bed4" "jid"="load-32@localhost/load-132" "mode"="legacy" +timestamp="2026-10-20T10:29:48.283Z" level=info module="c2s" event="tls-established" connection="7e97f58b-31c3-4aed-9172-77eb15161905" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.283Z" level=info module="c2s" event="sasl-features" connection="7e97f58b-31c3-4aed-9172-77eb15161905" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.293Z" level=info module="c2s" event="sasl-attempt" connection="7e97f58b-31c3-4aed-9172-77eb15161905" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.293Z" level=info module="c2s" event="auth-identity" connection="7e97f58b-31c3-4aed-9172-77eb15161905" "user"="load-37" +timestamp="2026-10-20T10:29:48.299Z" level=info module="c2s" event="auth-success" connection="7e97f58b-31c3-4aed-9172-77eb15161905" "user"="load-37" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.308Z" level=info module="c2s" event="tls-established" connection="5b56c8f0-54c5-4fde-9d69-d376d6980290" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.308Z" level=info module="c2s" event="sasl-features" connection="5b56c8f0-54c5-4fde-9d69-d376d6980290" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.312Z" level=info module="c2s" event="connection-open" connection="9fc7097d-967b-46cb-bf1d-0f33e863199e" "transport"="tcp" "peer"="127.0.0.1:60002" "host"="localhost" +timestamp="2026-10-20T10:29:48.312Z" level=info module="c2s" event="connection-open" connection="640a8111-1083-42e7-8a39-0348ea28e789" "transport"="tcp" "peer"="127.0.0.1:59984" "host"="localhost" +timestamp="2026-10-20T10:29:48.312Z" level=info module="c2s" event="connection-open" connection="8e40980f-738b-4a99-9638-b481665b9997" "transport"="tcp" "peer"="127.0.0.1:59996" "host"="localhost" +timestamp="2026-10-20T10:29:48.312Z" level=info module="c2s" event="connection-open" connection="87bdfa8b-18b8-4eda-92e9-9372ce3a469f" "transport"="tcp" "peer"="127.0.0.1:60000" "host"="localhost" +timestamp="2026-10-20T10:29:48.313Z" level=info module="c2s" event="sasl-attempt" connection="4dca1a2a-a38e-47b0-b8bc-2da9dbf88d5b" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.313Z" level=info module="c2s" event="auth-identity" connection="4dca1a2a-a38e-47b0-b8bc-2da9dbf88d5b" "user"="load-33" +timestamp="2026-10-20T10:29:48.313Z" level=info module="c2s" event="tls-established" connection="736b360c-6845-47c4-b578-57314ff223f9" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.313Z" level=info module="c2s" event="sasl-features" connection="736b360c-6845-47c4-b578-57314ff223f9" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.313Z" level=info module="c2s" event="resource-bound" connection="1f0e6355-9b14-49cd-9f07-c068b9478a45" "jid"="load-29@localhost/load-129" "mode"="legacy" +timestamp="2026-10-20T10:29:48.326Z" level=info module="c2s" event="auth-success" connection="4dca1a2a-a38e-47b0-b8bc-2da9dbf88d5b" "user"="load-33" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.326Z" level=info module="c2s" event="sasl-attempt" connection="5b56c8f0-54c5-4fde-9d69-d376d6980290" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.326Z" level=info module="c2s" event="auth-identity" connection="5b56c8f0-54c5-4fde-9d69-d376d6980290" "user"="load-36" +timestamp="2026-10-20T10:29:48.326Z" level=info module="c2s" event="tls-established" connection="c52b1e8c-2f04-4907-895a-9a60dfcd3bc1" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.326Z" level=info module="c2s" event="sasl-features" connection="c52b1e8c-2f04-4907-895a-9a60dfcd3bc1" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.333Z" level=info module="c2s" event="auth-success" connection="5b56c8f0-54c5-4fde-9d69-d376d6980290" "user"="load-36" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.334Z" level=info module="c2s" event="connection-open" connection="7e9db0b9-f591-4e94-86f8-d0856ad166af" "transport"="tcp" "peer"="127.0.0.1:60032" "host"="localhost" +timestamp="2026-10-20T10:29:48.334Z" level=info module="c2s" event="tls-established" connection="e897ccf6-191d-4e95-80e2-630db86f6800" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.334Z" level=info module="c2s" event="sasl-features" connection="e897ccf6-191d-4e95-80e2-630db86f6800" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.334Z" level=info module="c2s" event="tls-established" connection="ebc975ca-e12c-4b23-971d-7b0ae35f10fe" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.334Z" level=info module="c2s" event="sasl-features" connection="ebc975ca-e12c-4b23-971d-7b0ae35f10fe" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.334Z" level=info module="c2s" event="sasl-attempt" connection="736b360c-6845-47c4-b578-57314ff223f9" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.334Z" level=info module="c2s" event="auth-identity" connection="736b360c-6845-47c4-b578-57314ff223f9" "user"="load-38" +timestamp="2026-10-20T10:29:48.337Z" level=info module="c2s" event="auth-success" connection="736b360c-6845-47c4-b578-57314ff223f9" "user"="load-38" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.337Z" level=info module="c2s" event="sasl-attempt" connection="c52b1e8c-2f04-4907-895a-9a60dfcd3bc1" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.337Z" level=info module="c2s" event="auth-identity" connection="c52b1e8c-2f04-4907-895a-9a60dfcd3bc1" "user"="load-35" +timestamp="2026-10-20T10:29:48.338Z" level=info module="c2s" event="resource-bound" connection="7e97f58b-31c3-4aed-9172-77eb15161905" "jid"="load-37@localhost/load-137" "mode"="legacy" +timestamp="2026-10-20T10:29:48.338Z" level=info module="c2s" event="connection-open" connection="39b33755-a839-4de2-9147-f5081275ddf2" "transport"="tcp" "peer"="127.0.0.1:60010" "host"="localhost" +timestamp="2026-10-20T10:29:48.338Z" level=info module="c2s" event="connection-open" connection="d993b3e8-51a1-441a-a860-8fb4d4c22683" "transport"="tcp" "peer"="127.0.0.1:60026" "host"="localhost" +timestamp="2026-10-20T10:29:48.338Z" level=info module="c2s" event="resource-bound" connection="4dca1a2a-a38e-47b0-b8bc-2da9dbf88d5b" "jid"="load-33@localhost/load-133" "mode"="legacy" +timestamp="2026-10-20T10:29:48.338Z" level=info module="c2s" event="tls-established" connection="9ddad0d8-b62d-4edf-be74-ea6edfec12a1" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.338Z" level=info module="c2s" event="sasl-features" connection="9ddad0d8-b62d-4edf-be74-ea6edfec12a1" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.338Z" level=info module="c2s" event="sasl-attempt" connection="e897ccf6-191d-4e95-80e2-630db86f6800" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.338Z" level=info module="c2s" event="auth-identity" connection="e897ccf6-191d-4e95-80e2-630db86f6800" "user"="load-34" +timestamp="2026-10-20T10:29:48.338Z" level=info module="c2s" event="sasl-attempt" connection="ebc975ca-e12c-4b23-971d-7b0ae35f10fe" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.338Z" level=info module="c2s" event="auth-identity" connection="ebc975ca-e12c-4b23-971d-7b0ae35f10fe" "user"="load-40" +timestamp="2026-10-20T10:29:48.342Z" level=info module="c2s" event="auth-success" connection="c52b1e8c-2f04-4907-895a-9a60dfcd3bc1" "user"="load-35" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.342Z" level=info module="c2s" event="auth-success" connection="ebc975ca-e12c-4b23-971d-7b0ae35f10fe" "user"="load-40" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.342Z" level=info module="c2s" event="auth-success" connection="e897ccf6-191d-4e95-80e2-630db86f6800" "user"="load-34" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.346Z" level=info module="c2s" event="resource-bound" connection="5b56c8f0-54c5-4fde-9d69-d376d6980290" "jid"="load-36@localhost/load-136" "mode"="legacy" +timestamp="2026-10-20T10:29:48.346Z" level=info module="c2s" event="sasl-attempt" connection="9ddad0d8-b62d-4edf-be74-ea6edfec12a1" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.346Z" level=info module="c2s" event="auth-identity" connection="9ddad0d8-b62d-4edf-be74-ea6edfec12a1" "user"="load-39" +timestamp="2026-10-20T10:29:48.347Z" level=info module="c2s" event="resource-bound" connection="736b360c-6845-47c4-b578-57314ff223f9" "jid"="load-38@localhost/load-138" "mode"="legacy" +timestamp="2026-10-20T10:29:48.352Z" level=info module="c2s" event="auth-success" connection="9ddad0d8-b62d-4edf-be74-ea6edfec12a1" "user"="load-39" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.355Z" level=info module="c2s" event="resource-bound" connection="c52b1e8c-2f04-4907-895a-9a60dfcd3bc1" "jid"="load-35@localhost/load-135" "mode"="legacy" +timestamp="2026-10-20T10:29:48.356Z" level=info module="c2s" event="tls-established" connection="640a8111-1083-42e7-8a39-0348ea28e789" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.356Z" level=info module="c2s" event="sasl-features" connection="640a8111-1083-42e7-8a39-0348ea28e789" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.368Z" level=info module="c2s" event="tls-established" connection="39b33755-a839-4de2-9147-f5081275ddf2" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.368Z" level=info module="c2s" event="sasl-features" connection="39b33755-a839-4de2-9147-f5081275ddf2" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.368Z" level=info module="c2s" event="tls-established" connection="8e40980f-738b-4a99-9638-b481665b9997" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.368Z" level=info module="c2s" event="sasl-features" connection="8e40980f-738b-4a99-9638-b481665b9997" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.372Z" level=info module="c2s" event="connection-open" connection="fe78e27e-2c89-4d92-b502-6cdad9536edb" "transport"="tcp" "peer"="127.0.0.1:60084" "host"="localhost" +timestamp="2026-10-20T10:29:48.372Z" level=info module="c2s" event="connection-open" connection="c920d5d4-a9bd-4ed5-860a-9183ee602510" "transport"="tcp" "peer"="127.0.0.1:60048" "host"="localhost" +timestamp="2026-10-20T10:29:48.372Z" level=info module="c2s" event="connection-open" connection="ad804e45-754c-4304-9dc8-ee137d1b011a" "transport"="tcp" "peer"="127.0.0.1:60062" "host"="localhost" +timestamp="2026-10-20T10:29:48.372Z" level=info module="c2s" event="connection-open" connection="122320d8-24b4-421f-b27e-9fda08ede365" "transport"="tcp" "peer"="127.0.0.1:60064" "host"="localhost" +timestamp="2026-10-20T10:29:48.372Z" level=info module="c2s" event="connection-open" connection="67d33c99-a51a-451b-8b4f-f801ae3e1ca5" "transport"="tcp" "peer"="127.0.0.1:60076" "host"="localhost" +timestamp="2026-10-20T10:29:48.372Z" level=info module="c2s" event="tls-established" connection="7e9db0b9-f591-4e94-86f8-d0856ad166af" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.372Z" level=info module="c2s" event="sasl-features" connection="7e9db0b9-f591-4e94-86f8-d0856ad166af" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.372Z" level=info module="c2s" event="tls-established" connection="87bdfa8b-18b8-4eda-92e9-9372ce3a469f" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.372Z" level=info module="c2s" event="sasl-features" connection="87bdfa8b-18b8-4eda-92e9-9372ce3a469f" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.372Z" level=info module="c2s" event="tls-established" connection="9fc7097d-967b-46cb-bf1d-0f33e863199e" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.372Z" level=info module="c2s" event="sasl-features" connection="9fc7097d-967b-46cb-bf1d-0f33e863199e" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.372Z" level=info module="c2s" event="sasl-attempt" connection="7e9db0b9-f591-4e94-86f8-d0856ad166af" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.372Z" level=info module="c2s" event="auth-identity" connection="7e9db0b9-f591-4e94-86f8-d0856ad166af" "user"="load-47" +timestamp="2026-10-20T10:29:48.375Z" level=info module="c2s" event="auth-success" connection="7e9db0b9-f591-4e94-86f8-d0856ad166af" "user"="load-47" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.375Z" level=info module="c2s" event="sasl-attempt" connection="39b33755-a839-4de2-9147-f5081275ddf2" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.375Z" level=info module="c2s" event="auth-identity" connection="39b33755-a839-4de2-9147-f5081275ddf2" "user"="load-45" +timestamp="2026-10-20T10:29:48.375Z" level=info module="c2s" event="resource-bound" connection="e897ccf6-191d-4e95-80e2-630db86f6800" "jid"="load-34@localhost/load-134" "mode"="legacy" +timestamp="2026-10-20T10:29:48.376Z" level=info module="c2s" event="resource-bound" connection="ebc975ca-e12c-4b23-971d-7b0ae35f10fe" "jid"="load-40@localhost/load-140" "mode"="legacy" +timestamp="2026-10-20T10:29:48.376Z" level=info module="c2s" event="sasl-attempt" connection="640a8111-1083-42e7-8a39-0348ea28e789" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.376Z" level=info module="c2s" event="auth-identity" connection="640a8111-1083-42e7-8a39-0348ea28e789" "user"="load-41" +timestamp="2026-10-20T10:29:48.378Z" level=info module="c2s" event="auth-success" connection="640a8111-1083-42e7-8a39-0348ea28e789" "user"="load-41" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.378Z" level=info module="c2s" event="auth-success" connection="39b33755-a839-4de2-9147-f5081275ddf2" "user"="load-45" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.379Z" level=info module="c2s" event="sasl-attempt" connection="87bdfa8b-18b8-4eda-92e9-9372ce3a469f" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.379Z" level=info module="c2s" event="auth-identity" connection="87bdfa8b-18b8-4eda-92e9-9372ce3a469f" "user"="load-43" +timestamp="2026-10-20T10:29:48.379Z" level=info module="c2s" event="sasl-attempt" connection="9fc7097d-967b-46cb-bf1d-0f33e863199e" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.379Z" level=info module="c2s" event="auth-identity" connection="9fc7097d-967b-46cb-bf1d-0f33e863199e" "user"="load-44" +timestamp="2026-10-20T10:29:48.379Z" level=info module="c2s" event="resource-bound" connection="9ddad0d8-b62d-4edf-be74-ea6edfec12a1" "jid"="load-39@localhost/load-139" "mode"="legacy" +timestamp="2026-10-20T10:29:48.379Z" level=info module="c2s" event="connection-open" connection="6bb8ea27-d88a-4bcc-a2b4-a0944447d873" "transport"="tcp" "peer"="127.0.0.1:60092" "host"="localhost" +timestamp="2026-10-20T10:29:48.379Z" level=info module="c2s" event="tls-established" connection="d993b3e8-51a1-441a-a860-8fb4d4c22683" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.379Z" level=info module="c2s" event="sasl-features" connection="d993b3e8-51a1-441a-a860-8fb4d4c22683" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.382Z" level=info module="c2s" event="auth-success" connection="87bdfa8b-18b8-4eda-92e9-9372ce3a469f" "user"="load-43" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.382Z" level=info module="c2s" event="auth-success" connection="9fc7097d-967b-46cb-bf1d-0f33e863199e" "user"="load-44" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.385Z" level=info module="c2s" event="sasl-attempt" connection="8e40980f-738b-4a99-9638-b481665b9997" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.385Z" level=info module="c2s" event="auth-identity" connection="8e40980f-738b-4a99-9638-b481665b9997" "user"="load-42" +timestamp="2026-10-20T10:29:48.389Z" level=info module="c2s" event="auth-success" connection="8e40980f-738b-4a99-9638-b481665b9997" "user"="load-42" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.390Z" level=info module="c2s" event="resource-bound" connection="7e9db0b9-f591-4e94-86f8-d0856ad166af" "jid"="load-47@localhost/load-147" "mode"="legacy" +timestamp="2026-10-20T10:29:48.399Z" level=info module="c2s" event="sasl-attempt" connection="d993b3e8-51a1-441a-a860-8fb4d4c22683" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.399Z" level=info module="c2s" event="auth-identity" connection="d993b3e8-51a1-441a-a860-8fb4d4c22683" "user"="load-46" +timestamp="2026-10-20T10:29:48.399Z" level=info module="c2s" event="resource-bound" connection="640a8111-1083-42e7-8a39-0348ea28e789" "jid"="load-41@localhost/load-141" "mode"="legacy" +timestamp="2026-10-20T10:29:48.400Z" level=info module="c2s" event="resource-bound" connection="39b33755-a839-4de2-9147-f5081275ddf2" "jid"="load-45@localhost/load-145" "mode"="legacy" +timestamp="2026-10-20T10:29:48.406Z" level=info module="c2s" event="auth-success" connection="d993b3e8-51a1-441a-a860-8fb4d4c22683" "user"="load-46" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.407Z" level=info module="c2s" event="resource-bound" connection="87bdfa8b-18b8-4eda-92e9-9372ce3a469f" "jid"="load-43@localhost/load-143" "mode"="legacy" +timestamp="2026-10-20T10:29:48.407Z" level=info module="c2s" event="resource-bound" connection="9fc7097d-967b-46cb-bf1d-0f33e863199e" "jid"="load-44@localhost/load-144" "mode"="legacy" +timestamp="2026-10-20T10:29:48.407Z" level=info module="c2s" event="tls-established" connection="122320d8-24b4-421f-b27e-9fda08ede365" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.407Z" level=info module="c2s" event="sasl-features" connection="122320d8-24b4-421f-b27e-9fda08ede365" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.407Z" level=info module="c2s" event="tls-established" connection="fe78e27e-2c89-4d92-b502-6cdad9536edb" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.407Z" level=info module="c2s" event="sasl-features" connection="fe78e27e-2c89-4d92-b502-6cdad9536edb" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.407Z" level=info module="c2s" event="resource-bound" connection="8e40980f-738b-4a99-9638-b481665b9997" "jid"="load-42@localhost/load-142" "mode"="legacy" +timestamp="2026-10-20T10:29:48.421Z" level=info module="c2s" event="connection-open" connection="66f5a1a1-4142-480d-a877-71dec2d9a7ad" "transport"="tcp" "peer"="127.0.0.1:60152" "host"="localhost" +timestamp="2026-10-20T10:29:48.424Z" level=info module="c2s" event="tls-established" connection="67d33c99-a51a-451b-8b4f-f801ae3e1ca5" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.424Z" level=info module="c2s" event="sasl-features" connection="67d33c99-a51a-451b-8b4f-f801ae3e1ca5" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.432Z" level=info module="c2s" event="connection-open" connection="49558540-1d4f-4b88-b688-117c68a772db" "transport"="tcp" "peer"="127.0.0.1:60120" "host"="localhost" +timestamp="2026-10-20T10:29:48.432Z" level=info module="c2s" event="connection-open" connection="920701cd-0af2-4ea4-85bf-7557acdfe064" "transport"="tcp" "peer"="127.0.0.1:60100" "host"="localhost" +timestamp="2026-10-20T10:29:48.432Z" level=info module="c2s" event="connection-open" connection="667d537d-7ac9-4df5-835b-073b1c4c020b" "transport"="tcp" "peer"="127.0.0.1:60168" "host"="localhost" +timestamp="2026-10-20T10:29:48.432Z" level=info module="c2s" event="connection-open" connection="efd5a12a-76e6-49e7-9d42-93e4bbeced7e" "transport"="tcp" "peer"="127.0.0.1:60116" "host"="localhost" +timestamp="2026-10-20T10:29:48.432Z" level=info module="c2s" event="sasl-attempt" connection="67d33c99-a51a-451b-8b4f-f801ae3e1ca5" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.432Z" level=info module="c2s" event="auth-identity" connection="67d33c99-a51a-451b-8b4f-f801ae3e1ca5" "user"="load-51" +timestamp="2026-10-20T10:29:48.432Z" level=info module="c2s" event="tls-established" connection="c920d5d4-a9bd-4ed5-860a-9183ee602510" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.432Z" level=info module="c2s" event="sasl-features" connection="c920d5d4-a9bd-4ed5-860a-9183ee602510" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.433Z" level=info module="c2s" event="resource-bound" connection="d993b3e8-51a1-441a-a860-8fb4d4c22683" "jid"="load-46@localhost/load-146" "mode"="legacy" +timestamp="2026-10-20T10:29:48.433Z" level=info module="c2s" event="sasl-attempt" connection="fe78e27e-2c89-4d92-b502-6cdad9536edb" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.433Z" level=info module="c2s" event="auth-identity" connection="fe78e27e-2c89-4d92-b502-6cdad9536edb" "user"="load-52" +timestamp="2026-10-20T10:29:48.433Z" level=info module="c2s" event="sasl-attempt" connection="122320d8-24b4-421f-b27e-9fda08ede365" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.433Z" level=info module="c2s" event="auth-identity" connection="122320d8-24b4-421f-b27e-9fda08ede365" "user"="load-50" +timestamp="2026-10-20T10:29:48.433Z" level=info module="c2s" event="connection-open" connection="c543faab-4c63-498b-a802-b45edec07d8f" "transport"="tcp" "peer"="127.0.0.1:60136" "host"="localhost" +timestamp="2026-10-20T10:29:48.442Z" level=info module="c2s" event="auth-success" connection="67d33c99-a51a-451b-8b4f-f801ae3e1ca5" "user"="load-51" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.442Z" level=info module="c2s" event="auth-success" connection="fe78e27e-2c89-4d92-b502-6cdad9536edb" "user"="load-52" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.442Z" level=info module="c2s" event="auth-success" connection="122320d8-24b4-421f-b27e-9fda08ede365" "user"="load-50" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.453Z" level=info module="c2s" event="tls-established" connection="ad804e45-754c-4304-9dc8-ee137d1b011a" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.453Z" level=info module="c2s" event="sasl-features" connection="ad804e45-754c-4304-9dc8-ee137d1b011a" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.457Z" level=info module="c2s" event="connection-open" connection="7037c645-0747-4cd4-8c72-c75b84f6d1de" "transport"="tcp" "peer"="127.0.0.1:60174" "host"="localhost" +timestamp="2026-10-20T10:29:48.457Z" level=info module="c2s" event="tls-established" connection="6bb8ea27-d88a-4bcc-a2b4-a0944447d873" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.457Z" level=info module="c2s" event="sasl-features" connection="6bb8ea27-d88a-4bcc-a2b4-a0944447d873" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.458Z" level=info module="c2s" event="sasl-attempt" connection="c920d5d4-a9bd-4ed5-860a-9183ee602510" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.458Z" level=info module="c2s" event="auth-identity" connection="c920d5d4-a9bd-4ed5-860a-9183ee602510" "user"="load-48" +timestamp="2026-10-20T10:29:48.459Z" level=info module="c2s" event="auth-success" connection="c920d5d4-a9bd-4ed5-860a-9183ee602510" "user"="load-48" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.466Z" level=info module="c2s" event="sasl-attempt" connection="ad804e45-754c-4304-9dc8-ee137d1b011a" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.466Z" level=info module="c2s" event="auth-identity" connection="ad804e45-754c-4304-9dc8-ee137d1b011a" "user"="load-49" +timestamp="2026-10-20T10:29:48.469Z" level=info module="c2s" event="auth-success" connection="ad804e45-754c-4304-9dc8-ee137d1b011a" "user"="load-49" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.470Z" level=info module="c2s" event="sasl-attempt" connection="6bb8ea27-d88a-4bcc-a2b4-a0944447d873" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.470Z" level=info module="c2s" event="auth-identity" connection="6bb8ea27-d88a-4bcc-a2b4-a0944447d873" "user"="load-53" +timestamp="2026-10-20T10:29:48.470Z" level=info module="c2s" event="tls-established" connection="66f5a1a1-4142-480d-a877-71dec2d9a7ad" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.470Z" level=info module="c2s" event="sasl-features" connection="66f5a1a1-4142-480d-a877-71dec2d9a7ad" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.471Z" level=info module="c2s" event="resource-bound" connection="fe78e27e-2c89-4d92-b502-6cdad9536edb" "jid"="load-52@localhost/load-152" "mode"="legacy" +timestamp="2026-10-20T10:29:48.471Z" level=info module="c2s" event="resource-bound" connection="122320d8-24b4-421f-b27e-9fda08ede365" "jid"="load-50@localhost/load-150" "mode"="legacy" +timestamp="2026-10-20T10:29:48.471Z" level=info module="c2s" event="resource-bound" connection="67d33c99-a51a-451b-8b4f-f801ae3e1ca5" "jid"="load-51@localhost/load-151" "mode"="legacy" +timestamp="2026-10-20T10:29:48.473Z" level=info module="c2s" event="auth-success" connection="6bb8ea27-d88a-4bcc-a2b4-a0944447d873" "user"="load-53" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.474Z" level=info module="c2s" event="connection-open" connection="76a77ed4-70f1-44c1-8257-6f94be508c36" "transport"="tcp" "peer"="127.0.0.1:60190" "host"="localhost" +timestamp="2026-10-20T10:29:48.474Z" level=info module="c2s" event="connection-open" connection="7ac25b69-1437-4dce-ac05-ba351c6d2860" "transport"="tcp" "peer"="127.0.0.1:60188" "host"="localhost" +timestamp="2026-10-20T10:29:48.474Z" level=info module="c2s" event="tls-established" connection="49558540-1d4f-4b88-b688-117c68a772db" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.474Z" level=info module="c2s" event="sasl-features" connection="49558540-1d4f-4b88-b688-117c68a772db" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.474Z" level=info module="c2s" event="sasl-attempt" connection="66f5a1a1-4142-480d-a877-71dec2d9a7ad" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.474Z" level=info module="c2s" event="auth-identity" connection="66f5a1a1-4142-480d-a877-71dec2d9a7ad" "user"="load-58" +timestamp="2026-10-20T10:29:48.474Z" level=info module="c2s" event="tls-established" connection="920701cd-0af2-4ea4-85bf-7557acdfe064" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.474Z" level=info module="c2s" event="sasl-features" connection="920701cd-0af2-4ea4-85bf-7557acdfe064" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.474Z" level=info module="c2s" event="tls-established" connection="efd5a12a-76e6-49e7-9d42-93e4bbeced7e" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.474Z" level=info module="c2s" event="sasl-features" connection="efd5a12a-76e6-49e7-9d42-93e4bbeced7e" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.480Z" level=info module="c2s" event="auth-success" connection="66f5a1a1-4142-480d-a877-71dec2d9a7ad" "user"="load-58" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.489Z" level=info module="c2s" event="resource-bound" connection="c920d5d4-a9bd-4ed5-860a-9183ee602510" "jid"="load-48@localhost/load-148" "mode"="legacy" +timestamp="2026-10-20T10:29:48.489Z" level=info module="c2s" event="resource-bound" connection="6bb8ea27-d88a-4bcc-a2b4-a0944447d873" "jid"="load-53@localhost/load-153" "mode"="legacy" +timestamp="2026-10-20T10:29:48.489Z" level=info module="c2s" event="tls-established" connection="c543faab-4c63-498b-a802-b45edec07d8f" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.489Z" level=info module="c2s" event="sasl-features" connection="c543faab-4c63-498b-a802-b45edec07d8f" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.489Z" level=info module="c2s" event="tls-established" connection="667d537d-7ac9-4df5-835b-073b1c4c020b" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.489Z" level=info module="c2s" event="sasl-features" connection="667d537d-7ac9-4df5-835b-073b1c4c020b" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.489Z" level=info module="c2s" event="resource-bound" connection="ad804e45-754c-4304-9dc8-ee137d1b011a" "jid"="load-49@localhost/load-149" "mode"="legacy" +timestamp="2026-10-20T10:29:48.489Z" level=info module="c2s" event="sasl-attempt" connection="49558540-1d4f-4b88-b688-117c68a772db" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.489Z" level=info module="c2s" event="auth-identity" connection="49558540-1d4f-4b88-b688-117c68a772db" "user"="load-56" +timestamp="2026-10-20T10:29:48.490Z" level=info module="c2s" event="sasl-attempt" connection="920701cd-0af2-4ea4-85bf-7557acdfe064" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.490Z" level=info module="c2s" event="auth-identity" connection="920701cd-0af2-4ea4-85bf-7557acdfe064" "user"="load-54" +timestamp="2026-10-20T10:29:48.490Z" level=info module="c2s" event="sasl-attempt" connection="efd5a12a-76e6-49e7-9d42-93e4bbeced7e" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.490Z" level=info module="c2s" event="auth-identity" connection="efd5a12a-76e6-49e7-9d42-93e4bbeced7e" "user"="load-55" +timestamp="2026-10-20T10:29:48.494Z" level=info module="c2s" event="auth-success" connection="49558540-1d4f-4b88-b688-117c68a772db" "user"="load-56" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.494Z" level=info module="c2s" event="auth-success" connection="efd5a12a-76e6-49e7-9d42-93e4bbeced7e" "user"="load-55" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.494Z" level=info module="c2s" event="auth-success" connection="920701cd-0af2-4ea4-85bf-7557acdfe064" "user"="load-54" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.497Z" level=info module="c2s" event="connection-open" connection="651c4e09-727a-4568-a461-6251c82344e8" "transport"="tcp" "peer"="127.0.0.1:60240" "host"="localhost" +timestamp="2026-10-20T10:29:48.497Z" level=info module="c2s" event="connection-open" connection="701b586b-d584-445b-88da-9b2263b3ae7e" "transport"="tcp" "peer"="127.0.0.1:60206" "host"="localhost" +timestamp="2026-10-20T10:29:48.497Z" level=info module="c2s" event="connection-open" connection="66c5a320-e98a-405a-a522-515da3a06b49" "transport"="tcp" "peer"="127.0.0.1:60222" "host"="localhost" +timestamp="2026-10-20T10:29:48.497Z" level=info module="c2s" event="connection-open" connection="d743a8b9-ccc1-4a3e-b05e-290af3cb8a14" "transport"="tcp" "peer"="127.0.0.1:60234" "host"="localhost" +timestamp="2026-10-20T10:29:48.502Z" level=info module="c2s" event="resource-bound" connection="66f5a1a1-4142-480d-a877-71dec2d9a7ad" "jid"="load-58@localhost/load-158" "mode"="legacy" +timestamp="2026-10-20T10:29:48.504Z" level=info module="c2s" event="sasl-attempt" connection="c543faab-4c63-498b-a802-b45edec07d8f" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.504Z" level=info module="c2s" event="auth-identity" connection="c543faab-4c63-498b-a802-b45edec07d8f" "user"="load-57" +timestamp="2026-10-20T10:29:48.504Z" level=info module="c2s" event="sasl-attempt" connection="667d537d-7ac9-4df5-835b-073b1c4c020b" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.504Z" level=info module="c2s" event="auth-identity" connection="667d537d-7ac9-4df5-835b-073b1c4c020b" "user"="load-59" +timestamp="2026-10-20T10:29:48.504Z" level=info module="c2s" event="tls-established" connection="7037c645-0747-4cd4-8c72-c75b84f6d1de" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.504Z" level=info module="c2s" event="sasl-features" connection="7037c645-0747-4cd4-8c72-c75b84f6d1de" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.510Z" level=info module="c2s" event="auth-success" connection="c543faab-4c63-498b-a802-b45edec07d8f" "user"="load-57" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.511Z" level=info module="c2s" event="auth-success" connection="667d537d-7ac9-4df5-835b-073b1c4c020b" "user"="load-59" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.518Z" level=info module="c2s" event="tls-established" connection="76a77ed4-70f1-44c1-8257-6f94be508c36" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.518Z" level=info module="c2s" event="sasl-features" connection="76a77ed4-70f1-44c1-8257-6f94be508c36" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.523Z" level=info module="c2s" event="connection-open" connection="ad7a64e0-359a-4fd6-8c4e-f92aac751550" "transport"="tcp" "peer"="127.0.0.1:60252" "host"="localhost" +timestamp="2026-10-20T10:29:48.523Z" level=info module="c2s" event="sasl-attempt" connection="7037c645-0747-4cd4-8c72-c75b84f6d1de" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.523Z" level=info module="c2s" event="auth-identity" connection="7037c645-0747-4cd4-8c72-c75b84f6d1de" "user"="load-60" +timestamp="2026-10-20T10:29:48.523Z" level=info module="c2s" event="connection-open" connection="df53e5a7-87ee-4273-b728-a32e1f14bc49" "transport"="tcp" "peer"="127.0.0.1:60250" "host"="localhost" +timestamp="2026-10-20T10:29:48.523Z" level=info module="c2s" event="resource-bound" connection="49558540-1d4f-4b88-b688-117c68a772db" "jid"="load-56@localhost/load-156" "mode"="legacy" +timestamp="2026-10-20T10:29:48.523Z" level=info module="c2s" event="resource-bound" connection="efd5a12a-76e6-49e7-9d42-93e4bbeced7e" "jid"="load-55@localhost/load-155" "mode"="legacy" +timestamp="2026-10-20T10:29:48.524Z" level=info module="c2s" event="resource-bound" connection="920701cd-0af2-4ea4-85bf-7557acdfe064" "jid"="load-54@localhost/load-154" "mode"="legacy" +timestamp="2026-10-20T10:29:48.527Z" level=info module="c2s" event="auth-success" connection="7037c645-0747-4cd4-8c72-c75b84f6d1de" "user"="load-60" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.527Z" level=info module="c2s" event="tls-established" connection="651c4e09-727a-4568-a461-6251c82344e8" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.527Z" level=info module="c2s" event="sasl-features" connection="651c4e09-727a-4568-a461-6251c82344e8" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.527Z" level=info module="c2s" event="tls-established" connection="7ac25b69-1437-4dce-ac05-ba351c6d2860" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.527Z" level=info module="c2s" event="sasl-features" connection="7ac25b69-1437-4dce-ac05-ba351c6d2860" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.527Z" level=info module="c2s" event="resource-bound" connection="c543faab-4c63-498b-a802-b45edec07d8f" "jid"="load-57@localhost/load-157" "mode"="legacy" +timestamp="2026-10-20T10:29:48.527Z" level=info module="c2s" event="resource-bound" connection="667d537d-7ac9-4df5-835b-073b1c4c020b" "jid"="load-59@localhost/load-159" "mode"="legacy" +timestamp="2026-10-20T10:29:48.527Z" level=info module="c2s" event="tls-established" connection="701b586b-d584-445b-88da-9b2263b3ae7e" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.527Z" level=info module="c2s" event="sasl-features" connection="701b586b-d584-445b-88da-9b2263b3ae7e" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.533Z" level=info module="c2s" event="sasl-attempt" connection="76a77ed4-70f1-44c1-8257-6f94be508c36" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.533Z" level=info module="c2s" event="auth-identity" connection="76a77ed4-70f1-44c1-8257-6f94be508c36" "user"="load-62" +timestamp="2026-10-20T10:29:48.538Z" level=info module="c2s" event="auth-success" connection="76a77ed4-70f1-44c1-8257-6f94be508c36" "user"="load-62" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.538Z" level=info module="c2s" event="connection-open" connection="815f38a0-efa5-48b9-b15b-d3fe3d9f8379" "transport"="tcp" "peer"="127.0.0.1:60254" "host"="localhost" +timestamp="2026-10-20T10:29:48.538Z" level=info module="c2s" event="sasl-attempt" connection="651c4e09-727a-4568-a461-6251c82344e8" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.538Z" level=info module="c2s" event="auth-identity" connection="651c4e09-727a-4568-a461-6251c82344e8" "user"="load-66" +timestamp="2026-10-20T10:29:48.538Z" level=info module="c2s" event="sasl-attempt" connection="7ac25b69-1437-4dce-ac05-ba351c6d2860" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.538Z" level=info module="c2s" event="auth-identity" connection="7ac25b69-1437-4dce-ac05-ba351c6d2860" "user"="load-61" +timestamp="2026-10-20T10:29:48.548Z" level=info module="c2s" event="auth-success" connection="651c4e09-727a-4568-a461-6251c82344e8" "user"="load-66" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.548Z" level=info module="c2s" event="auth-success" connection="7ac25b69-1437-4dce-ac05-ba351c6d2860" "user"="load-61" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.548Z" level=info module="c2s" event="tls-established" connection="d743a8b9-ccc1-4a3e-b05e-290af3cb8a14" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.548Z" level=info module="c2s" event="sasl-features" connection="d743a8b9-ccc1-4a3e-b05e-290af3cb8a14" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.551Z" level=info module="c2s" event="tls-established" connection="66c5a320-e98a-405a-a522-515da3a06b49" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.551Z" level=info module="c2s" event="sasl-features" connection="66c5a320-e98a-405a-a522-515da3a06b49" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.555Z" level=info module="c2s" event="sasl-attempt" connection="701b586b-d584-445b-88da-9b2263b3ae7e" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.555Z" level=info module="c2s" event="auth-identity" connection="701b586b-d584-445b-88da-9b2263b3ae7e" "user"="load-63" +timestamp="2026-10-20T10:29:48.556Z" level=info module="c2s" event="sasl-attempt" connection="66c5a320-e98a-405a-a522-515da3a06b49" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.556Z" level=info module="c2s" event="auth-identity" connection="66c5a320-e98a-405a-a522-515da3a06b49" "user"="load-64" +timestamp="2026-10-20T10:29:48.556Z" level=info module="c2s" event="resource-bound" connection="7037c645-0747-4cd4-8c72-c75b84f6d1de" "jid"="load-60@localhost/load-160" "mode"="legacy" +timestamp="2026-10-20T10:29:48.565Z" level=info module="c2s" event="auth-success" connection="701b586b-d584-445b-88da-9b2263b3ae7e" "user"="load-63" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.565Z" level=info module="c2s" event="auth-success" connection="66c5a320-e98a-405a-a522-515da3a06b49" "user"="load-64" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.565Z" level=info module="c2s" event="connection-open" connection="cfb6a6a5-41be-4ef2-86a4-f7a911745247" "transport"="tcp" "peer"="127.0.0.1:60296" "host"="localhost" +timestamp="2026-10-20T10:29:48.577Z" level=info module="c2s" event="connection-open" connection="37a52eb4-2024-4d70-99e4-e6511e546c81" "transport"="tcp" "peer"="127.0.0.1:60280" "host"="localhost" +timestamp="2026-10-20T10:29:48.577Z" level=info module="c2s" event="connection-open" connection="907b9675-43d7-4e37-a01a-a0519e5eaaf7" "transport"="tcp" "peer"="127.0.0.1:60266" "host"="localhost" +timestamp="2026-10-20T10:29:48.577Z" level=info module="c2s" event="sasl-attempt" connection="d743a8b9-ccc1-4a3e-b05e-290af3cb8a14" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.577Z" level=info module="c2s" event="auth-identity" connection="d743a8b9-ccc1-4a3e-b05e-290af3cb8a14" "user"="load-65" +timestamp="2026-10-20T10:29:48.577Z" level=info module="c2s" event="connection-open" connection="3e35e288-fa8c-45c5-9c0b-8426d6e33bfb" "transport"="tcp" "peer"="127.0.0.1:60312" "host"="localhost" +timestamp="2026-10-20T10:29:48.577Z" level=info module="c2s" event="tls-established" connection="ad7a64e0-359a-4fd6-8c4e-f92aac751550" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.577Z" level=info module="c2s" event="sasl-features" connection="ad7a64e0-359a-4fd6-8c4e-f92aac751550" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.577Z" level=info module="c2s" event="resource-bound" connection="76a77ed4-70f1-44c1-8257-6f94be508c36" "jid"="load-62@localhost/load-162" "mode"="legacy" +timestamp="2026-10-20T10:29:48.582Z" level=info module="c2s" event="auth-success" connection="d743a8b9-ccc1-4a3e-b05e-290af3cb8a14" "user"="load-65" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.583Z" level=info module="c2s" event="resource-bound" connection="701b586b-d584-445b-88da-9b2263b3ae7e" "jid"="load-63@localhost/load-163" "mode"="legacy" +timestamp="2026-10-20T10:29:48.583Z" level=info module="c2s" event="resource-bound" connection="7ac25b69-1437-4dce-ac05-ba351c6d2860" "jid"="load-61@localhost/load-161" "mode"="legacy" +timestamp="2026-10-20T10:29:48.583Z" level=info module="c2s" event="sasl-attempt" connection="ad7a64e0-359a-4fd6-8c4e-f92aac751550" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.583Z" level=info module="c2s" event="auth-identity" connection="ad7a64e0-359a-4fd6-8c4e-f92aac751550" "user"="load-68" +timestamp="2026-10-20T10:29:48.586Z" level=info module="c2s" event="auth-success" connection="ad7a64e0-359a-4fd6-8c4e-f92aac751550" "user"="load-68" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.589Z" level=info module="c2s" event="connection-open" connection="489b58c9-174e-4d04-91ea-3398945ff36c" "transport"="tcp" "peer"="127.0.0.1:60306" "host"="localhost" +timestamp="2026-10-20T10:29:48.590Z" level=info module="c2s" event="connection-open" connection="cb42065b-19a2-4b3b-a028-58af88d9ba89" "transport"="tcp" "peer"="127.0.0.1:60324" "host"="localhost" +timestamp="2026-10-20T10:29:48.591Z" level=info module="c2s" event="connection-open" connection="a1e13aa8-5de0-4d8b-ba38-a5cf465e5d49" "transport"="tcp" "peer"="127.0.0.1:60322" "host"="localhost" +timestamp="2026-10-20T10:29:48.591Z" level=info module="c2s" event="resource-bound" connection="651c4e09-727a-4568-a461-6251c82344e8" "jid"="load-66@localhost/load-166" "mode"="legacy" +timestamp="2026-10-20T10:29:48.591Z" level=info module="c2s" event="resource-bound" connection="66c5a320-e98a-405a-a522-515da3a06b49" "jid"="load-64@localhost/load-164" "mode"="legacy" +timestamp="2026-10-20T10:29:48.591Z" level=info module="c2s" event="tls-established" connection="df53e5a7-87ee-4273-b728-a32e1f14bc49" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.591Z" level=info module="c2s" event="sasl-features" connection="df53e5a7-87ee-4273-b728-a32e1f14bc49" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.599Z" level=info module="c2s" event="resource-bound" connection="d743a8b9-ccc1-4a3e-b05e-290af3cb8a14" "jid"="load-65@localhost/load-165" "mode"="legacy" +timestamp="2026-10-20T10:29:48.603Z" level=info module="c2s" event="tls-established" connection="815f38a0-efa5-48b9-b15b-d3fe3d9f8379" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.603Z" level=info module="c2s" event="sasl-features" connection="815f38a0-efa5-48b9-b15b-d3fe3d9f8379" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.616Z" level=info module="c2s" event="resource-bound" connection="ad7a64e0-359a-4fd6-8c4e-f92aac751550" "jid"="load-68@localhost/load-168" "mode"="legacy" +timestamp="2026-10-20T10:29:48.620Z" level=info module="c2s" event="sasl-attempt" connection="df53e5a7-87ee-4273-b728-a32e1f14bc49" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.620Z" level=info module="c2s" event="auth-identity" connection="df53e5a7-87ee-4273-b728-a32e1f14bc49" "user"="load-67" +timestamp="2026-10-20T10:29:48.620Z" level=info module="c2s" event="connection-open" connection="29c81406-ee63-4f58-9b71-321733698ea3" "transport"="tcp" "peer"="127.0.0.1:60364" "host"="localhost" +timestamp="2026-10-20T10:29:48.620Z" level=info module="c2s" event="connection-open" connection="2971ee9d-105d-456e-a12a-d7b6da59f2cb" "transport"="tcp" "peer"="127.0.0.1:60336" "host"="localhost" +timestamp="2026-10-20T10:29:48.620Z" level=info module="c2s" event="connection-open" connection="bf374bd6-db47-4d46-af7b-a9f60584c2a2" "transport"="tcp" "peer"="127.0.0.1:60352" "host"="localhost" +timestamp="2026-10-20T10:29:48.620Z" level=info module="c2s" event="sasl-attempt" connection="815f38a0-efa5-48b9-b15b-d3fe3d9f8379" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.620Z" level=info module="c2s" event="auth-identity" connection="815f38a0-efa5-48b9-b15b-d3fe3d9f8379" "user"="load-69" +timestamp="2026-10-20T10:29:48.620Z" level=info module="c2s" event="tls-established" connection="489b58c9-174e-4d04-91ea-3398945ff36c" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.620Z" level=info module="c2s" event="sasl-features" connection="489b58c9-174e-4d04-91ea-3398945ff36c" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.621Z" level=info module="c2s" event="tls-established" connection="3e35e288-fa8c-45c5-9c0b-8426d6e33bfb" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.621Z" level=info module="c2s" event="sasl-features" connection="3e35e288-fa8c-45c5-9c0b-8426d6e33bfb" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.622Z" level=info module="c2s" event="auth-success" connection="df53e5a7-87ee-4273-b728-a32e1f14bc49" "user"="load-67" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.627Z" level=info module="c2s" event="auth-success" connection="815f38a0-efa5-48b9-b15b-d3fe3d9f8379" "user"="load-69" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.627Z" level=info module="c2s" event="connection-open" connection="111e3ec2-2d51-41d5-9b05-023a74bf6e78" "transport"="tcp" "peer"="127.0.0.1:60374" "host"="localhost" +timestamp="2026-10-20T10:29:48.627Z" level=info module="c2s" event="sasl-attempt" connection="489b58c9-174e-4d04-91ea-3398945ff36c" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.627Z" level=info module="c2s" event="auth-identity" connection="489b58c9-174e-4d04-91ea-3398945ff36c" "user"="load-73" +timestamp="2026-10-20T10:29:48.627Z" level=info module="c2s" event="tls-established" connection="cb42065b-19a2-4b3b-a028-58af88d9ba89" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.627Z" level=info module="c2s" event="sasl-features" connection="cb42065b-19a2-4b3b-a028-58af88d9ba89" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.628Z" level=info module="c2s" event="sasl-attempt" connection="3e35e288-fa8c-45c5-9c0b-8426d6e33bfb" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.628Z" level=info module="c2s" event="auth-identity" connection="3e35e288-fa8c-45c5-9c0b-8426d6e33bfb" "user"="load-74" +timestamp="2026-10-20T10:29:48.633Z" level=info module="c2s" event="auth-success" connection="489b58c9-174e-4d04-91ea-3398945ff36c" "user"="load-73" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.633Z" level=info module="c2s" event="auth-success" connection="3e35e288-fa8c-45c5-9c0b-8426d6e33bfb" "user"="load-74" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.633Z" level=info module="c2s" event="tls-established" connection="907b9675-43d7-4e37-a01a-a0519e5eaaf7" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.633Z" level=info module="c2s" event="sasl-features" connection="907b9675-43d7-4e37-a01a-a0519e5eaaf7" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.641Z" level=info module="c2s" event="tls-established" connection="cfb6a6a5-41be-4ef2-86a4-f7a911745247" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.641Z" level=info module="c2s" event="sasl-features" connection="cfb6a6a5-41be-4ef2-86a4-f7a911745247" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.641Z" level=info module="c2s" event="tls-established" connection="37a52eb4-2024-4d70-99e4-e6511e546c81" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.641Z" level=info module="c2s" event="sasl-features" connection="37a52eb4-2024-4d70-99e4-e6511e546c81" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.641Z" level=info module="c2s" event="tls-established" connection="a1e13aa8-5de0-4d8b-ba38-a5cf465e5d49" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.641Z" level=info module="c2s" event="sasl-features" connection="a1e13aa8-5de0-4d8b-ba38-a5cf465e5d49" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.641Z" level=info module="c2s" event="sasl-attempt" connection="37a52eb4-2024-4d70-99e4-e6511e546c81" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.642Z" level=info module="c2s" event="auth-identity" connection="37a52eb4-2024-4d70-99e4-e6511e546c81" "user"="load-71" +timestamp="2026-10-20T10:29:48.642Z" level=info module="c2s" event="sasl-attempt" connection="cb42065b-19a2-4b3b-a028-58af88d9ba89" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.642Z" level=info module="c2s" event="auth-identity" connection="cb42065b-19a2-4b3b-a028-58af88d9ba89" "user"="load-76" +timestamp="2026-10-20T10:29:48.645Z" level=info module="c2s" event="auth-success" connection="37a52eb4-2024-4d70-99e4-e6511e546c81" "user"="load-71" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.645Z" level=info module="c2s" event="auth-success" connection="cb42065b-19a2-4b3b-a028-58af88d9ba89" "user"="load-76" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.645Z" level=info module="c2s" event="sasl-attempt" connection="907b9675-43d7-4e37-a01a-a0519e5eaaf7" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.645Z" level=info module="c2s" event="auth-identity" connection="907b9675-43d7-4e37-a01a-a0519e5eaaf7" "user"="load-70" +timestamp="2026-10-20T10:29:48.645Z" level=info module="c2s" event="connection-open" connection="f5dd7735-acbc-40d1-91f8-022225fc87b3" "transport"="tcp" "peer"="127.0.0.1:60384" "host"="localhost" +timestamp="2026-10-20T10:29:48.645Z" level=info module="c2s" event="sasl-attempt" connection="cfb6a6a5-41be-4ef2-86a4-f7a911745247" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.645Z" level=info module="c2s" event="auth-identity" connection="cfb6a6a5-41be-4ef2-86a4-f7a911745247" "user"="load-72" +timestamp="2026-10-20T10:29:48.646Z" level=info module="c2s" event="resource-bound" connection="df53e5a7-87ee-4273-b728-a32e1f14bc49" "jid"="load-67@localhost/load-167" "mode"="legacy" +timestamp="2026-10-20T10:29:48.646Z" level=info module="c2s" event="sasl-attempt" connection="a1e13aa8-5de0-4d8b-ba38-a5cf465e5d49" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.646Z" level=info module="c2s" event="auth-identity" connection="a1e13aa8-5de0-4d8b-ba38-a5cf465e5d49" "user"="load-75" +timestamp="2026-10-20T10:29:48.646Z" level=info module="c2s" event="resource-bound" connection="815f38a0-efa5-48b9-b15b-d3fe3d9f8379" "jid"="load-69@localhost/load-169" "mode"="legacy" +timestamp="2026-10-20T10:29:48.646Z" level=info module="c2s" event="tls-established" connection="29c81406-ee63-4f58-9b71-321733698ea3" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.646Z" level=info module="c2s" event="sasl-features" connection="29c81406-ee63-4f58-9b71-321733698ea3" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.649Z" level=info module="c2s" event="auth-success" connection="907b9675-43d7-4e37-a01a-a0519e5eaaf7" "user"="load-70" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.649Z" level=info module="c2s" event="auth-success" connection="cfb6a6a5-41be-4ef2-86a4-f7a911745247" "user"="load-72" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.649Z" level=info module="c2s" event="auth-success" connection="a1e13aa8-5de0-4d8b-ba38-a5cf465e5d49" "user"="load-75" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.649Z" level=info module="c2s" event="resource-bound" connection="489b58c9-174e-4d04-91ea-3398945ff36c" "jid"="load-73@localhost/load-173" "mode"="legacy" +timestamp="2026-10-20T10:29:48.649Z" level=info module="c2s" event="resource-bound" connection="3e35e288-fa8c-45c5-9c0b-8426d6e33bfb" "jid"="load-74@localhost/load-174" "mode"="legacy" +timestamp="2026-10-20T10:29:48.650Z" level=info module="c2s" event="resource-bound" connection="cb42065b-19a2-4b3b-a028-58af88d9ba89" "jid"="load-76@localhost/load-176" "mode"="legacy" +timestamp="2026-10-20T10:29:48.661Z" level=info module="c2s" event="resource-bound" connection="37a52eb4-2024-4d70-99e4-e6511e546c81" "jid"="load-71@localhost/load-171" "mode"="legacy" +timestamp="2026-10-20T10:29:48.662Z" level=info module="c2s" event="sasl-attempt" connection="29c81406-ee63-4f58-9b71-321733698ea3" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.662Z" level=info module="c2s" event="auth-identity" connection="29c81406-ee63-4f58-9b71-321733698ea3" "user"="load-79" +timestamp="2026-10-20T10:29:48.662Z" level=info module="c2s" event="connection-open" connection="19919e90-8a87-40d6-bade-b52a819b8e7c" "transport"="tcp" "peer"="127.0.0.1:60408" "host"="localhost" +timestamp="2026-10-20T10:29:48.662Z" level=info module="c2s" event="connection-open" connection="a743077f-4274-4c4a-820d-4fe47f59e096" "transport"="tcp" "peer"="127.0.0.1:60396" "host"="localhost" +timestamp="2026-10-20T10:29:48.662Z" level=info module="c2s" event="connection-open" connection="d4b001d4-fb6b-42ca-8993-1d9842c2a10a" "transport"="tcp" "peer"="127.0.0.1:60398" "host"="localhost" +timestamp="2026-10-20T10:29:48.666Z" level=info module="c2s" event="auth-success" connection="29c81406-ee63-4f58-9b71-321733698ea3" "user"="load-79" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.681Z" level=info module="c2s" event="tls-established" connection="111e3ec2-2d51-41d5-9b05-023a74bf6e78" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.681Z" level=info module="c2s" event="sasl-features" connection="111e3ec2-2d51-41d5-9b05-023a74bf6e78" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.681Z" level=info module="c2s" event="tls-established" connection="bf374bd6-db47-4d46-af7b-a9f60584c2a2" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.681Z" level=info module="c2s" event="sasl-features" connection="bf374bd6-db47-4d46-af7b-a9f60584c2a2" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.682Z" level=info module="c2s" event="resource-bound" connection="a1e13aa8-5de0-4d8b-ba38-a5cf465e5d49" "jid"="load-75@localhost/load-175" "mode"="legacy" +timestamp="2026-10-20T10:29:48.682Z" level=info module="c2s" event="resource-bound" connection="907b9675-43d7-4e37-a01a-a0519e5eaaf7" "jid"="load-70@localhost/load-170" "mode"="legacy" +timestamp="2026-10-20T10:29:48.682Z" level=info module="c2s" event="resource-bound" connection="cfb6a6a5-41be-4ef2-86a4-f7a911745247" "jid"="load-72@localhost/load-172" "mode"="legacy" +timestamp="2026-10-20T10:29:48.685Z" level=info module="c2s" event="connection-open" connection="1792fab8-c1b6-4d36-ae9a-8ef0b4676b21" "transport"="tcp" "peer"="127.0.0.1:60434" "host"="localhost" +timestamp="2026-10-20T10:29:48.685Z" level=info module="c2s" event="connection-open" connection="0c54eda7-16b8-427f-be3b-3f87a86d5013" "transport"="tcp" "peer"="127.0.0.1:60418" "host"="localhost" +timestamp="2026-10-20T10:29:48.685Z" level=info module="c2s" event="tls-established" connection="2971ee9d-105d-456e-a12a-d7b6da59f2cb" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.685Z" level=info module="c2s" event="sasl-features" connection="2971ee9d-105d-456e-a12a-d7b6da59f2cb" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.685Z" level=info module="c2s" event="tls-established" connection="f5dd7735-acbc-40d1-91f8-022225fc87b3" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.685Z" level=info module="c2s" event="sasl-features" connection="f5dd7735-acbc-40d1-91f8-022225fc87b3" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.690Z" level=info module="c2s" event="connection-open" connection="f6ba4e59-dd93-4b99-8a5b-9d12fd3fbbea" "transport"="tcp" "peer"="127.0.0.1:60454" "host"="localhost" +timestamp="2026-10-20T10:29:48.698Z" level=info module="c2s" event="sasl-attempt" connection="2971ee9d-105d-456e-a12a-d7b6da59f2cb" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.698Z" level=info module="c2s" event="auth-identity" connection="2971ee9d-105d-456e-a12a-d7b6da59f2cb" "user"="load-77" +timestamp="2026-10-20T10:29:48.700Z" level=info module="c2s" event="auth-success" connection="2971ee9d-105d-456e-a12a-d7b6da59f2cb" "user"="load-77" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.700Z" level=info module="c2s" event="sasl-attempt" connection="bf374bd6-db47-4d46-af7b-a9f60584c2a2" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.700Z" level=info module="c2s" event="auth-identity" connection="bf374bd6-db47-4d46-af7b-a9f60584c2a2" "user"="load-78" +timestamp="2026-10-20T10:29:48.703Z" level=info module="c2s" event="auth-success" connection="bf374bd6-db47-4d46-af7b-a9f60584c2a2" "user"="load-78" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.709Z" level=info module="c2s" event="resource-bound" connection="29c81406-ee63-4f58-9b71-321733698ea3" "jid"="load-79@localhost/load-179" "mode"="legacy" +timestamp="2026-10-20T10:29:48.709Z" level=info module="c2s" event="sasl-attempt" connection="111e3ec2-2d51-41d5-9b05-023a74bf6e78" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.709Z" level=info module="c2s" event="auth-identity" connection="111e3ec2-2d51-41d5-9b05-023a74bf6e78" "user"="load-80" +timestamp="2026-10-20T10:29:48.709Z" level=info module="c2s" event="sasl-attempt" connection="f5dd7735-acbc-40d1-91f8-022225fc87b3" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.709Z" level=info module="c2s" event="auth-identity" connection="f5dd7735-acbc-40d1-91f8-022225fc87b3" "user"="load-81" +timestamp="2026-10-20T10:29:48.709Z" level=info module="c2s" event="connection-open" connection="df3a9416-5cd5-4f45-b39c-97bee9fd9cec" "transport"="tcp" "peer"="127.0.0.1:60448" "host"="localhost" +timestamp="2026-10-20T10:29:48.711Z" level=info module="c2s" event="auth-success" connection="111e3ec2-2d51-41d5-9b05-023a74bf6e78" "user"="load-80" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.711Z" level=info module="c2s" event="auth-success" connection="f5dd7735-acbc-40d1-91f8-022225fc87b3" "user"="load-81" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.711Z" level=info module="c2s" event="connection-open" connection="48c52e7e-61cd-4a81-b790-1a3ee48230be" "transport"="tcp" "peer"="127.0.0.1:60466" "host"="localhost" +timestamp="2026-10-20T10:29:48.726Z" level=info module="c2s" event="tls-established" connection="19919e90-8a87-40d6-bade-b52a819b8e7c" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.726Z" level=info module="c2s" event="sasl-features" connection="19919e90-8a87-40d6-bade-b52a819b8e7c" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.728Z" level=info module="c2s" event="connection-open" connection="ca202538-b01a-450f-afae-7794113e653b" "transport"="tcp" "peer"="127.0.0.1:60482" "host"="localhost" +timestamp="2026-10-20T10:29:48.728Z" level=info module="c2s" event="connection-open" connection="9dbae7a3-38bf-4a06-b2fe-1981f98caf96" "transport"="tcp" "peer"="127.0.0.1:60468" "host"="localhost" +timestamp="2026-10-20T10:29:48.728Z" level=info module="c2s" event="connection-open" connection="8a73d0f7-bed4-457a-af4c-fd25a6ca5efa" "transport"="tcp" "peer"="127.0.0.1:60480" "host"="localhost" +timestamp="2026-10-20T10:29:48.728Z" level=info module="c2s" event="tls-established" connection="a743077f-4274-4c4a-820d-4fe47f59e096" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.728Z" level=info module="c2s" event="sasl-features" connection="a743077f-4274-4c4a-820d-4fe47f59e096" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.728Z" level=info module="c2s" event="resource-bound" connection="bf374bd6-db47-4d46-af7b-a9f60584c2a2" "jid"="load-78@localhost/load-178" "mode"="legacy" +timestamp="2026-10-20T10:29:48.729Z" level=info module="c2s" event="resource-bound" connection="2971ee9d-105d-456e-a12a-d7b6da59f2cb" "jid"="load-77@localhost/load-177" "mode"="legacy" +timestamp="2026-10-20T10:29:48.729Z" level=info module="c2s" event="sasl-attempt" connection="19919e90-8a87-40d6-bade-b52a819b8e7c" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.729Z" level=info module="c2s" event="auth-identity" connection="19919e90-8a87-40d6-bade-b52a819b8e7c" "user"="load-84" +timestamp="2026-10-20T10:29:48.729Z" level=info module="c2s" event="tls-established" connection="1792fab8-c1b6-4d36-ae9a-8ef0b4676b21" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.729Z" level=info module="c2s" event="sasl-features" connection="1792fab8-c1b6-4d36-ae9a-8ef0b4676b21" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.729Z" level=info module="c2s" event="tls-established" connection="d4b001d4-fb6b-42ca-8993-1d9842c2a10a" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.729Z" level=info module="c2s" event="sasl-features" connection="d4b001d4-fb6b-42ca-8993-1d9842c2a10a" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.729Z" level=info module="c2s" event="resource-bound" connection="111e3ec2-2d51-41d5-9b05-023a74bf6e78" "jid"="load-80@localhost/load-180" "mode"="legacy" +timestamp="2026-10-20T10:29:48.729Z" level=info module="c2s" event="resource-bound" connection="f5dd7735-acbc-40d1-91f8-022225fc87b3" "jid"="load-81@localhost/load-181" "mode"="legacy" +timestamp="2026-10-20T10:29:48.746Z" level=info module="c2s" event="connection-open" connection="0422398a-c289-4300-b4f4-50d32fbe4e7c" "transport"="tcp" "peer"="127.0.0.1:60500" "host"="localhost" +timestamp="2026-10-20T10:29:48.746Z" level=info module="c2s" event="auth-success" connection="19919e90-8a87-40d6-bade-b52a819b8e7c" "user"="load-84" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.753Z" level=info module="c2s" event="tls-established" connection="0c54eda7-16b8-427f-be3b-3f87a86d5013" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.753Z" level=info module="c2s" event="sasl-features" connection="0c54eda7-16b8-427f-be3b-3f87a86d5013" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.753Z" level=info module="c2s" event="tls-established" connection="df3a9416-5cd5-4f45-b39c-97bee9fd9cec" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.753Z" level=info module="c2s" event="sasl-features" connection="df3a9416-5cd5-4f45-b39c-97bee9fd9cec" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.755Z" level=info module="c2s" event="sasl-attempt" connection="a743077f-4274-4c4a-820d-4fe47f59e096" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.755Z" level=info module="c2s" event="auth-identity" connection="a743077f-4274-4c4a-820d-4fe47f59e096" "user"="load-82" +timestamp="2026-10-20T10:29:48.755Z" level=info module="c2s" event="sasl-attempt" connection="1792fab8-c1b6-4d36-ae9a-8ef0b4676b21" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.755Z" level=info module="c2s" event="auth-identity" connection="1792fab8-c1b6-4d36-ae9a-8ef0b4676b21" "user"="load-86" +timestamp="2026-10-20T10:29:48.757Z" level=info module="c2s" event="auth-success" connection="1792fab8-c1b6-4d36-ae9a-8ef0b4676b21" "user"="load-86" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.757Z" level=info module="c2s" event="auth-success" connection="a743077f-4274-4c4a-820d-4fe47f59e096" "user"="load-82" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.757Z" level=info module="c2s" event="connection-open" connection="e8807433-3e4a-4661-a529-7faf0c655aa9" "transport"="tcp" "peer"="127.0.0.1:60488" "host"="localhost" +timestamp="2026-10-20T10:29:48.758Z" level=info module="c2s" event="connection-open" connection="3757dc59-7048-447b-9aaf-ac48b8a41aa2" "transport"="tcp" "peer"="127.0.0.1:60498" "host"="localhost" +timestamp="2026-10-20T10:29:48.758Z" level=info module="c2s" event="sasl-attempt" connection="d4b001d4-fb6b-42ca-8993-1d9842c2a10a" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.758Z" level=info module="c2s" event="auth-identity" connection="d4b001d4-fb6b-42ca-8993-1d9842c2a10a" "user"="load-83" +timestamp="2026-10-20T10:29:48.761Z" level=info module="c2s" event="auth-success" connection="d4b001d4-fb6b-42ca-8993-1d9842c2a10a" "user"="load-83" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.761Z" level=info module="c2s" event="connection-open" connection="04c57f02-ceef-42c6-b8fe-4b187b45ace1" "transport"="tcp" "peer"="127.0.0.1:60506" "host"="localhost" +timestamp="2026-10-20T10:29:48.761Z" level=info module="c2s" event="tls-established" connection="f6ba4e59-dd93-4b99-8a5b-9d12fd3fbbea" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.761Z" level=info module="c2s" event="sasl-features" connection="f6ba4e59-dd93-4b99-8a5b-9d12fd3fbbea" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.761Z" level=info module="c2s" event="sasl-attempt" connection="0c54eda7-16b8-427f-be3b-3f87a86d5013" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.761Z" level=info module="c2s" event="auth-identity" connection="0c54eda7-16b8-427f-be3b-3f87a86d5013" "user"="load-85" +timestamp="2026-10-20T10:29:48.761Z" level=info module="c2s" event="tls-established" connection="48c52e7e-61cd-4a81-b790-1a3ee48230be" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.761Z" level=info module="c2s" event="sasl-features" connection="48c52e7e-61cd-4a81-b790-1a3ee48230be" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.761Z" level=info module="c2s" event="sasl-attempt" connection="df3a9416-5cd5-4f45-b39c-97bee9fd9cec" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.761Z" level=info module="c2s" event="auth-identity" connection="df3a9416-5cd5-4f45-b39c-97bee9fd9cec" "user"="load-87" +timestamp="2026-10-20T10:29:48.761Z" level=info module="c2s" event="tls-established" connection="9dbae7a3-38bf-4a06-b2fe-1981f98caf96" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.761Z" level=info module="c2s" event="sasl-features" connection="9dbae7a3-38bf-4a06-b2fe-1981f98caf96" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.761Z" level=info module="c2s" event="tls-established" connection="8a73d0f7-bed4-457a-af4c-fd25a6ca5efa" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.761Z" level=info module="c2s" event="sasl-features" connection="8a73d0f7-bed4-457a-af4c-fd25a6ca5efa" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.762Z" level=info module="c2s" event="resource-bound" connection="19919e90-8a87-40d6-bade-b52a819b8e7c" "jid"="load-84@localhost/load-184" "mode"="legacy" +timestamp="2026-10-20T10:29:48.762Z" level=info module="c2s" event="tls-established" connection="ca202538-b01a-450f-afae-7794113e653b" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.762Z" level=info module="c2s" event="sasl-features" connection="ca202538-b01a-450f-afae-7794113e653b" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.762Z" level=info module="c2s" event="sasl-attempt" connection="f6ba4e59-dd93-4b99-8a5b-9d12fd3fbbea" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.762Z" level=info module="c2s" event="auth-identity" connection="f6ba4e59-dd93-4b99-8a5b-9d12fd3fbbea" "user"="load-88" +timestamp="2026-10-20T10:29:48.762Z" level=info module="c2s" event="sasl-attempt" connection="48c52e7e-61cd-4a81-b790-1a3ee48230be" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.762Z" level=info module="c2s" event="auth-identity" connection="48c52e7e-61cd-4a81-b790-1a3ee48230be" "user"="load-89" +timestamp="2026-10-20T10:29:48.762Z" level=info module="c2s" event="resource-bound" connection="1792fab8-c1b6-4d36-ae9a-8ef0b4676b21" "jid"="load-86@localhost/load-186" "mode"="legacy" +timestamp="2026-10-20T10:29:48.762Z" level=info module="c2s" event="sasl-attempt" connection="8a73d0f7-bed4-457a-af4c-fd25a6ca5efa" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.762Z" level=info module="c2s" event="auth-identity" connection="8a73d0f7-bed4-457a-af4c-fd25a6ca5efa" "user"="load-91" +timestamp="2026-10-20T10:29:48.762Z" level=info module="c2s" event="resource-bound" connection="a743077f-4274-4c4a-820d-4fe47f59e096" "jid"="load-82@localhost/load-182" "mode"="legacy" +timestamp="2026-10-20T10:29:48.762Z" level=info module="c2s" event="sasl-attempt" connection="9dbae7a3-38bf-4a06-b2fe-1981f98caf96" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.762Z" level=info module="c2s" event="auth-identity" connection="9dbae7a3-38bf-4a06-b2fe-1981f98caf96" "user"="load-90" +timestamp="2026-10-20T10:29:48.765Z" level=info module="c2s" event="auth-success" connection="0c54eda7-16b8-427f-be3b-3f87a86d5013" "user"="load-85" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.765Z" level=info module="c2s" event="auth-success" connection="df3a9416-5cd5-4f45-b39c-97bee9fd9cec" "user"="load-87" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.765Z" level=info module="c2s" event="auth-success" connection="f6ba4e59-dd93-4b99-8a5b-9d12fd3fbbea" "user"="load-88" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.765Z" level=info module="c2s" event="auth-success" connection="48c52e7e-61cd-4a81-b790-1a3ee48230be" "user"="load-89" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.765Z" level=info module="c2s" event="auth-success" connection="8a73d0f7-bed4-457a-af4c-fd25a6ca5efa" "user"="load-91" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.765Z" level=info module="c2s" event="auth-success" connection="9dbae7a3-38bf-4a06-b2fe-1981f98caf96" "user"="load-90" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.768Z" level=info module="c2s" event="resource-bound" connection="d4b001d4-fb6b-42ca-8993-1d9842c2a10a" "jid"="load-83@localhost/load-183" "mode"="legacy" +timestamp="2026-10-20T10:29:48.769Z" level=info module="c2s" event="sasl-attempt" connection="ca202538-b01a-450f-afae-7794113e653b" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.769Z" level=info module="c2s" event="auth-identity" connection="ca202538-b01a-450f-afae-7794113e653b" "user"="load-92" +timestamp="2026-10-20T10:29:48.774Z" level=info module="c2s" event="auth-success" connection="ca202538-b01a-450f-afae-7794113e653b" "user"="load-92" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.786Z" level=info module="c2s" event="connection-open" connection="aae7fdfe-93dc-4e9d-829d-59ee0827b9ea" "transport"="tcp" "peer"="127.0.0.1:60516" "host"="localhost" +timestamp="2026-10-20T10:29:48.786Z" level=info module="c2s" event="tls-established" connection="3757dc59-7048-447b-9aaf-ac48b8a41aa2" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.786Z" level=info module="c2s" event="sasl-features" connection="3757dc59-7048-447b-9aaf-ac48b8a41aa2" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.786Z" level=info module="c2s" event="tls-established" connection="e8807433-3e4a-4661-a529-7faf0c655aa9" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.786Z" level=info module="c2s" event="sasl-features" connection="e8807433-3e4a-4661-a529-7faf0c655aa9" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.786Z" level=info module="c2s" event="tls-established" connection="0422398a-c289-4300-b4f4-50d32fbe4e7c" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.786Z" level=info module="c2s" event="sasl-features" connection="0422398a-c289-4300-b4f4-50d32fbe4e7c" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.787Z" level=info module="c2s" event="resource-bound" connection="ca202538-b01a-450f-afae-7794113e653b" "jid"="load-92@localhost/load-192" "mode"="legacy" +timestamp="2026-10-20T10:29:48.787Z" level=info module="c2s" event="resource-bound" connection="0c54eda7-16b8-427f-be3b-3f87a86d5013" "jid"="load-85@localhost/load-185" "mode"="legacy" +timestamp="2026-10-20T10:29:48.787Z" level=info module="c2s" event="resource-bound" connection="df3a9416-5cd5-4f45-b39c-97bee9fd9cec" "jid"="load-87@localhost/load-187" "mode"="legacy" +timestamp="2026-10-20T10:29:48.787Z" level=info module="c2s" event="resource-bound" connection="f6ba4e59-dd93-4b99-8a5b-9d12fd3fbbea" "jid"="load-88@localhost/load-188" "mode"="legacy" +timestamp="2026-10-20T10:29:48.787Z" level=info module="c2s" event="resource-bound" connection="48c52e7e-61cd-4a81-b790-1a3ee48230be" "jid"="load-89@localhost/load-189" "mode"="legacy" +timestamp="2026-10-20T10:29:48.788Z" level=info module="c2s" event="resource-bound" connection="8a73d0f7-bed4-457a-af4c-fd25a6ca5efa" "jid"="load-91@localhost/load-191" "mode"="legacy" +timestamp="2026-10-20T10:29:48.788Z" level=info module="c2s" event="resource-bound" connection="9dbae7a3-38bf-4a06-b2fe-1981f98caf96" "jid"="load-90@localhost/load-190" "mode"="legacy" +timestamp="2026-10-20T10:29:48.796Z" level=info module="c2s" event="sasl-attempt" connection="3757dc59-7048-447b-9aaf-ac48b8a41aa2" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.796Z" level=info module="c2s" event="auth-identity" connection="3757dc59-7048-447b-9aaf-ac48b8a41aa2" "user"="load-94" +timestamp="2026-10-20T10:29:48.799Z" level=info module="c2s" event="auth-success" connection="3757dc59-7048-447b-9aaf-ac48b8a41aa2" "user"="load-94" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.799Z" level=info module="c2s" event="sasl-attempt" connection="e8807433-3e4a-4661-a529-7faf0c655aa9" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.799Z" level=info module="c2s" event="auth-identity" connection="e8807433-3e4a-4661-a529-7faf0c655aa9" "user"="load-93" +timestamp="2026-10-20T10:29:48.799Z" level=info module="c2s" event="sasl-attempt" connection="0422398a-c289-4300-b4f4-50d32fbe4e7c" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.799Z" level=info module="c2s" event="auth-identity" connection="0422398a-c289-4300-b4f4-50d32fbe4e7c" "user"="load-95" +timestamp="2026-10-20T10:29:48.799Z" level=info module="c2s" event="connection-open" connection="2c5d50c4-4d9f-4bdd-81a2-29778df3deaa" "transport"="tcp" "peer"="127.0.0.1:60518" "host"="localhost" +timestamp="2026-10-20T10:29:48.813Z" level=info module="c2s" event="auth-success" connection="e8807433-3e4a-4661-a529-7faf0c655aa9" "user"="load-93" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.813Z" level=info module="c2s" event="auth-success" connection="0422398a-c289-4300-b4f4-50d32fbe4e7c" "user"="load-95" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.837Z" level=info module="c2s" event="tls-established" connection="04c57f02-ceef-42c6-b8fe-4b187b45ace1" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.837Z" level=info module="c2s" event="sasl-features" connection="04c57f02-ceef-42c6-b8fe-4b187b45ace1" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.837Z" level=info module="c2s" event="tls-established" connection="aae7fdfe-93dc-4e9d-829d-59ee0827b9ea" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.837Z" level=info module="c2s" event="sasl-features" connection="aae7fdfe-93dc-4e9d-829d-59ee0827b9ea" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.855Z" level=info module="c2s" event="connection-open" connection="0e8506a1-9e04-4b3f-902d-390b20954d0c" "transport"="tcp" "peer"="127.0.0.1:60596" "host"="localhost" +timestamp="2026-10-20T10:29:48.862Z" level=info module="c2s" event="connection-open" connection="fc00e723-7a55-4157-8385-d01a446a8148" "transport"="tcp" "peer"="127.0.0.1:60562" "host"="localhost" +timestamp="2026-10-20T10:29:48.862Z" level=info module="c2s" event="connection-open" connection="faa2eb8c-5ab9-4099-a562-0da3fd8c8dc0" "transport"="tcp" "peer"="127.0.0.1:60532" "host"="localhost" +timestamp="2026-10-20T10:29:48.862Z" level=info module="c2s" event="connection-open" connection="faca53bf-46ac-48d8-b2ba-12b13e7abb06" "transport"="tcp" "peer"="127.0.0.1:60548" "host"="localhost" +timestamp="2026-10-20T10:29:48.862Z" level=info module="c2s" event="connection-open" connection="64465288-acf1-49bb-8aff-07610a2c45f5" "transport"="tcp" "peer"="127.0.0.1:60550" "host"="localhost" +timestamp="2026-10-20T10:29:48.865Z" level=info module="c2s" event="connection-open" connection="897090a0-edf5-4f7a-aa86-f80dcce36a0e" "transport"="tcp" "peer"="127.0.0.1:60582" "host"="localhost" +timestamp="2026-10-20T10:29:48.865Z" level=info module="c2s" event="connection-open" connection="08d9bb35-e925-426b-83bf-2ea919441f27" "transport"="tcp" "peer"="127.0.0.1:60568" "host"="localhost" +timestamp="2026-10-20T10:29:48.865Z" level=info module="c2s" event="connection-open" connection="cdf9bb0a-2609-4f86-b31c-387afbd28b35" "transport"="tcp" "peer"="127.0.0.1:60590" "host"="localhost" +timestamp="2026-10-20T10:29:48.866Z" level=info module="c2s" event="resource-bound" connection="0422398a-c289-4300-b4f4-50d32fbe4e7c" "jid"="load-95@localhost/load-195" "mode"="legacy" +timestamp="2026-10-20T10:29:48.866Z" level=info module="c2s" event="sasl-attempt" connection="04c57f02-ceef-42c6-b8fe-4b187b45ace1" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.866Z" level=info module="c2s" event="auth-identity" connection="04c57f02-ceef-42c6-b8fe-4b187b45ace1" "user"="load-96" +timestamp="2026-10-20T10:29:48.866Z" level=info module="c2s" event="sasl-attempt" connection="aae7fdfe-93dc-4e9d-829d-59ee0827b9ea" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.866Z" level=info module="c2s" event="auth-identity" connection="aae7fdfe-93dc-4e9d-829d-59ee0827b9ea" "user"="load-97" +timestamp="2026-10-20T10:29:48.872Z" level=info module="c2s" event="auth-success" connection="04c57f02-ceef-42c6-b8fe-4b187b45ace1" "user"="load-96" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.872Z" level=info module="c2s" event="auth-success" connection="aae7fdfe-93dc-4e9d-829d-59ee0827b9ea" "user"="load-97" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.877Z" level=info module="c2s" event="resource-bound" connection="e8807433-3e4a-4661-a529-7faf0c655aa9" "jid"="load-93@localhost/load-193" "mode"="legacy" +timestamp="2026-10-20T10:29:48.880Z" level=info module="c2s" event="connection-open" connection="42733dc3-dd40-4d85-bf6a-045bee4d3bd1" "transport"="tcp" "peer"="127.0.0.1:60624" "host"="localhost" +timestamp="2026-10-20T10:29:48.880Z" level=info module="c2s" event="connection-open" connection="beadc980-dcae-4710-b75a-bb190d579654" "transport"="tcp" "peer"="127.0.0.1:60610" "host"="localhost" +timestamp="2026-10-20T10:29:48.880Z" level=info module="c2s" event="connection-open" connection="36d82f1d-774b-4cb9-87a2-5053656782ef" "transport"="tcp" "peer"="127.0.0.1:60620" "host"="localhost" +timestamp="2026-10-20T10:29:48.883Z" level=info module="c2s" event="resource-bound" connection="3757dc59-7048-447b-9aaf-ac48b8a41aa2" "jid"="load-94@localhost/load-194" "mode"="legacy" +timestamp="2026-10-20T10:29:48.894Z" level=info module="c2s" event="tls-established" connection="2c5d50c4-4d9f-4bdd-81a2-29778df3deaa" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.894Z" level=info module="c2s" event="sasl-features" connection="2c5d50c4-4d9f-4bdd-81a2-29778df3deaa" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.902Z" level=info module="c2s" event="resource-bound" connection="04c57f02-ceef-42c6-b8fe-4b187b45ace1" "jid"="load-96@localhost/load-196" "mode"="legacy" +timestamp="2026-10-20T10:29:48.902Z" level=info module="c2s" event="resource-bound" connection="aae7fdfe-93dc-4e9d-829d-59ee0827b9ea" "jid"="load-97@localhost/load-197" "mode"="legacy" +timestamp="2026-10-20T10:29:48.907Z" level=info module="c2s" event="tls-established" connection="0e8506a1-9e04-4b3f-902d-390b20954d0c" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.907Z" level=info module="c2s" event="sasl-features" connection="0e8506a1-9e04-4b3f-902d-390b20954d0c" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.907Z" level=info module="c2s" event="sasl-attempt" connection="2c5d50c4-4d9f-4bdd-81a2-29778df3deaa" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.907Z" level=info module="c2s" event="auth-identity" connection="2c5d50c4-4d9f-4bdd-81a2-29778df3deaa" "user"="load-98" +timestamp="2026-10-20T10:29:48.908Z" level=info module="c2s" event="connection-open" connection="e78776ae-471b-48ab-beca-8e1257a0399f" "transport"="tcp" "peer"="127.0.0.1:60652" "host"="localhost" +timestamp="2026-10-20T10:29:48.913Z" level=info module="c2s" event="auth-success" connection="2c5d50c4-4d9f-4bdd-81a2-29778df3deaa" "user"="load-98" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.913Z" level=info module="c2s" event="tls-established" connection="08d9bb35-e925-426b-83bf-2ea919441f27" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.913Z" level=info module="c2s" event="sasl-features" connection="08d9bb35-e925-426b-83bf-2ea919441f27" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.913Z" level=info module="c2s" event="tls-established" connection="64465288-acf1-49bb-8aff-07610a2c45f5" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.913Z" level=info module="c2s" event="sasl-features" connection="64465288-acf1-49bb-8aff-07610a2c45f5" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.913Z" level=info module="c2s" event="tls-established" connection="faa2eb8c-5ab9-4099-a562-0da3fd8c8dc0" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.913Z" level=info module="c2s" event="sasl-features" connection="faa2eb8c-5ab9-4099-a562-0da3fd8c8dc0" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.916Z" level=info module="c2s" event="tls-established" connection="faca53bf-46ac-48d8-b2ba-12b13e7abb06" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.916Z" level=info module="c2s" event="sasl-features" connection="faca53bf-46ac-48d8-b2ba-12b13e7abb06" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.916Z" level=info module="c2s" event="tls-established" connection="897090a0-edf5-4f7a-aa86-f80dcce36a0e" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.916Z" level=info module="c2s" event="sasl-features" connection="897090a0-edf5-4f7a-aa86-f80dcce36a0e" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.916Z" level=info module="c2s" event="tls-established" connection="fc00e723-7a55-4157-8385-d01a446a8148" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.917Z" level=info module="c2s" event="sasl-features" connection="fc00e723-7a55-4157-8385-d01a446a8148" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.917Z" level=info module="c2s" event="tls-established" connection="cdf9bb0a-2609-4f86-b31c-387afbd28b35" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.917Z" level=info module="c2s" event="sasl-features" connection="cdf9bb0a-2609-4f86-b31c-387afbd28b35" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.917Z" level=info module="c2s" event="connection-open" connection="052df096-8cc7-4b84-9202-90acdb23d101" "transport"="tcp" "peer"="127.0.0.1:60636" "host"="localhost" +timestamp="2026-10-20T10:29:48.920Z" level=info module="c2s" event="sasl-attempt" connection="cdf9bb0a-2609-4f86-b31c-387afbd28b35" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.920Z" level=info module="c2s" event="auth-identity" connection="cdf9bb0a-2609-4f86-b31c-387afbd28b35" "user"="load-5" +timestamp="2026-10-20T10:29:48.920Z" level=info module="c2s" event="sasl-attempt" connection="0e8506a1-9e04-4b3f-902d-390b20954d0c" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.920Z" level=info module="c2s" event="auth-identity" connection="0e8506a1-9e04-4b3f-902d-390b20954d0c" "user"="load-6" +timestamp="2026-10-20T10:29:48.921Z" level=info module="c2s" event="tls-established" connection="beadc980-dcae-4710-b75a-bb190d579654" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.921Z" level=info module="c2s" event="sasl-features" connection="beadc980-dcae-4710-b75a-bb190d579654" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.921Z" level=info module="c2s" event="sasl-attempt" connection="08d9bb35-e925-426b-83bf-2ea919441f27" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.921Z" level=info module="c2s" event="auth-identity" connection="08d9bb35-e925-426b-83bf-2ea919441f27" "user"="load-3" +timestamp="2026-10-20T10:29:48.921Z" level=info module="c2s" event="sasl-attempt" connection="64465288-acf1-49bb-8aff-07610a2c45f5" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.921Z" level=info module="c2s" event="auth-identity" connection="64465288-acf1-49bb-8aff-07610a2c45f5" "user"="load-1" +timestamp="2026-10-20T10:29:48.921Z" level=info module="c2s" event="sasl-attempt" connection="faa2eb8c-5ab9-4099-a562-0da3fd8c8dc0" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.921Z" level=info module="c2s" event="auth-identity" connection="faa2eb8c-5ab9-4099-a562-0da3fd8c8dc0" "user"="load-99" +timestamp="2026-10-20T10:29:48.925Z" level=info module="c2s" event="auth-success" connection="cdf9bb0a-2609-4f86-b31c-387afbd28b35" "user"="load-5" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.925Z" level=info module="c2s" event="auth-success" connection="0e8506a1-9e04-4b3f-902d-390b20954d0c" "user"="load-6" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.925Z" level=info module="c2s" event="auth-success" connection="08d9bb35-e925-426b-83bf-2ea919441f27" "user"="load-3" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.925Z" level=info module="c2s" event="resource-bound" connection="2c5d50c4-4d9f-4bdd-81a2-29778df3deaa" "jid"="load-98@localhost/load-198" "mode"="legacy" +timestamp="2026-10-20T10:29:48.926Z" level=info module="c2s" event="auth-success" connection="64465288-acf1-49bb-8aff-07610a2c45f5" "user"="load-1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.926Z" level=info module="c2s" event="auth-success" connection="faa2eb8c-5ab9-4099-a562-0da3fd8c8dc0" "user"="load-99" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.926Z" level=info module="c2s" event="tls-established" connection="36d82f1d-774b-4cb9-87a2-5053656782ef" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.926Z" level=info module="c2s" event="sasl-features" connection="36d82f1d-774b-4cb9-87a2-5053656782ef" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.926Z" level=info module="c2s" event="tls-established" connection="42733dc3-dd40-4d85-bf6a-045bee4d3bd1" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.926Z" level=info module="c2s" event="sasl-features" connection="42733dc3-dd40-4d85-bf6a-045bee4d3bd1" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.926Z" level=info module="c2s" event="sasl-attempt" connection="beadc980-dcae-4710-b75a-bb190d579654" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.926Z" level=info module="c2s" event="auth-identity" connection="beadc980-dcae-4710-b75a-bb190d579654" "user"="load-7" +timestamp="2026-10-20T10:29:48.926Z" level=info module="c2s" event="sasl-attempt" connection="faca53bf-46ac-48d8-b2ba-12b13e7abb06" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.926Z" level=info module="c2s" event="auth-identity" connection="faca53bf-46ac-48d8-b2ba-12b13e7abb06" "user"="load-0" +timestamp="2026-10-20T10:29:48.926Z" level=info module="c2s" event="connection-open" connection="471fff0f-43ac-4f99-807e-922a4b0ab65b" "transport"="tcp" "peer"="127.0.0.1:60656" "host"="localhost" +timestamp="2026-10-20T10:29:48.926Z" level=info module="c2s" event="sasl-attempt" connection="897090a0-edf5-4f7a-aa86-f80dcce36a0e" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.926Z" level=info module="c2s" event="auth-identity" connection="897090a0-edf5-4f7a-aa86-f80dcce36a0e" "user"="load-4" +timestamp="2026-10-20T10:29:48.926Z" level=info module="c2s" event="sasl-attempt" connection="fc00e723-7a55-4157-8385-d01a446a8148" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.926Z" level=info module="c2s" event="auth-identity" connection="fc00e723-7a55-4157-8385-d01a446a8148" "user"="load-2" +timestamp="2026-10-20T10:29:48.933Z" level=info module="c2s" event="auth-success" connection="beadc980-dcae-4710-b75a-bb190d579654" "user"="load-7" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.933Z" level=info module="c2s" event="auth-success" connection="faca53bf-46ac-48d8-b2ba-12b13e7abb06" "user"="load-0" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.933Z" level=info module="c2s" event="auth-success" connection="897090a0-edf5-4f7a-aa86-f80dcce36a0e" "user"="load-4" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.933Z" level=info module="c2s" event="auth-success" connection="fc00e723-7a55-4157-8385-d01a446a8148" "user"="load-2" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.934Z" level=info module="c2s" event="sasl-attempt" connection="36d82f1d-774b-4cb9-87a2-5053656782ef" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.934Z" level=info module="c2s" event="auth-identity" connection="36d82f1d-774b-4cb9-87a2-5053656782ef" "user"="load-8" +timestamp="2026-10-20T10:29:48.934Z" level=info module="c2s" event="sasl-attempt" connection="42733dc3-dd40-4d85-bf6a-045bee4d3bd1" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.934Z" level=info module="c2s" event="auth-identity" connection="42733dc3-dd40-4d85-bf6a-045bee4d3bd1" "user"="load-9" +timestamp="2026-10-20T10:29:48.934Z" level=info module="c2s" event="resource-bound" connection="cdf9bb0a-2609-4f86-b31c-387afbd28b35" "jid"="load-5@localhost/load-205" "mode"="legacy" +timestamp="2026-10-20T10:29:48.934Z" level=info module="c2s" event="resource-bound" connection="0e8506a1-9e04-4b3f-902d-390b20954d0c" "jid"="load-6@localhost/load-206" "mode"="legacy" +timestamp="2026-10-20T10:29:48.934Z" level=info module="c2s" event="resource-bound" connection="08d9bb35-e925-426b-83bf-2ea919441f27" "jid"="load-3@localhost/load-203" "mode"="legacy" +timestamp="2026-10-20T10:29:48.934Z" level=info module="c2s" event="connection-open" connection="3a2e27c4-0d6a-4472-afce-5378864f30fd" "transport"="tcp" "peer"="127.0.0.1:60668" "host"="localhost" +timestamp="2026-10-20T10:29:48.936Z" level=info module="c2s" event="auth-success" connection="42733dc3-dd40-4d85-bf6a-045bee4d3bd1" "user"="load-9" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.936Z" level=info module="c2s" event="auth-success" connection="36d82f1d-774b-4cb9-87a2-5053656782ef" "user"="load-8" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.945Z" level=info module="c2s" event="tls-established" connection="e78776ae-471b-48ab-beca-8e1257a0399f" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.945Z" level=info module="c2s" event="sasl-features" connection="e78776ae-471b-48ab-beca-8e1257a0399f" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.945Z" level=info module="c2s" event="resource-bound" connection="64465288-acf1-49bb-8aff-07610a2c45f5" "jid"="load-1@localhost/load-201" "mode"="legacy" +timestamp="2026-10-20T10:29:48.946Z" level=info module="c2s" event="resource-bound" connection="beadc980-dcae-4710-b75a-bb190d579654" "jid"="load-7@localhost/load-207" "mode"="legacy" +timestamp="2026-10-20T10:29:48.946Z" level=info module="c2s" event="resource-bound" connection="faca53bf-46ac-48d8-b2ba-12b13e7abb06" "jid"="load-0@localhost/load-200" "mode"="legacy" +timestamp="2026-10-20T10:29:48.946Z" level=info module="c2s" event="tls-established" connection="052df096-8cc7-4b84-9202-90acdb23d101" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.946Z" level=info module="c2s" event="sasl-features" connection="052df096-8cc7-4b84-9202-90acdb23d101" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.946Z" level=info module="c2s" event="resource-bound" connection="faa2eb8c-5ab9-4099-a562-0da3fd8c8dc0" "jid"="load-99@localhost/load-199" "mode"="legacy" +timestamp="2026-10-20T10:29:48.956Z" level=info module="c2s" event="connection-open" connection="20365cd7-fe7f-41a4-aea2-6da31d3c0038" "transport"="tcp" "peer"="127.0.0.1:60676" "host"="localhost" +timestamp="2026-10-20T10:29:48.966Z" level=info module="c2s" event="resource-bound" connection="897090a0-edf5-4f7a-aa86-f80dcce36a0e" "jid"="load-4@localhost/load-204" "mode"="legacy" +timestamp="2026-10-20T10:29:48.966Z" level=info module="c2s" event="tls-established" connection="471fff0f-43ac-4f99-807e-922a4b0ab65b" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:48.966Z" level=info module="c2s" event="sasl-features" connection="471fff0f-43ac-4f99-807e-922a4b0ab65b" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:48.966Z" level=info module="c2s" event="sasl-attempt" connection="e78776ae-471b-48ab-beca-8e1257a0399f" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.966Z" level=info module="c2s" event="auth-identity" connection="e78776ae-471b-48ab-beca-8e1257a0399f" "user"="load-11" +timestamp="2026-10-20T10:29:48.967Z" level=info module="c2s" event="resource-bound" connection="36d82f1d-774b-4cb9-87a2-5053656782ef" "jid"="load-8@localhost/load-208" "mode"="legacy" +timestamp="2026-10-20T10:29:48.967Z" level=info module="c2s" event="sasl-attempt" connection="052df096-8cc7-4b84-9202-90acdb23d101" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.967Z" level=info module="c2s" event="auth-identity" connection="052df096-8cc7-4b84-9202-90acdb23d101" "user"="load-10" +timestamp="2026-10-20T10:29:48.967Z" level=info module="c2s" event="resource-bound" connection="42733dc3-dd40-4d85-bf6a-045bee4d3bd1" "jid"="load-9@localhost/load-209" "mode"="legacy" +timestamp="2026-10-20T10:29:48.971Z" level=info module="c2s" event="auth-success" connection="052df096-8cc7-4b84-9202-90acdb23d101" "user"="load-10" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.971Z" level=info module="c2s" event="auth-success" connection="e78776ae-471b-48ab-beca-8e1257a0399f" "user"="load-11" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.973Z" level=info module="c2s" event="connection-open" connection="43bf6b30-01f8-43c0-bb91-c3175f8a94ba" "transport"="tcp" "peer"="127.0.0.1:60670" "host"="localhost" +timestamp="2026-10-20T10:29:48.980Z" level=info module="c2s" event="resource-bound" connection="fc00e723-7a55-4157-8385-d01a446a8148" "jid"="load-2@localhost/load-202" "mode"="legacy" +timestamp="2026-10-20T10:29:48.984Z" level=info module="c2s" event="connection-open" connection="e3ba6b62-ae8c-4a31-959a-95ffff1a90c1" "transport"="tcp" "peer"="127.0.0.1:60698" "host"="localhost" +timestamp="2026-10-20T10:29:48.995Z" level=info module="c2s" event="connection-open" connection="8add8931-480e-46ea-aadf-812af4436baf" "transport"="tcp" "peer"="127.0.0.1:60686" "host"="localhost" +timestamp="2026-10-20T10:29:48.996Z" level=info module="c2s" event="sasl-attempt" connection="471fff0f-43ac-4f99-807e-922a4b0ab65b" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:48.996Z" level=info module="c2s" event="auth-identity" connection="471fff0f-43ac-4f99-807e-922a4b0ab65b" "user"="load-12" +timestamp="2026-10-20T10:29:49.001Z" level=info module="c2s" event="auth-success" connection="471fff0f-43ac-4f99-807e-922a4b0ab65b" "user"="load-12" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.015Z" level=info module="c2s" event="connection-open" connection="4aaea18e-65a5-42b0-94f4-c4c539891a5c" "transport"="tcp" "peer"="127.0.0.1:60740" "host"="localhost" +timestamp="2026-10-20T10:29:49.015Z" level=info module="c2s" event="connection-open" connection="baa1d0d9-f34c-4c69-a019-840477bac1cc" "transport"="tcp" "peer"="127.0.0.1:60700" "host"="localhost" +timestamp="2026-10-20T10:29:49.015Z" level=info module="c2s" event="connection-open" connection="14d90c67-1c39-4eef-afb0-6ad6fc43a584" "transport"="tcp" "peer"="127.0.0.1:60716" "host"="localhost" +timestamp="2026-10-20T10:29:49.015Z" level=info module="c2s" event="connection-open" connection="4d7d8eaa-513d-4664-9161-58af9f4a5ec5" "transport"="tcp" "peer"="127.0.0.1:60728" "host"="localhost" +timestamp="2026-10-20T10:29:49.018Z" level=info module="c2s" event="tls-established" connection="3a2e27c4-0d6a-4472-afce-5378864f30fd" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.018Z" level=info module="c2s" event="sasl-features" connection="3a2e27c4-0d6a-4472-afce-5378864f30fd" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.018Z" level=info module="c2s" event="resource-bound" connection="052df096-8cc7-4b84-9202-90acdb23d101" "jid"="load-10@localhost/load-210" "mode"="legacy" +timestamp="2026-10-20T10:29:49.018Z" level=info module="c2s" event="resource-bound" connection="e78776ae-471b-48ab-beca-8e1257a0399f" "jid"="load-11@localhost/load-211" "mode"="legacy" +timestamp="2026-10-20T10:29:49.028Z" level=info module="c2s" event="sasl-attempt" connection="3a2e27c4-0d6a-4472-afce-5378864f30fd" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.028Z" level=info module="c2s" event="auth-identity" connection="3a2e27c4-0d6a-4472-afce-5378864f30fd" "user"="load-13" +timestamp="2026-10-20T10:29:49.034Z" level=info module="c2s" event="auth-success" connection="3a2e27c4-0d6a-4472-afce-5378864f30fd" "user"="load-13" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.047Z" level=info module="c2s" event="tls-established" connection="43bf6b30-01f8-43c0-bb91-c3175f8a94ba" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.047Z" level=info module="c2s" event="sasl-features" connection="43bf6b30-01f8-43c0-bb91-c3175f8a94ba" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.051Z" level=info module="c2s" event="tls-established" connection="20365cd7-fe7f-41a4-aea2-6da31d3c0038" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.051Z" level=info module="c2s" event="sasl-features" connection="20365cd7-fe7f-41a4-aea2-6da31d3c0038" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.058Z" level=info module="c2s" event="connection-open" connection="ad33f5d1-4e68-4422-98dc-fe04971df7ab" "transport"="tcp" "peer"="127.0.0.1:60782" "host"="localhost" +timestamp="2026-10-20T10:29:49.060Z" level=info module="c2s" event="tls-established" connection="e3ba6b62-ae8c-4a31-959a-95ffff1a90c1" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.060Z" level=info module="c2s" event="sasl-features" connection="e3ba6b62-ae8c-4a31-959a-95ffff1a90c1" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.062Z" level=info module="c2s" event="connection-open" connection="2199553e-23ab-43f9-afab-1f3a147302e4" "transport"="tcp" "peer"="127.0.0.1:60752" "host"="localhost" +timestamp="2026-10-20T10:29:49.070Z" level=info module="c2s" event="sasl-attempt" connection="43bf6b30-01f8-43c0-bb91-c3175f8a94ba" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.070Z" level=info module="c2s" event="auth-identity" connection="43bf6b30-01f8-43c0-bb91-c3175f8a94ba" "user"="load-14" +timestamp="2026-10-20T10:29:49.070Z" level=info module="c2s" event="connection-open" connection="c29803e5-0244-4072-88eb-8ad51e73f748" "transport"="tcp" "peer"="127.0.0.1:60762" "host"="localhost" +timestamp="2026-10-20T10:29:49.070Z" level=info module="c2s" event="connection-open" connection="89e24a72-1c58-430f-86cf-f13b261569a8" "transport"="tcp" "peer"="127.0.0.1:60758" "host"="localhost" +timestamp="2026-10-20T10:29:49.070Z" level=info module="c2s" event="connection-open" connection="a91bb698-1527-4835-a435-b73c89aa5bcf" "transport"="tcp" "peer"="127.0.0.1:60766" "host"="localhost" +timestamp="2026-10-20T10:29:49.071Z" level=info module="c2s" event="connection-open" connection="ee8e1e67-6360-43e7-8c65-a7b10fe86eb6" "transport"="tcp" "peer"="127.0.0.1:60804" "host"="localhost" +timestamp="2026-10-20T10:29:49.071Z" level=info module="c2s" event="tls-established" connection="baa1d0d9-f34c-4c69-a019-840477bac1cc" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.071Z" level=info module="c2s" event="sasl-features" connection="baa1d0d9-f34c-4c69-a019-840477bac1cc" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.071Z" level=info module="c2s" event="sasl-attempt" connection="20365cd7-fe7f-41a4-aea2-6da31d3c0038" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.071Z" level=info module="c2s" event="auth-identity" connection="20365cd7-fe7f-41a4-aea2-6da31d3c0038" "user"="load-15" +timestamp="2026-10-20T10:29:49.071Z" level=info module="c2s" event="tls-established" connection="8add8931-480e-46ea-aadf-812af4436baf" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.071Z" level=info module="c2s" event="sasl-features" connection="8add8931-480e-46ea-aadf-812af4436baf" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.071Z" level=info module="c2s" event="tls-established" connection="14d90c67-1c39-4eef-afb0-6ad6fc43a584" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.071Z" level=info module="c2s" event="sasl-features" connection="14d90c67-1c39-4eef-afb0-6ad6fc43a584" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.071Z" level=info module="c2s" event="tls-established" connection="4aaea18e-65a5-42b0-94f4-c4c539891a5c" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.071Z" level=info module="c2s" event="sasl-features" connection="4aaea18e-65a5-42b0-94f4-c4c539891a5c" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.074Z" level=info module="c2s" event="auth-success" connection="43bf6b30-01f8-43c0-bb91-c3175f8a94ba" "user"="load-14" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.074Z" level=info module="c2s" event="auth-success" connection="20365cd7-fe7f-41a4-aea2-6da31d3c0038" "user"="load-15" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.077Z" level=info module="c2s" event="connection-open" connection="1f11f92d-873f-42a2-bcbd-a2bcab02bc25" "transport"="tcp" "peer"="127.0.0.1:60816" "host"="localhost" +timestamp="2026-10-20T10:29:49.080Z" level=info module="c2s" event="sasl-attempt" connection="e3ba6b62-ae8c-4a31-959a-95ffff1a90c1" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.080Z" level=info module="c2s" event="auth-identity" connection="e3ba6b62-ae8c-4a31-959a-95ffff1a90c1" "user"="load-17" +timestamp="2026-10-20T10:29:49.080Z" level=info module="c2s" event="tls-established" connection="4d7d8eaa-513d-4664-9161-58af9f4a5ec5" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.080Z" level=info module="c2s" event="sasl-features" connection="4d7d8eaa-513d-4664-9161-58af9f4a5ec5" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.080Z" level=info module="c2s" event="sasl-attempt" connection="baa1d0d9-f34c-4c69-a019-840477bac1cc" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.080Z" level=info module="c2s" event="auth-identity" connection="baa1d0d9-f34c-4c69-a019-840477bac1cc" "user"="load-18" +timestamp="2026-10-20T10:29:49.080Z" level=info module="c2s" event="sasl-attempt" connection="8add8931-480e-46ea-aadf-812af4436baf" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.080Z" level=info module="c2s" event="auth-identity" connection="8add8931-480e-46ea-aadf-812af4436baf" "user"="load-16" +timestamp="2026-10-20T10:29:49.080Z" level=info module="c2s" event="sasl-attempt" connection="14d90c67-1c39-4eef-afb0-6ad6fc43a584" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.080Z" level=info module="c2s" event="auth-identity" connection="14d90c67-1c39-4eef-afb0-6ad6fc43a584" "user"="load-19" +timestamp="2026-10-20T10:29:49.080Z" level=info module="c2s" event="sasl-attempt" connection="4aaea18e-65a5-42b0-94f4-c4c539891a5c" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.080Z" level=info module="c2s" event="auth-identity" connection="4aaea18e-65a5-42b0-94f4-c4c539891a5c" "user"="load-21" +timestamp="2026-10-20T10:29:49.080Z" level=info module="c2s" event="connection-open" connection="58c25ed9-b922-4f36-89ba-e3defa7aed48" "transport"="tcp" "peer"="127.0.0.1:60792" "host"="localhost" +timestamp="2026-10-20T10:29:49.080Z" level=info module="c2s" event="sasl-attempt" connection="4d7d8eaa-513d-4664-9161-58af9f4a5ec5" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.080Z" level=info module="c2s" event="auth-identity" connection="4d7d8eaa-513d-4664-9161-58af9f4a5ec5" "user"="load-20" +timestamp="2026-10-20T10:29:49.084Z" level=info module="c2s" event="auth-success" connection="e3ba6b62-ae8c-4a31-959a-95ffff1a90c1" "user"="load-17" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.084Z" level=info module="c2s" event="auth-success" connection="baa1d0d9-f34c-4c69-a019-840477bac1cc" "user"="load-18" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.084Z" level=info module="c2s" event="auth-success" connection="8add8931-480e-46ea-aadf-812af4436baf" "user"="load-16" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.084Z" level=info module="c2s" event="auth-success" connection="14d90c67-1c39-4eef-afb0-6ad6fc43a584" "user"="load-19" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.084Z" level=info module="c2s" event="auth-success" connection="4d7d8eaa-513d-4664-9161-58af9f4a5ec5" "user"="load-20" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.084Z" level=info module="c2s" event="auth-success" connection="4aaea18e-65a5-42b0-94f4-c4c539891a5c" "user"="load-21" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.088Z" level=info module="c2s" event="tls-established" connection="a91bb698-1527-4835-a435-b73c89aa5bcf" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.088Z" level=info module="c2s" event="sasl-features" connection="a91bb698-1527-4835-a435-b73c89aa5bcf" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.089Z" level=info module="c2s" event="tls-established" connection="ee8e1e67-6360-43e7-8c65-a7b10fe86eb6" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.089Z" level=info module="c2s" event="sasl-features" connection="ee8e1e67-6360-43e7-8c65-a7b10fe86eb6" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.089Z" level=info module="c2s" event="tls-established" connection="2199553e-23ab-43f9-afab-1f3a147302e4" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.089Z" level=info module="c2s" event="sasl-features" connection="2199553e-23ab-43f9-afab-1f3a147302e4" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.089Z" level=info module="c2s" event="tls-established" connection="c29803e5-0244-4072-88eb-8ad51e73f748" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.089Z" level=info module="c2s" event="sasl-features" connection="c29803e5-0244-4072-88eb-8ad51e73f748" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.090Z" level=info module="c2s" event="tls-established" connection="89e24a72-1c58-430f-86cf-f13b261569a8" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.090Z" level=info module="c2s" event="sasl-features" connection="89e24a72-1c58-430f-86cf-f13b261569a8" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.090Z" level=info module="c2s" event="tls-established" connection="ad33f5d1-4e68-4422-98dc-fe04971df7ab" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.090Z" level=info module="c2s" event="sasl-features" connection="ad33f5d1-4e68-4422-98dc-fe04971df7ab" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.095Z" level=info module="c2s" event="resource-bound" connection="e3ba6b62-ae8c-4a31-959a-95ffff1a90c1" "jid"="load-17@localhost/load-217" "mode"="legacy" +timestamp="2026-10-20T10:29:49.095Z" level=info module="c2s" event="resource-bound" connection="471fff0f-43ac-4f99-807e-922a4b0ab65b" "jid"="load-12@localhost/load-212" "mode"="legacy" +timestamp="2026-10-20T10:29:49.095Z" level=info module="c2s" event="resource-bound" connection="3a2e27c4-0d6a-4472-afce-5378864f30fd" "jid"="load-13@localhost/load-213" "mode"="legacy" +timestamp="2026-10-20T10:29:49.095Z" level=info module="c2s" event="resource-bound" connection="43bf6b30-01f8-43c0-bb91-c3175f8a94ba" "jid"="load-14@localhost/load-214" "mode"="legacy" +timestamp="2026-10-20T10:29:49.095Z" level=info module="c2s" event="sasl-attempt" connection="a91bb698-1527-4835-a435-b73c89aa5bcf" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.095Z" level=info module="c2s" event="resource-bound" connection="20365cd7-fe7f-41a4-aea2-6da31d3c0038" "jid"="load-15@localhost/load-215" "mode"="legacy" +timestamp="2026-10-20T10:29:49.095Z" level=info module="c2s" event="resource-bound" connection="4aaea18e-65a5-42b0-94f4-c4c539891a5c" "jid"="load-21@localhost/load-221" "mode"="legacy" +timestamp="2026-10-20T10:29:49.095Z" level=info module="c2s" event="auth-identity" connection="a91bb698-1527-4835-a435-b73c89aa5bcf" "user"="load-25" +timestamp="2026-10-20T10:29:49.095Z" level=info module="c2s" event="connection-open" connection="5cb56c8f-4dd1-41c9-93ab-997031a53c2b" "transport"="tcp" "peer"="127.0.0.1:60818" "host"="localhost" +timestamp="2026-10-20T10:29:49.095Z" level=info module="c2s" event="tls-established" connection="1f11f92d-873f-42a2-bcbd-a2bcab02bc25" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.095Z" level=info module="c2s" event="sasl-attempt" connection="2199553e-23ab-43f9-afab-1f3a147302e4" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.095Z" level=info module="c2s" event="sasl-features" connection="1f11f92d-873f-42a2-bcbd-a2bcab02bc25" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.095Z" level=info module="c2s" event="resource-bound" connection="4d7d8eaa-513d-4664-9161-58af9f4a5ec5" "jid"="load-20@localhost/load-220" "mode"="legacy" +timestamp="2026-10-20T10:29:49.095Z" level=info module="c2s" event="resource-bound" connection="14d90c67-1c39-4eef-afb0-6ad6fc43a584" "jid"="load-19@localhost/load-219" "mode"="legacy" +timestamp="2026-10-20T10:29:49.095Z" level=info module="c2s" event="sasl-attempt" connection="ee8e1e67-6360-43e7-8c65-a7b10fe86eb6" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.095Z" level=info module="c2s" event="resource-bound" connection="baa1d0d9-f34c-4c69-a019-840477bac1cc" "jid"="load-18@localhost/load-218" "mode"="legacy" +timestamp="2026-10-20T10:29:49.095Z" level=info module="c2s" event="sasl-attempt" connection="c29803e5-0244-4072-88eb-8ad51e73f748" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.095Z" level=info module="c2s" event="tls-established" connection="58c25ed9-b922-4f36-89ba-e3defa7aed48" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.095Z" level=info module="c2s" event="auth-identity" connection="c29803e5-0244-4072-88eb-8ad51e73f748" "user"="load-24" +timestamp="2026-10-20T10:29:49.095Z" level=info module="c2s" event="sasl-features" connection="58c25ed9-b922-4f36-89ba-e3defa7aed48" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.095Z" level=info module="c2s" event="resource-bound" connection="8add8931-480e-46ea-aadf-812af4436baf" "jid"="load-16@localhost/load-216" "mode"="legacy" +timestamp="2026-10-20T10:29:49.095Z" level=info module="c2s" event="auth-identity" connection="2199553e-23ab-43f9-afab-1f3a147302e4" "user"="load-22" +timestamp="2026-10-20T10:29:49.097Z" level=info module="c2s" event="auth-success" connection="a91bb698-1527-4835-a435-b73c89aa5bcf" "user"="load-25" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.097Z" level=info module="c2s" event="sasl-attempt" connection="ad33f5d1-4e68-4422-98dc-fe04971df7ab" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.097Z" level=info module="c2s" event="auth-identity" connection="ad33f5d1-4e68-4422-98dc-fe04971df7ab" "user"="load-26" +timestamp="2026-10-20T10:29:49.097Z" level=info module="c2s" event="auth-identity" connection="ee8e1e67-6360-43e7-8c65-a7b10fe86eb6" "user"="load-28" +timestamp="2026-10-20T10:29:49.097Z" level=info module="c2s" event="auth-success" connection="c29803e5-0244-4072-88eb-8ad51e73f748" "user"="load-24" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.097Z" level=info module="c2s" event="sasl-attempt" connection="89e24a72-1c58-430f-86cf-f13b261569a8" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.097Z" level=info module="c2s" event="auth-identity" connection="89e24a72-1c58-430f-86cf-f13b261569a8" "user"="load-23" +timestamp="2026-10-20T10:29:49.098Z" level=info module="c2s" event="sasl-attempt" connection="58c25ed9-b922-4f36-89ba-e3defa7aed48" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.098Z" level=info module="c2s" event="auth-identity" connection="58c25ed9-b922-4f36-89ba-e3defa7aed48" "user"="load-27" +timestamp="2026-10-20T10:29:49.104Z" level=info module="c2s" event="auth-success" connection="ad33f5d1-4e68-4422-98dc-fe04971df7ab" "user"="load-26" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.104Z" level=info module="c2s" event="auth-success" connection="2199553e-23ab-43f9-afab-1f3a147302e4" "user"="load-22" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.104Z" level=info module="c2s" event="auth-success" connection="89e24a72-1c58-430f-86cf-f13b261569a8" "user"="load-23" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.104Z" level=info module="c2s" event="auth-success" connection="ee8e1e67-6360-43e7-8c65-a7b10fe86eb6" "user"="load-28" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.104Z" level=info module="c2s" event="auth-success" connection="58c25ed9-b922-4f36-89ba-e3defa7aed48" "user"="load-27" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.112Z" level=info module="c2s" event="sasl-attempt" connection="1f11f92d-873f-42a2-bcbd-a2bcab02bc25" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.112Z" level=info module="c2s" event="auth-identity" connection="1f11f92d-873f-42a2-bcbd-a2bcab02bc25" "user"="load-29" +timestamp="2026-10-20T10:29:49.122Z" level=info module="c2s" event="auth-success" connection="1f11f92d-873f-42a2-bcbd-a2bcab02bc25" "user"="load-29" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.153Z" level=info module="c2s" event="resource-bound" connection="89e24a72-1c58-430f-86cf-f13b261569a8" "jid"="load-23@localhost/load-223" "mode"="legacy" +timestamp="2026-10-20T10:29:49.153Z" level=info module="c2s" event="resource-bound" connection="ee8e1e67-6360-43e7-8c65-a7b10fe86eb6" "jid"="load-28@localhost/load-228" "mode"="legacy" +timestamp="2026-10-20T10:29:49.153Z" level=info module="c2s" event="resource-bound" connection="2199553e-23ab-43f9-afab-1f3a147302e4" "jid"="load-22@localhost/load-222" "mode"="legacy" +timestamp="2026-10-20T10:29:49.153Z" level=info module="c2s" event="resource-bound" connection="58c25ed9-b922-4f36-89ba-e3defa7aed48" "jid"="load-27@localhost/load-227" "mode"="legacy" +timestamp="2026-10-20T10:29:49.166Z" level=info module="c2s" event="resource-bound" connection="ad33f5d1-4e68-4422-98dc-fe04971df7ab" "jid"="load-26@localhost/load-226" "mode"="legacy" +timestamp="2026-10-20T10:29:49.166Z" level=info module="c2s" event="connection-open" connection="c87ef6f1-3e30-4420-bd00-a87f342bf2c4" "transport"="tcp" "peer"="127.0.0.1:60902" "host"="localhost" +timestamp="2026-10-20T10:29:49.166Z" level=info module="c2s" event="connection-open" connection="84e97d9b-8b3f-4b4a-a3a5-3e47eb4fc3d4" "transport"="tcp" "peer"="127.0.0.1:60834" "host"="localhost" +timestamp="2026-10-20T10:29:49.166Z" level=info module="c2s" event="connection-open" connection="de858c30-0d53-46eb-958a-b0bea4f618eb" "transport"="tcp" "peer"="127.0.0.1:60836" "host"="localhost" +timestamp="2026-10-20T10:29:49.166Z" level=info module="c2s" event="connection-open" connection="ac1d9ec6-af06-4e24-aef9-ee442aaf744f" "transport"="tcp" "peer"="127.0.0.1:60850" "host"="localhost" +timestamp="2026-10-20T10:29:49.166Z" level=info module="c2s" event="connection-open" connection="de055dda-a74e-4b86-af62-b1f5a2455704" "transport"="tcp" "peer"="127.0.0.1:60864" "host"="localhost" +timestamp="2026-10-20T10:29:49.166Z" level=info module="c2s" event="connection-open" connection="d6975f39-eeb0-428a-a0dc-0da3aa96779c" "transport"="tcp" "peer"="127.0.0.1:60874" "host"="localhost" +timestamp="2026-10-20T10:29:49.166Z" level=info module="c2s" event="connection-open" connection="d44a78d2-5c40-4fa1-b586-5ea82e583e1f" "transport"="tcp" "peer"="127.0.0.1:60884" "host"="localhost" +timestamp="2026-10-20T10:29:49.166Z" level=info module="c2s" event="connection-open" connection="6ab49db1-0fbb-4c3b-941a-4592cd209d58" "transport"="tcp" "peer"="127.0.0.1:60896" "host"="localhost" +timestamp="2026-10-20T10:29:49.166Z" level=info module="c2s" event="resource-bound" connection="a91bb698-1527-4835-a435-b73c89aa5bcf" "jid"="load-25@localhost/load-225" "mode"="legacy" +timestamp="2026-10-20T10:29:49.167Z" level=info module="c2s" event="resource-bound" connection="c29803e5-0244-4072-88eb-8ad51e73f748" "jid"="load-24@localhost/load-224" "mode"="legacy" +timestamp="2026-10-20T10:29:49.193Z" level=info module="c2s" event="resource-bound" connection="1f11f92d-873f-42a2-bcbd-a2bcab02bc25" "jid"="load-29@localhost/load-229" "mode"="legacy" +timestamp="2026-10-20T10:29:49.201Z" level=info module="c2s" event="tls-established" connection="5cb56c8f-4dd1-41c9-93ab-997031a53c2b" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.201Z" level=info module="c2s" event="sasl-features" connection="5cb56c8f-4dd1-41c9-93ab-997031a53c2b" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.202Z" level=info module="c2s" event="sasl-attempt" connection="5cb56c8f-4dd1-41c9-93ab-997031a53c2b" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.202Z" level=info module="c2s" event="auth-identity" connection="5cb56c8f-4dd1-41c9-93ab-997031a53c2b" "user"="load-30" +timestamp="2026-10-20T10:29:49.206Z" level=info module="c2s" event="auth-success" connection="5cb56c8f-4dd1-41c9-93ab-997031a53c2b" "user"="load-30" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.236Z" level=info module="c2s" event="connection-open" connection="ee2905ac-2be8-4f9c-bbcd-58629fa672b4" "transport"="tcp" "peer"="127.0.0.1:60960" "host"="localhost" +timestamp="2026-10-20T10:29:49.236Z" level=info module="c2s" event="connection-open" connection="68e1a953-afe0-45f0-850c-46aadb47b13b" "transport"="tcp" "peer"="127.0.0.1:60910" "host"="localhost" +timestamp="2026-10-20T10:29:49.236Z" level=info module="c2s" event="connection-open" connection="ecd14e30-f9a7-424b-b327-ddf9121c1967" "transport"="tcp" "peer"="127.0.0.1:60922" "host"="localhost" +timestamp="2026-10-20T10:29:49.237Z" level=info module="c2s" event="connection-open" connection="ae525165-cbbd-436a-95a2-971e97d41736" "transport"="tcp" "peer"="127.0.0.1:60932" "host"="localhost" +timestamp="2026-10-20T10:29:49.237Z" level=info module="c2s" event="connection-open" connection="9c0f4948-a9b4-4513-b8e1-152d9b42f2b3" "transport"="tcp" "peer"="127.0.0.1:60946" "host"="localhost" +timestamp="2026-10-20T10:29:49.253Z" level=info module="c2s" event="tls-established" connection="d6975f39-eeb0-428a-a0dc-0da3aa96779c" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.253Z" level=info module="c2s" event="sasl-features" connection="d6975f39-eeb0-428a-a0dc-0da3aa96779c" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.253Z" level=info module="c2s" event="resource-bound" connection="5cb56c8f-4dd1-41c9-93ab-997031a53c2b" "jid"="load-30@localhost/load-230" "mode"="legacy" +timestamp="2026-10-20T10:29:49.254Z" level=info module="c2s" event="tls-established" connection="c87ef6f1-3e30-4420-bd00-a87f342bf2c4" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.254Z" level=info module="c2s" event="sasl-features" connection="c87ef6f1-3e30-4420-bd00-a87f342bf2c4" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.258Z" level=info module="c2s" event="connection-open" connection="e46a066b-6d64-4190-8e6c-3fdbaa321c26" "transport"="tcp" "peer"="127.0.0.1:60992" "host"="localhost" +timestamp="2026-10-20T10:29:49.261Z" level=info module="c2s" event="tls-established" connection="de858c30-0d53-46eb-958a-b0bea4f618eb" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.261Z" level=info module="c2s" event="sasl-features" connection="de858c30-0d53-46eb-958a-b0bea4f618eb" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.261Z" level=info module="c2s" event="sasl-attempt" connection="d6975f39-eeb0-428a-a0dc-0da3aa96779c" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.261Z" level=info module="c2s" event="auth-identity" connection="d6975f39-eeb0-428a-a0dc-0da3aa96779c" "user"="load-35" +timestamp="2026-10-20T10:29:49.262Z" level=info module="c2s" event="tls-established" connection="6ab49db1-0fbb-4c3b-941a-4592cd209d58" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.262Z" level=info module="c2s" event="sasl-features" connection="6ab49db1-0fbb-4c3b-941a-4592cd209d58" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.262Z" level=info module="c2s" event="tls-established" connection="d44a78d2-5c40-4fa1-b586-5ea82e583e1f" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.262Z" level=info module="c2s" event="sasl-features" connection="d44a78d2-5c40-4fa1-b586-5ea82e583e1f" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.262Z" level=info module="c2s" event="sasl-attempt" connection="c87ef6f1-3e30-4420-bd00-a87f342bf2c4" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.262Z" level=info module="c2s" event="auth-identity" connection="c87ef6f1-3e30-4420-bd00-a87f342bf2c4" "user"="load-38" +timestamp="2026-10-20T10:29:49.263Z" level=info module="c2s" event="tls-established" connection="ac1d9ec6-af06-4e24-aef9-ee442aaf744f" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.263Z" level=info module="c2s" event="sasl-features" connection="ac1d9ec6-af06-4e24-aef9-ee442aaf744f" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.263Z" level=info module="c2s" event="tls-established" connection="84e97d9b-8b3f-4b4a-a3a5-3e47eb4fc3d4" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.263Z" level=info module="c2s" event="sasl-features" connection="84e97d9b-8b3f-4b4a-a3a5-3e47eb4fc3d4" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.263Z" level=info module="c2s" event="connection-open" connection="d04f5a4b-5e57-4474-8d1c-f7252ed6bb49" "transport"="tcp" "peer"="127.0.0.1:60970" "host"="localhost" +timestamp="2026-10-20T10:29:49.263Z" level=info module="c2s" event="connection-open" connection="902a25f7-4cd9-4438-91ea-3529cba1a31e" "transport"="tcp" "peer"="127.0.0.1:60986" "host"="localhost" +timestamp="2026-10-20T10:29:49.264Z" level=info module="c2s" event="auth-success" connection="d6975f39-eeb0-428a-a0dc-0da3aa96779c" "user"="load-35" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.264Z" level=info module="c2s" event="sasl-attempt" connection="de858c30-0d53-46eb-958a-b0bea4f618eb" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.264Z" level=info module="c2s" event="auth-identity" connection="de858c30-0d53-46eb-958a-b0bea4f618eb" "user"="load-32" +timestamp="2026-10-20T10:29:49.264Z" level=info module="c2s" event="auth-success" connection="c87ef6f1-3e30-4420-bd00-a87f342bf2c4" "user"="load-38" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.264Z" level=info module="c2s" event="sasl-attempt" connection="6ab49db1-0fbb-4c3b-941a-4592cd209d58" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.264Z" level=info module="c2s" event="auth-identity" connection="6ab49db1-0fbb-4c3b-941a-4592cd209d58" "user"="load-37" +timestamp="2026-10-20T10:29:49.264Z" level=info module="c2s" event="sasl-attempt" connection="d44a78d2-5c40-4fa1-b586-5ea82e583e1f" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.264Z" level=info module="c2s" event="auth-identity" connection="d44a78d2-5c40-4fa1-b586-5ea82e583e1f" "user"="load-36" +timestamp="2026-10-20T10:29:49.264Z" level=info module="c2s" event="tls-established" connection="ee2905ac-2be8-4f9c-bbcd-58629fa672b4" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.264Z" level=info module="c2s" event="sasl-features" connection="ee2905ac-2be8-4f9c-bbcd-58629fa672b4" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.264Z" level=info module="c2s" event="tls-established" connection="68e1a953-afe0-45f0-850c-46aadb47b13b" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.264Z" level=info module="c2s" event="sasl-features" connection="68e1a953-afe0-45f0-850c-46aadb47b13b" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.265Z" level=info module="c2s" event="tls-established" connection="ecd14e30-f9a7-424b-b327-ddf9121c1967" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.265Z" level=info module="c2s" event="sasl-features" connection="ecd14e30-f9a7-424b-b327-ddf9121c1967" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.265Z" level=info module="c2s" event="tls-established" connection="ae525165-cbbd-436a-95a2-971e97d41736" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.265Z" level=info module="c2s" event="sasl-features" connection="ae525165-cbbd-436a-95a2-971e97d41736" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.265Z" level=info module="c2s" event="tls-established" connection="9c0f4948-a9b4-4513-b8e1-152d9b42f2b3" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.265Z" level=info module="c2s" event="sasl-features" connection="9c0f4948-a9b4-4513-b8e1-152d9b42f2b3" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.265Z" level=info module="c2s" event="tls-established" connection="de055dda-a74e-4b86-af62-b1f5a2455704" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.265Z" level=info module="c2s" event="sasl-features" connection="de055dda-a74e-4b86-af62-b1f5a2455704" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.265Z" level=info module="c2s" event="sasl-attempt" connection="ac1d9ec6-af06-4e24-aef9-ee442aaf744f" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.265Z" level=info module="c2s" event="auth-identity" connection="ac1d9ec6-af06-4e24-aef9-ee442aaf744f" "user"="load-33" +timestamp="2026-10-20T10:29:49.265Z" level=info module="c2s" event="sasl-attempt" connection="84e97d9b-8b3f-4b4a-a3a5-3e47eb4fc3d4" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.265Z" level=info module="c2s" event="auth-identity" connection="84e97d9b-8b3f-4b4a-a3a5-3e47eb4fc3d4" "user"="load-31" +timestamp="2026-10-20T10:29:49.266Z" level=info module="c2s" event="sasl-attempt" connection="de055dda-a74e-4b86-af62-b1f5a2455704" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.266Z" level=info module="c2s" event="auth-identity" connection="de055dda-a74e-4b86-af62-b1f5a2455704" "user"="load-34" +timestamp="2026-10-20T10:29:49.267Z" level=info module="c2s" event="auth-success" connection="de055dda-a74e-4b86-af62-b1f5a2455704" "user"="load-34" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.267Z" level=info module="c2s" event="auth-success" connection="d44a78d2-5c40-4fa1-b586-5ea82e583e1f" "user"="load-36" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.267Z" level=info module="c2s" event="auth-success" connection="de858c30-0d53-46eb-958a-b0bea4f618eb" "user"="load-32" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.267Z" level=info module="c2s" event="sasl-attempt" connection="ee2905ac-2be8-4f9c-bbcd-58629fa672b4" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.267Z" level=info module="c2s" event="auth-identity" connection="ee2905ac-2be8-4f9c-bbcd-58629fa672b4" "user"="load-43" +timestamp="2026-10-20T10:29:49.267Z" level=info module="c2s" event="auth-success" connection="6ab49db1-0fbb-4c3b-941a-4592cd209d58" "user"="load-37" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.267Z" level=info module="c2s" event="sasl-attempt" connection="68e1a953-afe0-45f0-850c-46aadb47b13b" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.267Z" level=info module="c2s" event="auth-identity" connection="68e1a953-afe0-45f0-850c-46aadb47b13b" "user"="load-39" +timestamp="2026-10-20T10:29:49.267Z" level=info module="c2s" event="auth-success" connection="84e97d9b-8b3f-4b4a-a3a5-3e47eb4fc3d4" "user"="load-31" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.267Z" level=info module="c2s" event="sasl-attempt" connection="ecd14e30-f9a7-424b-b327-ddf9121c1967" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.267Z" level=info module="c2s" event="auth-identity" connection="ecd14e30-f9a7-424b-b327-ddf9121c1967" "user"="load-40" +timestamp="2026-10-20T10:29:49.267Z" level=info module="c2s" event="auth-success" connection="ac1d9ec6-af06-4e24-aef9-ee442aaf744f" "user"="load-33" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.268Z" level=info module="c2s" event="sasl-attempt" connection="ae525165-cbbd-436a-95a2-971e97d41736" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.268Z" level=info module="c2s" event="auth-identity" connection="ae525165-cbbd-436a-95a2-971e97d41736" "user"="load-41" +timestamp="2026-10-20T10:29:49.268Z" level=info module="c2s" event="sasl-attempt" connection="9c0f4948-a9b4-4513-b8e1-152d9b42f2b3" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.268Z" level=info module="c2s" event="auth-identity" connection="9c0f4948-a9b4-4513-b8e1-152d9b42f2b3" "user"="load-42" +timestamp="2026-10-20T10:29:49.268Z" level=info module="c2s" event="resource-bound" connection="d6975f39-eeb0-428a-a0dc-0da3aa96779c" "jid"="load-35@localhost/load-235" "mode"="legacy" +timestamp="2026-10-20T10:29:49.268Z" level=info module="c2s" event="resource-bound" connection="c87ef6f1-3e30-4420-bd00-a87f342bf2c4" "jid"="load-38@localhost/load-238" "mode"="legacy" +timestamp="2026-10-20T10:29:49.271Z" level=info module="c2s" event="auth-success" connection="ee2905ac-2be8-4f9c-bbcd-58629fa672b4" "user"="load-43" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.271Z" level=info module="c2s" event="auth-success" connection="ae525165-cbbd-436a-95a2-971e97d41736" "user"="load-41" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.271Z" level=info module="c2s" event="auth-success" connection="68e1a953-afe0-45f0-850c-46aadb47b13b" "user"="load-39" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.271Z" level=info module="c2s" event="auth-success" connection="ecd14e30-f9a7-424b-b327-ddf9121c1967" "user"="load-40" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.271Z" level=info module="c2s" event="auth-success" connection="9c0f4948-a9b4-4513-b8e1-152d9b42f2b3" "user"="load-42" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.271Z" level=info module="c2s" event="tls-established" connection="902a25f7-4cd9-4438-91ea-3529cba1a31e" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.271Z" level=info module="c2s" event="sasl-features" connection="902a25f7-4cd9-4438-91ea-3529cba1a31e" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.271Z" level=info module="c2s" event="resource-bound" connection="d44a78d2-5c40-4fa1-b586-5ea82e583e1f" "jid"="load-36@localhost/load-236" "mode"="legacy" +timestamp="2026-10-20T10:29:49.272Z" level=info module="c2s" event="sasl-attempt" connection="902a25f7-4cd9-4438-91ea-3529cba1a31e" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.272Z" level=info module="c2s" event="auth-identity" connection="902a25f7-4cd9-4438-91ea-3529cba1a31e" "user"="load-45" +timestamp="2026-10-20T10:29:49.272Z" level=info module="c2s" event="tls-established" connection="e46a066b-6d64-4190-8e6c-3fdbaa321c26" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.272Z" level=info module="c2s" event="sasl-features" connection="e46a066b-6d64-4190-8e6c-3fdbaa321c26" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.272Z" level=info module="c2s" event="tls-established" connection="d04f5a4b-5e57-4474-8d1c-f7252ed6bb49" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.272Z" level=info module="c2s" event="sasl-features" connection="d04f5a4b-5e57-4474-8d1c-f7252ed6bb49" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.272Z" level=info module="c2s" event="resource-bound" connection="de055dda-a74e-4b86-af62-b1f5a2455704" "jid"="load-34@localhost/load-234" "mode"="legacy" +timestamp="2026-10-20T10:29:49.275Z" level=info module="c2s" event="auth-success" connection="902a25f7-4cd9-4438-91ea-3529cba1a31e" "user"="load-45" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.275Z" level=info module="c2s" event="resource-bound" connection="6ab49db1-0fbb-4c3b-941a-4592cd209d58" "jid"="load-37@localhost/load-237" "mode"="legacy" +timestamp="2026-10-20T10:29:49.275Z" level=info module="c2s" event="resource-bound" connection="68e1a953-afe0-45f0-850c-46aadb47b13b" "jid"="load-39@localhost/load-239" "mode"="legacy" +timestamp="2026-10-20T10:29:49.276Z" level=info module="c2s" event="resource-bound" connection="de858c30-0d53-46eb-958a-b0bea4f618eb" "jid"="load-32@localhost/load-232" "mode"="legacy" +timestamp="2026-10-20T10:29:49.276Z" level=info module="c2s" event="resource-bound" connection="ac1d9ec6-af06-4e24-aef9-ee442aaf744f" "jid"="load-33@localhost/load-233" "mode"="legacy" +timestamp="2026-10-20T10:29:49.276Z" level=info module="c2s" event="resource-bound" connection="84e97d9b-8b3f-4b4a-a3a5-3e47eb4fc3d4" "jid"="load-31@localhost/load-231" "mode"="legacy" +timestamp="2026-10-20T10:29:49.279Z" level=info module="c2s" event="resource-bound" connection="ecd14e30-f9a7-424b-b327-ddf9121c1967" "jid"="load-40@localhost/load-240" "mode"="legacy" +timestamp="2026-10-20T10:29:49.279Z" level=info module="c2s" event="sasl-attempt" connection="e46a066b-6d64-4190-8e6c-3fdbaa321c26" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.279Z" level=info module="c2s" event="auth-identity" connection="e46a066b-6d64-4190-8e6c-3fdbaa321c26" "user"="load-46" +timestamp="2026-10-20T10:29:49.279Z" level=info module="c2s" event="sasl-attempt" connection="d04f5a4b-5e57-4474-8d1c-f7252ed6bb49" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.279Z" level=info module="c2s" event="auth-identity" connection="d04f5a4b-5e57-4474-8d1c-f7252ed6bb49" "user"="load-44" +timestamp="2026-10-20T10:29:49.282Z" level=info module="c2s" event="auth-success" connection="d04f5a4b-5e57-4474-8d1c-f7252ed6bb49" "user"="load-44" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.282Z" level=info module="c2s" event="auth-success" connection="e46a066b-6d64-4190-8e6c-3fdbaa321c26" "user"="load-46" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.287Z" level=info module="c2s" event="resource-bound" connection="ee2905ac-2be8-4f9c-bbcd-58629fa672b4" "jid"="load-43@localhost/load-243" "mode"="legacy" +timestamp="2026-10-20T10:29:49.287Z" level=info module="c2s" event="resource-bound" connection="ae525165-cbbd-436a-95a2-971e97d41736" "jid"="load-41@localhost/load-241" "mode"="legacy" +timestamp="2026-10-20T10:29:49.320Z" level=info module="c2s" event="resource-bound" connection="902a25f7-4cd9-4438-91ea-3529cba1a31e" "jid"="load-45@localhost/load-245" "mode"="legacy" +timestamp="2026-10-20T10:29:49.321Z" level=info module="c2s" event="resource-bound" connection="9c0f4948-a9b4-4513-b8e1-152d9b42f2b3" "jid"="load-42@localhost/load-242" "mode"="legacy" +timestamp="2026-10-20T10:29:49.322Z" level=info module="c2s" event="connection-open" connection="30fc8aeb-fa92-4bc2-8d85-bd890bfc6b50" "transport"="tcp" "peer"="127.0.0.1:32824" "host"="localhost" +timestamp="2026-10-20T10:29:49.322Z" level=info module="c2s" event="connection-open" connection="d254ebc4-da41-4627-bdcb-6d58cfff4ffd" "transport"="tcp" "peer"="127.0.0.1:60998" "host"="localhost" +timestamp="2026-10-20T10:29:49.322Z" level=info module="c2s" event="connection-open" connection="24552a55-72e1-4b54-bf1f-390dd1161cc1" "transport"="tcp" "peer"="127.0.0.1:32768" "host"="localhost" +timestamp="2026-10-20T10:29:49.322Z" level=info module="c2s" event="connection-open" connection="9a9ac9dd-d10a-4032-affb-6ba0de057ac2" "transport"="tcp" "peer"="127.0.0.1:32784" "host"="localhost" +timestamp="2026-10-20T10:29:49.322Z" level=info module="c2s" event="connection-open" connection="d8e4f769-b98c-4e98-a180-01adebcdebdd" "transport"="tcp" "peer"="127.0.0.1:32796" "host"="localhost" +timestamp="2026-10-20T10:29:49.322Z" level=info module="c2s" event="connection-open" connection="36f64e3b-4cac-492e-8aca-bce3a7b23ea4" "transport"="tcp" "peer"="127.0.0.1:32808" "host"="localhost" +timestamp="2026-10-20T10:29:49.329Z" level=info module="c2s" event="resource-bound" connection="d04f5a4b-5e57-4474-8d1c-f7252ed6bb49" "jid"="load-44@localhost/load-244" "mode"="legacy" +timestamp="2026-10-20T10:29:49.340Z" level=info module="c2s" event="resource-bound" connection="e46a066b-6d64-4190-8e6c-3fdbaa321c26" "jid"="load-46@localhost/load-246" "mode"="legacy" +timestamp="2026-10-20T10:29:49.379Z" level=info module="c2s" event="connection-open" connection="a087175b-b5c2-4456-8d6f-e21b7e9484c2" "transport"="tcp" "peer"="127.0.0.1:32866" "host"="localhost" +timestamp="2026-10-20T10:29:49.379Z" level=info module="c2s" event="connection-open" connection="59c6d778-7ac4-4e8c-a3df-64032d7c1901" "transport"="tcp" "peer"="127.0.0.1:32830" "host"="localhost" +timestamp="2026-10-20T10:29:49.379Z" level=info module="c2s" event="connection-open" connection="f2baecc9-10b4-4475-bb6b-2a76715b56d7" "transport"="tcp" "peer"="127.0.0.1:32834" "host"="localhost" +timestamp="2026-10-20T10:29:49.379Z" level=info module="c2s" event="connection-open" connection="33d87622-9bd8-434f-a869-31763f88e8c1" "transport"="tcp" "peer"="127.0.0.1:32836" "host"="localhost" +timestamp="2026-10-20T10:29:49.379Z" level=info module="c2s" event="connection-open" connection="2c6a8791-8098-42b0-b992-85d5edbc74f0" "transport"="tcp" "peer"="127.0.0.1:32850" "host"="localhost" +timestamp="2026-10-20T10:29:49.379Z" level=info module="c2s" event="connection-open" connection="81f2904f-c02d-4327-b940-6a915079dfc5" "transport"="tcp" "peer"="127.0.0.1:32858" "host"="localhost" +timestamp="2026-10-20T10:29:49.414Z" level=info module="c2s" event="tls-established" connection="36f64e3b-4cac-492e-8aca-bce3a7b23ea4" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.414Z" level=info module="c2s" event="sasl-features" connection="36f64e3b-4cac-492e-8aca-bce3a7b23ea4" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.414Z" level=info module="c2s" event="connection-open" connection="3e097f8d-99d0-4368-ae8f-6d6268d75282" "transport"="tcp" "peer"="127.0.0.1:32916" "host"="localhost" +timestamp="2026-10-20T10:29:49.416Z" level=info module="c2s" event="connection-open" connection="418189e0-03f2-4573-8c95-9774604bc756" "transport"="tcp" "peer"="127.0.0.1:32878" "host"="localhost" +timestamp="2026-10-20T10:29:49.421Z" level=info module="c2s" event="connection-open" connection="c6acf77c-3a21-4d5f-8c84-80b8abdfc28c" "transport"="tcp" "peer"="127.0.0.1:32902" "host"="localhost" +timestamp="2026-10-20T10:29:49.421Z" level=info module="c2s" event="connection-open" connection="7596d6d9-b736-4ea6-bbbd-1724b91275d4" "transport"="tcp" "peer"="127.0.0.1:32892" "host"="localhost" +timestamp="2026-10-20T10:29:49.421Z" level=info module="c2s" event="connection-open" connection="8c85f0d1-57ad-4d53-b57b-de33f4f40ad2" "transport"="tcp" "peer"="127.0.0.1:32910" "host"="localhost" +timestamp="2026-10-20T10:29:49.423Z" level=info module="c2s" event="connection-open" connection="82138bd7-1430-48be-aaf7-6e5c9e346ee7" "transport"="tcp" "peer"="127.0.0.1:32876" "host"="localhost" +timestamp="2026-10-20T10:29:49.423Z" level=info module="c2s" event="tls-established" connection="9a9ac9dd-d10a-4032-affb-6ba0de057ac2" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.423Z" level=info module="c2s" event="sasl-features" connection="9a9ac9dd-d10a-4032-affb-6ba0de057ac2" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.423Z" level=info module="c2s" event="tls-established" connection="30fc8aeb-fa92-4bc2-8d85-bd890bfc6b50" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.423Z" level=info module="c2s" event="sasl-features" connection="30fc8aeb-fa92-4bc2-8d85-bd890bfc6b50" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.423Z" level=info module="c2s" event="tls-established" connection="d254ebc4-da41-4627-bdcb-6d58cfff4ffd" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.423Z" level=info module="c2s" event="sasl-features" connection="d254ebc4-da41-4627-bdcb-6d58cfff4ffd" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.423Z" level=info module="c2s" event="tls-established" connection="d8e4f769-b98c-4e98-a180-01adebcdebdd" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.423Z" level=info module="c2s" event="sasl-features" connection="d8e4f769-b98c-4e98-a180-01adebcdebdd" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.423Z" level=info module="c2s" event="tls-established" connection="24552a55-72e1-4b54-bf1f-390dd1161cc1" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.423Z" level=info module="c2s" event="sasl-features" connection="24552a55-72e1-4b54-bf1f-390dd1161cc1" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.426Z" level=info module="c2s" event="sasl-attempt" connection="36f64e3b-4cac-492e-8aca-bce3a7b23ea4" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.426Z" level=info module="c2s" event="auth-identity" connection="36f64e3b-4cac-492e-8aca-bce3a7b23ea4" "user"="load-51" +timestamp="2026-10-20T10:29:49.426Z" level=info module="c2s" event="tls-established" connection="81f2904f-c02d-4327-b940-6a915079dfc5" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.426Z" level=info module="c2s" event="sasl-features" connection="81f2904f-c02d-4327-b940-6a915079dfc5" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.426Z" level=info module="c2s" event="sasl-attempt" connection="9a9ac9dd-d10a-4032-affb-6ba0de057ac2" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.426Z" level=info module="c2s" event="auth-identity" connection="9a9ac9dd-d10a-4032-affb-6ba0de057ac2" "user"="load-49" +timestamp="2026-10-20T10:29:49.426Z" level=info module="c2s" event="sasl-attempt" connection="30fc8aeb-fa92-4bc2-8d85-bd890bfc6b50" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.426Z" level=info module="c2s" event="auth-identity" connection="30fc8aeb-fa92-4bc2-8d85-bd890bfc6b50" "user"="load-52" +timestamp="2026-10-20T10:29:49.426Z" level=info module="c2s" event="sasl-attempt" connection="d254ebc4-da41-4627-bdcb-6d58cfff4ffd" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.426Z" level=info module="c2s" event="auth-identity" connection="d254ebc4-da41-4627-bdcb-6d58cfff4ffd" "user"="load-47" +timestamp="2026-10-20T10:29:49.426Z" level=info module="c2s" event="sasl-attempt" connection="d8e4f769-b98c-4e98-a180-01adebcdebdd" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.426Z" level=info module="c2s" event="auth-identity" connection="d8e4f769-b98c-4e98-a180-01adebcdebdd" "user"="load-50" +timestamp="2026-10-20T10:29:49.426Z" level=info module="c2s" event="sasl-attempt" connection="24552a55-72e1-4b54-bf1f-390dd1161cc1" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.426Z" level=info module="c2s" event="auth-identity" connection="24552a55-72e1-4b54-bf1f-390dd1161cc1" "user"="load-48" +timestamp="2026-10-20T10:29:49.426Z" level=info module="c2s" event="tls-established" connection="a087175b-b5c2-4456-8d6f-e21b7e9484c2" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.426Z" level=info module="c2s" event="sasl-features" connection="a087175b-b5c2-4456-8d6f-e21b7e9484c2" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.427Z" level=info module="c2s" event="tls-established" connection="2c6a8791-8098-42b0-b992-85d5edbc74f0" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.427Z" level=info module="c2s" event="sasl-features" connection="2c6a8791-8098-42b0-b992-85d5edbc74f0" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.427Z" level=info module="c2s" event="sasl-attempt" connection="a087175b-b5c2-4456-8d6f-e21b7e9484c2" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.427Z" level=info module="c2s" event="auth-identity" connection="a087175b-b5c2-4456-8d6f-e21b7e9484c2" "user"="load-58" +timestamp="2026-10-20T10:29:49.427Z" level=info module="c2s" event="sasl-attempt" connection="81f2904f-c02d-4327-b940-6a915079dfc5" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.427Z" level=info module="c2s" event="auth-identity" connection="81f2904f-c02d-4327-b940-6a915079dfc5" "user"="load-57" +timestamp="2026-10-20T10:29:49.427Z" level=info module="c2s" event="tls-established" connection="59c6d778-7ac4-4e8c-a3df-64032d7c1901" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.427Z" level=info module="c2s" event="sasl-features" connection="59c6d778-7ac4-4e8c-a3df-64032d7c1901" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.427Z" level=info module="c2s" event="tls-established" connection="f2baecc9-10b4-4475-bb6b-2a76715b56d7" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.427Z" level=info module="c2s" event="sasl-features" connection="f2baecc9-10b4-4475-bb6b-2a76715b56d7" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.427Z" level=info module="c2s" event="auth-success" connection="36f64e3b-4cac-492e-8aca-bce3a7b23ea4" "user"="load-51" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.428Z" level=info module="c2s" event="auth-success" connection="d254ebc4-da41-4627-bdcb-6d58cfff4ffd" "user"="load-47" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.428Z" level=info module="c2s" event="auth-success" connection="d8e4f769-b98c-4e98-a180-01adebcdebdd" "user"="load-50" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.428Z" level=info module="c2s" event="auth-success" connection="9a9ac9dd-d10a-4032-affb-6ba0de057ac2" "user"="load-49" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.428Z" level=info module="c2s" event="auth-success" connection="24552a55-72e1-4b54-bf1f-390dd1161cc1" "user"="load-48" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.428Z" level=info module="c2s" event="tls-established" connection="33d87622-9bd8-434f-a869-31763f88e8c1" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.428Z" level=info module="c2s" event="sasl-features" connection="33d87622-9bd8-434f-a869-31763f88e8c1" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.428Z" level=info module="c2s" event="auth-success" connection="30fc8aeb-fa92-4bc2-8d85-bd890bfc6b50" "user"="load-52" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.428Z" level=info module="c2s" event="tls-established" connection="3e097f8d-99d0-4368-ae8f-6d6268d75282" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.428Z" level=info module="c2s" event="sasl-features" connection="3e097f8d-99d0-4368-ae8f-6d6268d75282" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.428Z" level=info module="c2s" event="sasl-attempt" connection="2c6a8791-8098-42b0-b992-85d5edbc74f0" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.428Z" level=info module="c2s" event="auth-identity" connection="2c6a8791-8098-42b0-b992-85d5edbc74f0" "user"="load-56" +timestamp="2026-10-20T10:29:49.429Z" level=info module="c2s" event="auth-success" connection="81f2904f-c02d-4327-b940-6a915079dfc5" "user"="load-57" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.429Z" level=info module="c2s" event="auth-success" connection="a087175b-b5c2-4456-8d6f-e21b7e9484c2" "user"="load-58" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.430Z" level=info module="c2s" event="auth-success" connection="2c6a8791-8098-42b0-b992-85d5edbc74f0" "user"="load-56" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.432Z" level=info module="c2s" event="sasl-attempt" connection="59c6d778-7ac4-4e8c-a3df-64032d7c1901" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.432Z" level=info module="c2s" event="auth-identity" connection="59c6d778-7ac4-4e8c-a3df-64032d7c1901" "user"="load-53" +timestamp="2026-10-20T10:29:49.432Z" level=info module="c2s" event="sasl-attempt" connection="f2baecc9-10b4-4475-bb6b-2a76715b56d7" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.432Z" level=info module="c2s" event="auth-identity" connection="f2baecc9-10b4-4475-bb6b-2a76715b56d7" "user"="load-54" +timestamp="2026-10-20T10:29:49.432Z" level=info module="c2s" event="sasl-attempt" connection="33d87622-9bd8-434f-a869-31763f88e8c1" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.432Z" level=info module="c2s" event="auth-identity" connection="33d87622-9bd8-434f-a869-31763f88e8c1" "user"="load-55" +timestamp="2026-10-20T10:29:49.433Z" level=info module="c2s" event="sasl-attempt" connection="3e097f8d-99d0-4368-ae8f-6d6268d75282" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.433Z" level=info module="c2s" event="auth-identity" connection="3e097f8d-99d0-4368-ae8f-6d6268d75282" "user"="load-64" +timestamp="2026-10-20T10:29:49.433Z" level=info module="c2s" event="tls-established" connection="82138bd7-1430-48be-aaf7-6e5c9e346ee7" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.433Z" level=info module="c2s" event="sasl-features" connection="82138bd7-1430-48be-aaf7-6e5c9e346ee7" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.433Z" level=info module="c2s" event="tls-established" connection="418189e0-03f2-4573-8c95-9774604bc756" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.433Z" level=info module="c2s" event="sasl-features" connection="418189e0-03f2-4573-8c95-9774604bc756" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.433Z" level=info module="c2s" event="tls-established" connection="c6acf77c-3a21-4d5f-8c84-80b8abdfc28c" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.433Z" level=info module="c2s" event="sasl-features" connection="c6acf77c-3a21-4d5f-8c84-80b8abdfc28c" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.434Z" level=info module="c2s" event="auth-success" connection="59c6d778-7ac4-4e8c-a3df-64032d7c1901" "user"="load-53" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.434Z" level=info module="c2s" event="auth-success" connection="f2baecc9-10b4-4475-bb6b-2a76715b56d7" "user"="load-54" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.434Z" level=info module="c2s" event="tls-established" connection="7596d6d9-b736-4ea6-bbbd-1724b91275d4" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.434Z" level=info module="c2s" event="sasl-features" connection="7596d6d9-b736-4ea6-bbbd-1724b91275d4" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.434Z" level=info module="c2s" event="tls-established" connection="8c85f0d1-57ad-4d53-b57b-de33f4f40ad2" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.434Z" level=info module="c2s" event="sasl-features" connection="8c85f0d1-57ad-4d53-b57b-de33f4f40ad2" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.434Z" level=info module="c2s" event="auth-success" connection="33d87622-9bd8-434f-a869-31763f88e8c1" "user"="load-55" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.434Z" level=info module="c2s" event="resource-bound" connection="d8e4f769-b98c-4e98-a180-01adebcdebdd" "jid"="load-50@localhost/load-250" "mode"="legacy" +timestamp="2026-10-20T10:29:49.434Z" level=info module="c2s" event="resource-bound" connection="36f64e3b-4cac-492e-8aca-bce3a7b23ea4" "jid"="load-51@localhost/load-251" "mode"="legacy" +timestamp="2026-10-20T10:29:49.434Z" level=info module="c2s" event="sasl-attempt" connection="c6acf77c-3a21-4d5f-8c84-80b8abdfc28c" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.434Z" level=info module="c2s" event="auth-identity" connection="c6acf77c-3a21-4d5f-8c84-80b8abdfc28c" "user"="load-62" +timestamp="2026-10-20T10:29:49.435Z" level=info module="c2s" event="resource-bound" connection="d254ebc4-da41-4627-bdcb-6d58cfff4ffd" "jid"="load-47@localhost/load-247" "mode"="legacy" +timestamp="2026-10-20T10:29:49.435Z" level=info module="c2s" event="resource-bound" connection="9a9ac9dd-d10a-4032-affb-6ba0de057ac2" "jid"="load-49@localhost/load-249" "mode"="legacy" +timestamp="2026-10-20T10:29:49.435Z" level=info module="c2s" event="sasl-attempt" connection="82138bd7-1430-48be-aaf7-6e5c9e346ee7" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.435Z" level=info module="c2s" event="auth-identity" connection="82138bd7-1430-48be-aaf7-6e5c9e346ee7" "user"="load-59" +timestamp="2026-10-20T10:29:49.435Z" level=info module="c2s" event="sasl-attempt" connection="418189e0-03f2-4573-8c95-9774604bc756" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.435Z" level=info module="c2s" event="auth-identity" connection="418189e0-03f2-4573-8c95-9774604bc756" "user"="load-60" +timestamp="2026-10-20T10:29:49.435Z" level=info module="c2s" event="resource-bound" connection="24552a55-72e1-4b54-bf1f-390dd1161cc1" "jid"="load-48@localhost/load-248" "mode"="legacy" +timestamp="2026-10-20T10:29:49.435Z" level=info module="c2s" event="resource-bound" connection="30fc8aeb-fa92-4bc2-8d85-bd890bfc6b50" "jid"="load-52@localhost/load-252" "mode"="legacy" +timestamp="2026-10-20T10:29:49.435Z" level=info module="c2s" event="sasl-attempt" connection="7596d6d9-b736-4ea6-bbbd-1724b91275d4" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.435Z" level=info module="c2s" event="auth-identity" connection="7596d6d9-b736-4ea6-bbbd-1724b91275d4" "user"="load-61" +timestamp="2026-10-20T10:29:49.435Z" level=info module="c2s" event="sasl-attempt" connection="8c85f0d1-57ad-4d53-b57b-de33f4f40ad2" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.435Z" level=info module="c2s" event="auth-identity" connection="8c85f0d1-57ad-4d53-b57b-de33f4f40ad2" "user"="load-63" +timestamp="2026-10-20T10:29:49.435Z" level=info module="c2s" event="resource-bound" connection="a087175b-b5c2-4456-8d6f-e21b7e9484c2" "jid"="load-58@localhost/load-258" "mode"="legacy" +timestamp="2026-10-20T10:29:49.435Z" level=info module="c2s" event="resource-bound" connection="81f2904f-c02d-4327-b940-6a915079dfc5" "jid"="load-57@localhost/load-257" "mode"="legacy" +timestamp="2026-10-20T10:29:49.435Z" level=info module="c2s" event="auth-success" connection="3e097f8d-99d0-4368-ae8f-6d6268d75282" "user"="load-64" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.435Z" level=info module="c2s" event="resource-bound" connection="2c6a8791-8098-42b0-b992-85d5edbc74f0" "jid"="load-56@localhost/load-256" "mode"="legacy" +timestamp="2026-10-20T10:29:49.443Z" level=info module="c2s" event="auth-success" connection="c6acf77c-3a21-4d5f-8c84-80b8abdfc28c" "user"="load-62" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.444Z" level=info module="c2s" event="auth-success" connection="418189e0-03f2-4573-8c95-9774604bc756" "user"="load-60" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.444Z" level=info module="c2s" event="auth-success" connection="7596d6d9-b736-4ea6-bbbd-1724b91275d4" "user"="load-61" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.444Z" level=info module="c2s" event="auth-success" connection="8c85f0d1-57ad-4d53-b57b-de33f4f40ad2" "user"="load-63" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.444Z" level=info module="c2s" event="auth-success" connection="82138bd7-1430-48be-aaf7-6e5c9e346ee7" "user"="load-59" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.446Z" level=info module="c2s" event="resource-bound" connection="59c6d778-7ac4-4e8c-a3df-64032d7c1901" "jid"="load-53@localhost/load-253" "mode"="legacy" +timestamp="2026-10-20T10:29:49.494Z" level=info module="c2s" event="resource-bound" connection="418189e0-03f2-4573-8c95-9774604bc756" "jid"="load-60@localhost/load-260" "mode"="legacy" +timestamp="2026-10-20T10:29:49.494Z" level=info module="c2s" event="resource-bound" connection="f2baecc9-10b4-4475-bb6b-2a76715b56d7" "jid"="load-54@localhost/load-254" "mode"="legacy" +timestamp="2026-10-20T10:29:49.494Z" level=info module="c2s" event="connection-open" connection="c1568a80-8cd4-4eb9-8c45-5d3843d0629a" "transport"="tcp" "peer"="127.0.0.1:32962" "host"="localhost" +timestamp="2026-10-20T10:29:49.494Z" level=info module="c2s" event="connection-open" connection="d63b542f-7f3b-4561-80a0-e45682e9ddae" "transport"="tcp" "peer"="127.0.0.1:32932" "host"="localhost" +timestamp="2026-10-20T10:29:49.494Z" level=info module="c2s" event="connection-open" connection="9c41ba58-f521-4735-ac7d-2069820a89f1" "transport"="tcp" "peer"="127.0.0.1:32936" "host"="localhost" +timestamp="2026-10-20T10:29:49.494Z" level=info module="c2s" event="connection-open" connection="008ebe0c-8003-4550-84c7-912821a72ca9" "transport"="tcp" "peer"="127.0.0.1:32944" "host"="localhost" +timestamp="2026-10-20T10:29:49.494Z" level=info module="c2s" event="connection-open" connection="f972d949-6ff7-4f70-9cbd-4ac70c44e91c" "transport"="tcp" "peer"="127.0.0.1:32960" "host"="localhost" +timestamp="2026-10-20T10:29:49.495Z" level=info module="c2s" event="resource-bound" connection="33d87622-9bd8-434f-a869-31763f88e8c1" "jid"="load-55@localhost/load-255" "mode"="legacy" +timestamp="2026-10-20T10:29:49.506Z" level=info module="c2s" event="resource-bound" connection="3e097f8d-99d0-4368-ae8f-6d6268d75282" "jid"="load-64@localhost/load-264" "mode"="legacy" +timestamp="2026-10-20T10:29:49.507Z" level=info module="c2s" event="resource-bound" connection="7596d6d9-b736-4ea6-bbbd-1724b91275d4" "jid"="load-61@localhost/load-261" "mode"="legacy" +timestamp="2026-10-20T10:29:49.508Z" level=info module="c2s" event="resource-bound" connection="c6acf77c-3a21-4d5f-8c84-80b8abdfc28c" "jid"="load-62@localhost/load-262" "mode"="legacy" +timestamp="2026-10-20T10:29:49.508Z" level=info module="c2s" event="resource-bound" connection="8c85f0d1-57ad-4d53-b57b-de33f4f40ad2" "jid"="load-63@localhost/load-263" "mode"="legacy" +timestamp="2026-10-20T10:29:49.513Z" level=info module="c2s" event="resource-bound" connection="82138bd7-1430-48be-aaf7-6e5c9e346ee7" "jid"="load-59@localhost/load-259" "mode"="legacy" +timestamp="2026-10-20T10:29:49.538Z" level=info module="c2s" event="connection-open" connection="956896b7-2235-4fa1-935c-21cf5dc02ce1" "transport"="tcp" "peer"="127.0.0.1:33020" "host"="localhost" +timestamp="2026-10-20T10:29:49.542Z" level=info module="c2s" event="connection-open" connection="6881785c-7748-4e86-986e-54f266489f14" "transport"="tcp" "peer"="127.0.0.1:32986" "host"="localhost" +timestamp="2026-10-20T10:29:49.549Z" level=info module="c2s" event="connection-open" connection="55fd9984-15df-4908-ad2a-b260161f02a9" "transport"="tcp" "peer"="127.0.0.1:32972" "host"="localhost" +timestamp="2026-10-20T10:29:49.549Z" level=info module="c2s" event="connection-open" connection="a3520a73-bda3-4def-97d5-3d25ea403bb3" "transport"="tcp" "peer"="127.0.0.1:32994" "host"="localhost" +timestamp="2026-10-20T10:29:49.549Z" level=info module="c2s" event="connection-open" connection="9a4cc9c4-9950-4ec0-87ee-663305db343b" "transport"="tcp" "peer"="127.0.0.1:32990" "host"="localhost" +timestamp="2026-10-20T10:29:49.549Z" level=info module="c2s" event="connection-open" connection="5e4bb009-2c13-4c55-be5e-19a31e7b5ed4" "transport"="tcp" "peer"="127.0.0.1:33008" "host"="localhost" +timestamp="2026-10-20T10:29:49.556Z" level=info module="c2s" event="tls-established" connection="c1568a80-8cd4-4eb9-8c45-5d3843d0629a" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.556Z" level=info module="c2s" event="sasl-features" connection="c1568a80-8cd4-4eb9-8c45-5d3843d0629a" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.556Z" level=info module="c2s" event="tls-established" connection="9c41ba58-f521-4735-ac7d-2069820a89f1" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.556Z" level=info module="c2s" event="sasl-features" connection="9c41ba58-f521-4735-ac7d-2069820a89f1" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.582Z" level=info module="c2s" event="connection-open" connection="9b121a03-1916-4526-baac-6189f97c8898" "transport"="tcp" "peer"="127.0.0.1:33062" "host"="localhost" +timestamp="2026-10-20T10:29:49.582Z" level=info module="c2s" event="connection-open" connection="cb5ca1cc-52b2-4070-80f4-b22a7e00754d" "transport"="tcp" "peer"="127.0.0.1:33026" "host"="localhost" +timestamp="2026-10-20T10:29:49.582Z" level=info module="c2s" event="connection-open" connection="a9b02ea2-8288-4a96-b4bd-80247511461f" "transport"="tcp" "peer"="127.0.0.1:33038" "host"="localhost" +timestamp="2026-10-20T10:29:49.582Z" level=info module="c2s" event="connection-open" connection="a3f9a00b-560f-4093-a1c6-2868a559b26d" "transport"="tcp" "peer"="127.0.0.1:33052" "host"="localhost" +timestamp="2026-10-20T10:29:49.582Z" level=info module="c2s" event="sasl-attempt" connection="c1568a80-8cd4-4eb9-8c45-5d3843d0629a" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.582Z" level=info module="c2s" event="auth-identity" connection="c1568a80-8cd4-4eb9-8c45-5d3843d0629a" "user"="load-69" +timestamp="2026-10-20T10:29:49.582Z" level=info module="c2s" event="sasl-attempt" connection="9c41ba58-f521-4735-ac7d-2069820a89f1" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.582Z" level=info module="c2s" event="auth-identity" connection="9c41ba58-f521-4735-ac7d-2069820a89f1" "user"="load-66" +timestamp="2026-10-20T10:29:49.582Z" level=info module="c2s" event="tls-established" connection="d63b542f-7f3b-4561-80a0-e45682e9ddae" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.582Z" level=info module="c2s" event="sasl-features" connection="d63b542f-7f3b-4561-80a0-e45682e9ddae" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.584Z" level=info module="c2s" event="auth-success" connection="c1568a80-8cd4-4eb9-8c45-5d3843d0629a" "user"="load-69" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.584Z" level=info module="c2s" event="auth-success" connection="9c41ba58-f521-4735-ac7d-2069820a89f1" "user"="load-66" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.585Z" level=info module="c2s" event="tls-established" connection="008ebe0c-8003-4550-84c7-912821a72ca9" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.585Z" level=info module="c2s" event="sasl-features" connection="008ebe0c-8003-4550-84c7-912821a72ca9" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.585Z" level=info module="c2s" event="tls-established" connection="f972d949-6ff7-4f70-9cbd-4ac70c44e91c" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.585Z" level=info module="c2s" event="sasl-features" connection="f972d949-6ff7-4f70-9cbd-4ac70c44e91c" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.586Z" level=info module="c2s" event="sasl-attempt" connection="d63b542f-7f3b-4561-80a0-e45682e9ddae" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.586Z" level=info module="c2s" event="auth-identity" connection="d63b542f-7f3b-4561-80a0-e45682e9ddae" "user"="load-65" +timestamp="2026-10-20T10:29:49.587Z" level=info module="c2s" event="sasl-attempt" connection="f972d949-6ff7-4f70-9cbd-4ac70c44e91c" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.587Z" level=info module="c2s" event="auth-identity" connection="f972d949-6ff7-4f70-9cbd-4ac70c44e91c" "user"="load-68" +timestamp="2026-10-20T10:29:49.587Z" level=info module="c2s" event="auth-success" connection="d63b542f-7f3b-4561-80a0-e45682e9ddae" "user"="load-65" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.587Z" level=info module="c2s" event="tls-established" connection="6881785c-7748-4e86-986e-54f266489f14" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.587Z" level=info module="c2s" event="sasl-features" connection="6881785c-7748-4e86-986e-54f266489f14" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.587Z" level=info module="c2s" event="sasl-attempt" connection="008ebe0c-8003-4550-84c7-912821a72ca9" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.587Z" level=info module="c2s" event="auth-identity" connection="008ebe0c-8003-4550-84c7-912821a72ca9" "user"="load-67" +timestamp="2026-10-20T10:29:49.588Z" level=info module="c2s" event="resource-bound" connection="9c41ba58-f521-4735-ac7d-2069820a89f1" "jid"="load-66@localhost/load-266" "mode"="legacy" +timestamp="2026-10-20T10:29:49.588Z" level=info module="c2s" event="resource-bound" connection="c1568a80-8cd4-4eb9-8c45-5d3843d0629a" "jid"="load-69@localhost/load-269" "mode"="legacy" +timestamp="2026-10-20T10:29:49.589Z" level=info module="c2s" event="tls-established" connection="9a4cc9c4-9950-4ec0-87ee-663305db343b" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.589Z" level=info module="c2s" event="sasl-features" connection="9a4cc9c4-9950-4ec0-87ee-663305db343b" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.589Z" level=info module="c2s" event="auth-success" connection="008ebe0c-8003-4550-84c7-912821a72ca9" "user"="load-67" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.589Z" level=info module="c2s" event="auth-success" connection="f972d949-6ff7-4f70-9cbd-4ac70c44e91c" "user"="load-68" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.589Z" level=info module="c2s" event="tls-established" connection="956896b7-2235-4fa1-935c-21cf5dc02ce1" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.589Z" level=info module="c2s" event="sasl-features" connection="956896b7-2235-4fa1-935c-21cf5dc02ce1" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.591Z" level=info module="c2s" event="sasl-attempt" connection="6881785c-7748-4e86-986e-54f266489f14" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.591Z" level=info module="c2s" event="auth-identity" connection="6881785c-7748-4e86-986e-54f266489f14" "user"="load-71" +timestamp="2026-10-20T10:29:49.591Z" level=info module="c2s" event="sasl-attempt" connection="9a4cc9c4-9950-4ec0-87ee-663305db343b" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.591Z" level=info module="c2s" event="auth-identity" connection="9a4cc9c4-9950-4ec0-87ee-663305db343b" "user"="load-72" +timestamp="2026-10-20T10:29:49.592Z" level=info module="c2s" event="tls-established" connection="5e4bb009-2c13-4c55-be5e-19a31e7b5ed4" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.592Z" level=info module="c2s" event="sasl-features" connection="5e4bb009-2c13-4c55-be5e-19a31e7b5ed4" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.595Z" level=info module="c2s" event="auth-success" connection="6881785c-7748-4e86-986e-54f266489f14" "user"="load-71" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.595Z" level=info module="c2s" event="auth-success" connection="9a4cc9c4-9950-4ec0-87ee-663305db343b" "user"="load-72" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.595Z" level=info module="c2s" event="tls-established" connection="a3520a73-bda3-4def-97d5-3d25ea403bb3" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.595Z" level=info module="c2s" event="sasl-features" connection="a3520a73-bda3-4def-97d5-3d25ea403bb3" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.595Z" level=info module="c2s" event="tls-established" connection="55fd9984-15df-4908-ad2a-b260161f02a9" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.595Z" level=info module="c2s" event="sasl-features" connection="55fd9984-15df-4908-ad2a-b260161f02a9" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.595Z" level=info module="c2s" event="tls-established" connection="9b121a03-1916-4526-baac-6189f97c8898" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.595Z" level=info module="c2s" event="sasl-features" connection="9b121a03-1916-4526-baac-6189f97c8898" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.595Z" level=info module="c2s" event="connection-open" connection="72d939b8-4e5b-4cbf-b212-dccfcb0c690b" "transport"="tcp" "peer"="127.0.0.1:33092" "host"="localhost" +timestamp="2026-10-20T10:29:49.595Z" level=info module="c2s" event="sasl-attempt" connection="956896b7-2235-4fa1-935c-21cf5dc02ce1" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.595Z" level=info module="c2s" event="auth-identity" connection="956896b7-2235-4fa1-935c-21cf5dc02ce1" "user"="load-75" +timestamp="2026-10-20T10:29:49.595Z" level=info module="c2s" event="tls-established" connection="cb5ca1cc-52b2-4070-80f4-b22a7e00754d" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.595Z" level=info module="c2s" event="sasl-features" connection="cb5ca1cc-52b2-4070-80f4-b22a7e00754d" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.596Z" level=info module="c2s" event="resource-bound" connection="d63b542f-7f3b-4561-80a0-e45682e9ddae" "jid"="load-65@localhost/load-265" "mode"="legacy" +timestamp="2026-10-20T10:29:49.596Z" level=info module="c2s" event="connection-open" connection="016abe26-7cdf-4aea-8f44-b4c87c9dc92e" "transport"="tcp" "peer"="127.0.0.1:33084" "host"="localhost" +timestamp="2026-10-20T10:29:49.596Z" level=info module="c2s" event="connection-open" connection="0fea3b7e-7478-4ca4-ab85-f7bc20a1c707" "transport"="tcp" "peer"="127.0.0.1:33068" "host"="localhost" +timestamp="2026-10-20T10:29:49.596Z" level=info module="c2s" event="sasl-attempt" connection="cb5ca1cc-52b2-4070-80f4-b22a7e00754d" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.596Z" level=info module="c2s" event="auth-identity" connection="cb5ca1cc-52b2-4070-80f4-b22a7e00754d" "user"="load-76" +timestamp="2026-10-20T10:29:49.597Z" level=info module="c2s" event="resource-bound" connection="f972d949-6ff7-4f70-9cbd-4ac70c44e91c" "jid"="load-68@localhost/load-268" "mode"="legacy" +timestamp="2026-10-20T10:29:49.597Z" level=info module="c2s" event="resource-bound" connection="008ebe0c-8003-4550-84c7-912821a72ca9" "jid"="load-67@localhost/load-267" "mode"="legacy" +timestamp="2026-10-20T10:29:49.597Z" level=info module="c2s" event="auth-success" connection="956896b7-2235-4fa1-935c-21cf5dc02ce1" "user"="load-75" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.597Z" level=info module="c2s" event="sasl-attempt" connection="a3520a73-bda3-4def-97d5-3d25ea403bb3" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.597Z" level=info module="c2s" event="auth-identity" connection="a3520a73-bda3-4def-97d5-3d25ea403bb3" "user"="load-73" +timestamp="2026-10-20T10:29:49.597Z" level=info module="c2s" event="resource-bound" connection="6881785c-7748-4e86-986e-54f266489f14" "jid"="load-71@localhost/load-271" "mode"="legacy" +timestamp="2026-10-20T10:29:49.597Z" level=info module="c2s" event="sasl-attempt" connection="55fd9984-15df-4908-ad2a-b260161f02a9" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.597Z" level=info module="c2s" event="auth-identity" connection="55fd9984-15df-4908-ad2a-b260161f02a9" "user"="load-70" +timestamp="2026-10-20T10:29:49.597Z" level=info module="c2s" event="sasl-attempt" connection="9b121a03-1916-4526-baac-6189f97c8898" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.597Z" level=info module="c2s" event="auth-identity" connection="9b121a03-1916-4526-baac-6189f97c8898" "user"="load-79" +timestamp="2026-10-20T10:29:49.597Z" level=info module="c2s" event="tls-established" connection="a3f9a00b-560f-4093-a1c6-2868a559b26d" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.597Z" level=info module="c2s" event="sasl-features" connection="a3f9a00b-560f-4093-a1c6-2868a559b26d" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.597Z" level=info module="c2s" event="tls-established" connection="a9b02ea2-8288-4a96-b4bd-80247511461f" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.597Z" level=info module="c2s" event="sasl-features" connection="a9b02ea2-8288-4a96-b4bd-80247511461f" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.598Z" level=info module="c2s" event="sasl-attempt" connection="5e4bb009-2c13-4c55-be5e-19a31e7b5ed4" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.598Z" level=info module="c2s" event="auth-identity" connection="5e4bb009-2c13-4c55-be5e-19a31e7b5ed4" "user"="load-74" +timestamp="2026-10-20T10:29:49.601Z" level=info module="c2s" event="auth-success" connection="cb5ca1cc-52b2-4070-80f4-b22a7e00754d" "user"="load-76" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.601Z" level=info module="c2s" event="auth-success" connection="a3520a73-bda3-4def-97d5-3d25ea403bb3" "user"="load-73" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.601Z" level=info module="c2s" event="auth-success" connection="9b121a03-1916-4526-baac-6189f97c8898" "user"="load-79" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.601Z" level=info module="c2s" event="auth-success" connection="5e4bb009-2c13-4c55-be5e-19a31e7b5ed4" "user"="load-74" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.601Z" level=info module="c2s" event="auth-success" connection="55fd9984-15df-4908-ad2a-b260161f02a9" "user"="load-70" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.607Z" level=info module="c2s" event="resource-bound" connection="9a4cc9c4-9950-4ec0-87ee-663305db343b" "jid"="load-72@localhost/load-272" "mode"="legacy" +timestamp="2026-10-20T10:29:49.616Z" level=info module="c2s" event="resource-bound" connection="956896b7-2235-4fa1-935c-21cf5dc02ce1" "jid"="load-75@localhost/load-275" "mode"="legacy" +timestamp="2026-10-20T10:29:49.617Z" level=info module="c2s" event="sasl-attempt" connection="a3f9a00b-560f-4093-a1c6-2868a559b26d" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.617Z" level=info module="c2s" event="auth-identity" connection="a3f9a00b-560f-4093-a1c6-2868a559b26d" "user"="load-78" +timestamp="2026-10-20T10:29:49.617Z" level=info module="c2s" event="sasl-attempt" connection="a9b02ea2-8288-4a96-b4bd-80247511461f" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.617Z" level=info module="c2s" event="auth-identity" connection="a9b02ea2-8288-4a96-b4bd-80247511461f" "user"="load-77" +timestamp="2026-10-20T10:29:49.617Z" level=info module="c2s" event="connection-open" connection="2310455b-ea08-4e90-840e-bf30285513b7" "transport"="tcp" "peer"="127.0.0.1:33106" "host"="localhost" +timestamp="2026-10-20T10:29:49.619Z" level=info module="c2s" event="auth-success" connection="a3f9a00b-560f-4093-a1c6-2868a559b26d" "user"="load-78" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.619Z" level=info module="c2s" event="auth-success" connection="a9b02ea2-8288-4a96-b4bd-80247511461f" "user"="load-77" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.620Z" level=info module="c2s" event="tls-established" connection="72d939b8-4e5b-4cbf-b212-dccfcb0c690b" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.620Z" level=info module="c2s" event="sasl-features" connection="72d939b8-4e5b-4cbf-b212-dccfcb0c690b" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.625Z" level=info module="c2s" event="resource-bound" connection="cb5ca1cc-52b2-4070-80f4-b22a7e00754d" "jid"="load-76@localhost/load-276" "mode"="legacy" +timestamp="2026-10-20T10:29:49.626Z" level=info module="c2s" event="resource-bound" connection="5e4bb009-2c13-4c55-be5e-19a31e7b5ed4" "jid"="load-74@localhost/load-274" "mode"="legacy" +timestamp="2026-10-20T10:29:49.627Z" level=info module="c2s" event="resource-bound" connection="9b121a03-1916-4526-baac-6189f97c8898" "jid"="load-79@localhost/load-279" "mode"="legacy" +timestamp="2026-10-20T10:29:49.627Z" level=info module="c2s" event="resource-bound" connection="a3520a73-bda3-4def-97d5-3d25ea403bb3" "jid"="load-73@localhost/load-273" "mode"="legacy" +timestamp="2026-10-20T10:29:49.645Z" level=info module="c2s" event="resource-bound" connection="55fd9984-15df-4908-ad2a-b260161f02a9" "jid"="load-70@localhost/load-270" "mode"="legacy" +timestamp="2026-10-20T10:29:49.645Z" level=info module="c2s" event="sasl-attempt" connection="72d939b8-4e5b-4cbf-b212-dccfcb0c690b" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.645Z" level=info module="c2s" event="auth-identity" connection="72d939b8-4e5b-4cbf-b212-dccfcb0c690b" "user"="load-82" +timestamp="2026-10-20T10:29:49.645Z" level=info module="c2s" event="tls-established" connection="0fea3b7e-7478-4ca4-ab85-f7bc20a1c707" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.645Z" level=info module="c2s" event="sasl-features" connection="0fea3b7e-7478-4ca4-ab85-f7bc20a1c707" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.645Z" level=info module="c2s" event="tls-established" connection="016abe26-7cdf-4aea-8f44-b4c87c9dc92e" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.645Z" level=info module="c2s" event="sasl-features" connection="016abe26-7cdf-4aea-8f44-b4c87c9dc92e" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.645Z" level=info module="c2s" event="resource-bound" connection="a9b02ea2-8288-4a96-b4bd-80247511461f" "jid"="load-77@localhost/load-277" "mode"="legacy" +timestamp="2026-10-20T10:29:49.646Z" level=info module="c2s" event="connection-open" connection="195e8d88-bc99-4fdd-91ba-c9b8abba556b" "transport"="tcp" "peer"="127.0.0.1:33124" "host"="localhost" +timestamp="2026-10-20T10:29:49.647Z" level=info module="c2s" event="auth-success" connection="72d939b8-4e5b-4cbf-b212-dccfcb0c690b" "user"="load-82" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.647Z" level=info module="c2s" event="connection-open" connection="6730a577-3d60-423a-89d1-a4b6e84ecc9b" "transport"="tcp" "peer"="127.0.0.1:33112" "host"="localhost" +timestamp="2026-10-20T10:29:49.647Z" level=info module="c2s" event="connection-open" connection="ed071be4-cc93-4d33-862e-87779e3861e8" "transport"="tcp" "peer"="127.0.0.1:33108" "host"="localhost" +timestamp="2026-10-20T10:29:49.647Z" level=info module="c2s" event="connection-open" connection="f94e41d3-f86c-4d49-9a21-307d3a2f8762" "transport"="tcp" "peer"="127.0.0.1:33114" "host"="localhost" +timestamp="2026-10-20T10:29:49.670Z" level=info module="c2s" event="sasl-attempt" connection="0fea3b7e-7478-4ca4-ab85-f7bc20a1c707" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.670Z" level=info module="c2s" event="auth-identity" connection="0fea3b7e-7478-4ca4-ab85-f7bc20a1c707" "user"="load-80" +timestamp="2026-10-20T10:29:49.674Z" level=info module="c2s" event="auth-success" connection="0fea3b7e-7478-4ca4-ab85-f7bc20a1c707" "user"="load-80" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.674Z" level=info module="c2s" event="resource-bound" connection="a3f9a00b-560f-4093-a1c6-2868a559b26d" "jid"="load-78@localhost/load-278" "mode"="legacy" +timestamp="2026-10-20T10:29:49.676Z" level=info module="c2s" event="sasl-attempt" connection="016abe26-7cdf-4aea-8f44-b4c87c9dc92e" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.676Z" level=info module="c2s" event="auth-identity" connection="016abe26-7cdf-4aea-8f44-b4c87c9dc92e" "user"="load-81" +timestamp="2026-10-20T10:29:49.676Z" level=info module="c2s" event="connection-open" connection="c37770b3-660c-424e-a573-a1dc2a884b1a" "transport"="tcp" "peer"="127.0.0.1:33164" "host"="localhost" +timestamp="2026-10-20T10:29:49.676Z" level=info module="c2s" event="connection-open" connection="ca59d0db-b8af-4b47-bfde-b70f9d0e49fd" "transport"="tcp" "peer"="127.0.0.1:33138" "host"="localhost" +timestamp="2026-10-20T10:29:49.676Z" level=info module="c2s" event="connection-open" connection="564acda4-830c-4364-9b07-ebcb32b5d711" "transport"="tcp" "peer"="127.0.0.1:33148" "host"="localhost" +timestamp="2026-10-20T10:29:49.676Z" level=info module="c2s" event="connection-open" connection="be627c3f-6a73-4d96-8537-c480446b0f36" "transport"="tcp" "peer"="127.0.0.1:33152" "host"="localhost" +timestamp="2026-10-20T10:29:49.678Z" level=info module="c2s" event="auth-success" connection="016abe26-7cdf-4aea-8f44-b4c87c9dc92e" "user"="load-81" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.680Z" level=info module="c2s" event="resource-bound" connection="72d939b8-4e5b-4cbf-b212-dccfcb0c690b" "jid"="load-82@localhost/load-282" "mode"="legacy" +timestamp="2026-10-20T10:29:49.702Z" level=info module="c2s" event="tls-established" connection="2310455b-ea08-4e90-840e-bf30285513b7" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.702Z" level=info module="c2s" event="sasl-features" connection="2310455b-ea08-4e90-840e-bf30285513b7" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.707Z" level=info module="c2s" event="resource-bound" connection="016abe26-7cdf-4aea-8f44-b4c87c9dc92e" "jid"="load-81@localhost/load-281" "mode"="legacy" +timestamp="2026-10-20T10:29:49.715Z" level=info module="c2s" event="resource-bound" connection="0fea3b7e-7478-4ca4-ab85-f7bc20a1c707" "jid"="load-80@localhost/load-280" "mode"="legacy" +timestamp="2026-10-20T10:29:49.715Z" level=info module="c2s" event="sasl-attempt" connection="2310455b-ea08-4e90-840e-bf30285513b7" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.715Z" level=info module="c2s" event="auth-identity" connection="2310455b-ea08-4e90-840e-bf30285513b7" "user"="load-83" +timestamp="2026-10-20T10:29:49.725Z" level=info module="c2s" event="auth-success" connection="2310455b-ea08-4e90-840e-bf30285513b7" "user"="load-83" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.725Z" level=info module="c2s" event="connection-open" connection="51d0e854-e3a7-4924-b10b-1f1e8a8be7c7" "transport"="tcp" "peer"="127.0.0.1:33204" "host"="localhost" +timestamp="2026-10-20T10:29:49.725Z" level=info module="c2s" event="connection-open" connection="ed8273f1-1a11-419e-8353-5c4ce81e70c7" "transport"="tcp" "peer"="127.0.0.1:33178" "host"="localhost" +timestamp="2026-10-20T10:29:49.725Z" level=info module="c2s" event="connection-open" connection="7f2d586d-240c-4bba-bee3-bffcaddc9a0c" "transport"="tcp" "peer"="127.0.0.1:33190" "host"="localhost" +timestamp="2026-10-20T10:29:49.725Z" level=info module="c2s" event="connection-open" connection="0d7011e1-609e-407f-a5c9-d05b8884b7be" "transport"="tcp" "peer"="127.0.0.1:33194" "host"="localhost" +timestamp="2026-10-20T10:29:49.725Z" level=info module="c2s" event="connection-open" connection="febb2d4d-6b80-4465-b60b-c7be9e437eba" "transport"="tcp" "peer"="127.0.0.1:33200" "host"="localhost" +timestamp="2026-10-20T10:29:49.726Z" level=info module="c2s" event="tls-established" connection="ed071be4-cc93-4d33-862e-87779e3861e8" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.726Z" level=info module="c2s" event="sasl-features" connection="ed071be4-cc93-4d33-862e-87779e3861e8" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.739Z" level=info module="c2s" event="tls-established" connection="6730a577-3d60-423a-89d1-a4b6e84ecc9b" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.739Z" level=info module="c2s" event="sasl-features" connection="6730a577-3d60-423a-89d1-a4b6e84ecc9b" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.739Z" level=info module="c2s" event="tls-established" connection="f94e41d3-f86c-4d49-9a21-307d3a2f8762" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.739Z" level=info module="c2s" event="sasl-features" connection="f94e41d3-f86c-4d49-9a21-307d3a2f8762" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.739Z" level=info module="c2s" event="tls-established" connection="195e8d88-bc99-4fdd-91ba-c9b8abba556b" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.739Z" level=info module="c2s" event="sasl-features" connection="195e8d88-bc99-4fdd-91ba-c9b8abba556b" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.739Z" level=info module="c2s" event="sasl-attempt" connection="6730a577-3d60-423a-89d1-a4b6e84ecc9b" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.739Z" level=info module="c2s" event="auth-identity" connection="6730a577-3d60-423a-89d1-a4b6e84ecc9b" "user"="load-85" +timestamp="2026-10-20T10:29:49.740Z" level=info module="c2s" event="tls-established" connection="ca59d0db-b8af-4b47-bfde-b70f9d0e49fd" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.740Z" level=info module="c2s" event="sasl-features" connection="ca59d0db-b8af-4b47-bfde-b70f9d0e49fd" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.740Z" level=info module="c2s" event="sasl-attempt" connection="ed071be4-cc93-4d33-862e-87779e3861e8" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.740Z" level=info module="c2s" event="auth-identity" connection="ed071be4-cc93-4d33-862e-87779e3861e8" "user"="load-84" +timestamp="2026-10-20T10:29:49.740Z" level=info module="c2s" event="connection-open" connection="9313edbc-0f77-4c06-b462-ebf5403857a4" "transport"="tcp" "peer"="127.0.0.1:33224" "host"="localhost" +timestamp="2026-10-20T10:29:49.740Z" level=info module="c2s" event="tls-established" connection="be627c3f-6a73-4d96-8537-c480446b0f36" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.740Z" level=info module="c2s" event="sasl-features" connection="be627c3f-6a73-4d96-8537-c480446b0f36" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.740Z" level=info module="c2s" event="tls-established" connection="c37770b3-660c-424e-a573-a1dc2a884b1a" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.740Z" level=info module="c2s" event="sasl-features" connection="c37770b3-660c-424e-a573-a1dc2a884b1a" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.740Z" level=info module="c2s" event="connection-open" connection="fd39b607-fbd0-47a8-ba5b-6567788f2f64" "transport"="tcp" "peer"="127.0.0.1:33210" "host"="localhost" +timestamp="2026-10-20T10:29:49.740Z" level=info module="c2s" event="sasl-attempt" connection="f94e41d3-f86c-4d49-9a21-307d3a2f8762" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.740Z" level=info module="c2s" event="auth-identity" connection="f94e41d3-f86c-4d49-9a21-307d3a2f8762" "user"="load-86" +timestamp="2026-10-20T10:29:49.740Z" level=info module="c2s" event="sasl-attempt" connection="195e8d88-bc99-4fdd-91ba-c9b8abba556b" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.740Z" level=info module="c2s" event="auth-identity" connection="195e8d88-bc99-4fdd-91ba-c9b8abba556b" "user"="load-87" +timestamp="2026-10-20T10:29:49.740Z" level=info module="c2s" event="tls-established" connection="564acda4-830c-4364-9b07-ebcb32b5d711" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.740Z" level=info module="c2s" event="sasl-features" connection="564acda4-830c-4364-9b07-ebcb32b5d711" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.741Z" level=info module="c2s" event="resource-bound" connection="2310455b-ea08-4e90-840e-bf30285513b7" "jid"="load-83@localhost/load-283" "mode"="legacy" +timestamp="2026-10-20T10:29:49.741Z" level=info module="c2s" event="sasl-attempt" connection="be627c3f-6a73-4d96-8537-c480446b0f36" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.741Z" level=info module="c2s" event="auth-identity" connection="be627c3f-6a73-4d96-8537-c480446b0f36" "user"="load-90" +timestamp="2026-10-20T10:29:49.741Z" level=info module="c2s" event="sasl-attempt" connection="ca59d0db-b8af-4b47-bfde-b70f9d0e49fd" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.741Z" level=info module="c2s" event="auth-identity" connection="ca59d0db-b8af-4b47-bfde-b70f9d0e49fd" "user"="load-88" +timestamp="2026-10-20T10:29:49.741Z" level=info module="c2s" event="sasl-attempt" connection="c37770b3-660c-424e-a573-a1dc2a884b1a" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.741Z" level=info module="c2s" event="auth-identity" connection="c37770b3-660c-424e-a573-a1dc2a884b1a" "user"="load-91" +timestamp="2026-10-20T10:29:49.741Z" level=info module="c2s" event="auth-success" connection="ed071be4-cc93-4d33-862e-87779e3861e8" "user"="load-84" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.741Z" level=info module="c2s" event="auth-success" connection="6730a577-3d60-423a-89d1-a4b6e84ecc9b" "user"="load-85" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.741Z" level=info module="c2s" event="auth-success" connection="f94e41d3-f86c-4d49-9a21-307d3a2f8762" "user"="load-86" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.742Z" level=info module="c2s" event="auth-success" connection="195e8d88-bc99-4fdd-91ba-c9b8abba556b" "user"="load-87" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.742Z" level=info module="c2s" event="auth-success" connection="ca59d0db-b8af-4b47-bfde-b70f9d0e49fd" "user"="load-88" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.742Z" level=info module="c2s" event="auth-success" connection="be627c3f-6a73-4d96-8537-c480446b0f36" "user"="load-90" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.743Z" level=info module="c2s" event="auth-success" connection="c37770b3-660c-424e-a573-a1dc2a884b1a" "user"="load-91" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.743Z" level=info module="c2s" event="sasl-attempt" connection="564acda4-830c-4364-9b07-ebcb32b5d711" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.743Z" level=info module="c2s" event="auth-identity" connection="564acda4-830c-4364-9b07-ebcb32b5d711" "user"="load-89" +timestamp="2026-10-20T10:29:49.745Z" level=info module="c2s" event="auth-success" connection="564acda4-830c-4364-9b07-ebcb32b5d711" "user"="load-89" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.748Z" level=info module="c2s" event="tls-established" connection="febb2d4d-6b80-4465-b60b-c7be9e437eba" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.748Z" level=info module="c2s" event="sasl-features" connection="febb2d4d-6b80-4465-b60b-c7be9e437eba" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.748Z" level=info module="c2s" event="tls-established" connection="7f2d586d-240c-4bba-bee3-bffcaddc9a0c" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.748Z" level=info module="c2s" event="sasl-features" connection="7f2d586d-240c-4bba-bee3-bffcaddc9a0c" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.748Z" level=info module="c2s" event="tls-established" connection="0d7011e1-609e-407f-a5c9-d05b8884b7be" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.748Z" level=info module="c2s" event="sasl-features" connection="0d7011e1-609e-407f-a5c9-d05b8884b7be" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.750Z" level=info module="c2s" event="tls-established" connection="ed8273f1-1a11-419e-8353-5c4ce81e70c7" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.750Z" level=info module="c2s" event="sasl-features" connection="ed8273f1-1a11-419e-8353-5c4ce81e70c7" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.750Z" level=info module="c2s" event="tls-established" connection="51d0e854-e3a7-4924-b10b-1f1e8a8be7c7" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.750Z" level=info module="c2s" event="sasl-features" connection="51d0e854-e3a7-4924-b10b-1f1e8a8be7c7" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.750Z" level=info module="c2s" event="sasl-attempt" connection="7f2d586d-240c-4bba-bee3-bffcaddc9a0c" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.750Z" level=info module="c2s" event="auth-identity" connection="7f2d586d-240c-4bba-bee3-bffcaddc9a0c" "user"="load-93" +timestamp="2026-10-20T10:29:49.750Z" level=info module="c2s" event="sasl-attempt" connection="febb2d4d-6b80-4465-b60b-c7be9e437eba" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.750Z" level=info module="c2s" event="auth-identity" connection="febb2d4d-6b80-4465-b60b-c7be9e437eba" "user"="load-95" +timestamp="2026-10-20T10:29:49.750Z" level=info module="c2s" event="resource-bound" connection="f94e41d3-f86c-4d49-9a21-307d3a2f8762" "jid"="load-86@localhost/load-286" "mode"="legacy" +timestamp="2026-10-20T10:29:49.751Z" level=info module="c2s" event="resource-bound" connection="6730a577-3d60-423a-89d1-a4b6e84ecc9b" "jid"="load-85@localhost/load-285" "mode"="legacy" +timestamp="2026-10-20T10:29:49.751Z" level=info module="c2s" event="resource-bound" connection="ed071be4-cc93-4d33-862e-87779e3861e8" "jid"="load-84@localhost/load-284" "mode"="legacy" +timestamp="2026-10-20T10:29:49.751Z" level=info module="c2s" event="resource-bound" connection="195e8d88-bc99-4fdd-91ba-c9b8abba556b" "jid"="load-87@localhost/load-287" "mode"="legacy" +timestamp="2026-10-20T10:29:49.751Z" level=info module="c2s" event="tls-established" connection="9313edbc-0f77-4c06-b462-ebf5403857a4" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.751Z" level=info module="c2s" event="sasl-features" connection="9313edbc-0f77-4c06-b462-ebf5403857a4" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.751Z" level=info module="c2s" event="tls-established" connection="fd39b607-fbd0-47a8-ba5b-6567788f2f64" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.751Z" level=info module="c2s" event="sasl-features" connection="fd39b607-fbd0-47a8-ba5b-6567788f2f64" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.751Z" level=info module="c2s" event="sasl-attempt" connection="ed8273f1-1a11-419e-8353-5c4ce81e70c7" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.751Z" level=info module="c2s" event="auth-identity" connection="ed8273f1-1a11-419e-8353-5c4ce81e70c7" "user"="load-92" +timestamp="2026-10-20T10:29:49.751Z" level=info module="c2s" event="sasl-attempt" connection="51d0e854-e3a7-4924-b10b-1f1e8a8be7c7" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.751Z" level=info module="c2s" event="auth-identity" connection="51d0e854-e3a7-4924-b10b-1f1e8a8be7c7" "user"="load-96" +timestamp="2026-10-20T10:29:49.751Z" level=info module="c2s" event="sasl-attempt" connection="0d7011e1-609e-407f-a5c9-d05b8884b7be" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.751Z" level=info module="c2s" event="auth-identity" connection="0d7011e1-609e-407f-a5c9-d05b8884b7be" "user"="load-94" +timestamp="2026-10-20T10:29:49.751Z" level=info module="c2s" event="resource-bound" connection="ca59d0db-b8af-4b47-bfde-b70f9d0e49fd" "jid"="load-88@localhost/load-288" "mode"="legacy" +timestamp="2026-10-20T10:29:49.752Z" level=info module="c2s" event="resource-bound" connection="be627c3f-6a73-4d96-8537-c480446b0f36" "jid"="load-90@localhost/load-290" "mode"="legacy" +timestamp="2026-10-20T10:29:49.752Z" level=info module="c2s" event="sasl-attempt" connection="9313edbc-0f77-4c06-b462-ebf5403857a4" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.752Z" level=info module="c2s" event="auth-identity" connection="9313edbc-0f77-4c06-b462-ebf5403857a4" "user"="load-98" +timestamp="2026-10-20T10:29:49.752Z" level=info module="c2s" event="auth-success" connection="7f2d586d-240c-4bba-bee3-bffcaddc9a0c" "user"="load-93" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.752Z" level=info module="c2s" event="resource-bound" connection="c37770b3-660c-424e-a573-a1dc2a884b1a" "jid"="load-91@localhost/load-291" "mode"="legacy" +timestamp="2026-10-20T10:29:49.752Z" level=info module="c2s" event="sasl-attempt" connection="fd39b607-fbd0-47a8-ba5b-6567788f2f64" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.752Z" level=info module="c2s" event="auth-identity" connection="fd39b607-fbd0-47a8-ba5b-6567788f2f64" "user"="load-97" +timestamp="2026-10-20T10:29:49.752Z" level=info module="c2s" event="resource-bound" connection="564acda4-830c-4364-9b07-ebcb32b5d711" "jid"="load-89@localhost/load-289" "mode"="legacy" +timestamp="2026-10-20T10:29:49.752Z" level=info module="c2s" event="auth-success" connection="febb2d4d-6b80-4465-b60b-c7be9e437eba" "user"="load-95" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.764Z" level=info module="c2s" event="auth-success" connection="ed8273f1-1a11-419e-8353-5c4ce81e70c7" "user"="load-92" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.764Z" level=info module="c2s" event="auth-success" connection="51d0e854-e3a7-4924-b10b-1f1e8a8be7c7" "user"="load-96" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.764Z" level=info module="c2s" event="auth-success" connection="0d7011e1-609e-407f-a5c9-d05b8884b7be" "user"="load-94" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.764Z" level=info module="c2s" event="auth-success" connection="fd39b607-fbd0-47a8-ba5b-6567788f2f64" "user"="load-97" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.764Z" level=info module="c2s" event="auth-success" connection="9313edbc-0f77-4c06-b462-ebf5403857a4" "user"="load-98" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.778Z" level=info module="c2s" event="connection-open" connection="83712a2a-ed7d-4174-89c0-84395ef5dee4" "transport"="tcp" "peer"="127.0.0.1:33240" "host"="localhost" +timestamp="2026-10-20T10:29:49.784Z" level=info module="c2s" event="connection-open" connection="3e5954fb-6496-48f6-8dfe-da79e9e902bd" "transport"="tcp" "peer"="127.0.0.1:33228" "host"="localhost" +timestamp="2026-10-20T10:29:49.793Z" level=info module="c2s" event="connection-open" connection="80f04059-ecaf-443a-8199-4f0dc35e7476" "transport"="tcp" "peer"="127.0.0.1:33244" "host"="localhost" +timestamp="2026-10-20T10:29:49.797Z" level=info module="c2s" event="resource-bound" connection="51d0e854-e3a7-4924-b10b-1f1e8a8be7c7" "jid"="load-96@localhost/load-296" "mode"="legacy" +timestamp="2026-10-20T10:29:49.810Z" level=info module="c2s" event="resource-bound" connection="9313edbc-0f77-4c06-b462-ebf5403857a4" "jid"="load-98@localhost/load-298" "mode"="legacy" +timestamp="2026-10-20T10:29:49.810Z" level=info module="c2s" event="resource-bound" connection="0d7011e1-609e-407f-a5c9-d05b8884b7be" "jid"="load-94@localhost/load-294" "mode"="legacy" +timestamp="2026-10-20T10:29:49.810Z" level=info module="c2s" event="resource-bound" connection="fd39b607-fbd0-47a8-ba5b-6567788f2f64" "jid"="load-97@localhost/load-297" "mode"="legacy" +timestamp="2026-10-20T10:29:49.812Z" level=info module="c2s" event="resource-bound" connection="febb2d4d-6b80-4465-b60b-c7be9e437eba" "jid"="load-95@localhost/load-295" "mode"="legacy" +timestamp="2026-10-20T10:29:49.813Z" level=info module="c2s" event="resource-bound" connection="7f2d586d-240c-4bba-bee3-bffcaddc9a0c" "jid"="load-93@localhost/load-293" "mode"="legacy" +timestamp="2026-10-20T10:29:49.838Z" level=info module="c2s" event="resource-bound" connection="ed8273f1-1a11-419e-8353-5c4ce81e70c7" "jid"="load-92@localhost/load-292" "mode"="legacy" +timestamp="2026-10-20T10:29:49.842Z" level=info module="c2s" event="connection-open" connection="360d0c0c-db88-4937-91a3-7cf79b7e59a5" "transport"="tcp" "peer"="127.0.0.1:33304" "host"="localhost" +timestamp="2026-10-20T10:29:49.842Z" level=info module="c2s" event="connection-open" connection="a053c940-df8e-4cbb-afc5-e2de312482ae" "transport"="tcp" "peer"="127.0.0.1:33248" "host"="localhost" +timestamp="2026-10-20T10:29:49.842Z" level=info module="c2s" event="connection-open" connection="23cb0bb3-21c9-4491-9e34-4d09db2d43c4" "transport"="tcp" "peer"="127.0.0.1:33256" "host"="localhost" +timestamp="2026-10-20T10:29:49.842Z" level=info module="c2s" event="connection-open" connection="1c804969-3f57-408e-b095-f12ae0db1eea" "transport"="tcp" "peer"="127.0.0.1:33270" "host"="localhost" +timestamp="2026-10-20T10:29:49.842Z" level=info module="c2s" event="connection-open" connection="076ad576-5cf1-4ca0-8dfc-d38c26c2c971" "transport"="tcp" "peer"="127.0.0.1:33276" "host"="localhost" +timestamp="2026-10-20T10:29:49.842Z" level=info module="c2s" event="connection-open" connection="a2112f8d-3ee1-479f-96b7-51570fd45ce0" "transport"="tcp" "peer"="127.0.0.1:33290" "host"="localhost" +timestamp="2026-10-20T10:29:49.842Z" level=info module="c2s" event="connection-open" connection="3a6cbf7d-6620-4bf8-927f-7f98ad42ddf8" "transport"="tcp" "peer"="127.0.0.1:33294" "host"="localhost" +timestamp="2026-10-20T10:29:49.871Z" level=info module="c2s" event="connection-open" connection="611ca5a4-b62a-4a67-8bff-0fac1d870b8b" "transport"="tcp" "peer"="127.0.0.1:33334" "host"="localhost" +timestamp="2026-10-20T10:29:49.883Z" level=info module="c2s" event="connection-open" connection="0da7d9d7-1b98-48cd-a113-ebab1bbdf949" "transport"="tcp" "peer"="127.0.0.1:33310" "host"="localhost" +timestamp="2026-10-20T10:29:49.888Z" level=info module="c2s" event="connection-open" connection="b1a35898-c584-4cc0-ba0e-404c3ed7db9f" "transport"="tcp" "peer"="127.0.0.1:33324" "host"="localhost" +timestamp="2026-10-20T10:29:49.888Z" level=info module="c2s" event="connection-open" connection="fb5de78b-7a6f-4e97-882f-e8d5f398cf36" "transport"="tcp" "peer"="127.0.0.1:33338" "host"="localhost" +timestamp="2026-10-20T10:29:49.888Z" level=info module="c2s" event="tls-established" connection="83712a2a-ed7d-4174-89c0-84395ef5dee4" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.888Z" level=info module="c2s" event="sasl-features" connection="83712a2a-ed7d-4174-89c0-84395ef5dee4" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.888Z" level=info module="c2s" event="tls-established" connection="3e5954fb-6496-48f6-8dfe-da79e9e902bd" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.888Z" level=info module="c2s" event="sasl-features" connection="3e5954fb-6496-48f6-8dfe-da79e9e902bd" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.897Z" level=info module="c2s" event="sasl-attempt" connection="83712a2a-ed7d-4174-89c0-84395ef5dee4" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.897Z" level=info module="c2s" event="auth-identity" connection="83712a2a-ed7d-4174-89c0-84395ef5dee4" "user"="load-0" +timestamp="2026-10-20T10:29:49.897Z" level=info module="c2s" event="sasl-attempt" connection="3e5954fb-6496-48f6-8dfe-da79e9e902bd" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.897Z" level=info module="c2s" event="auth-identity" connection="3e5954fb-6496-48f6-8dfe-da79e9e902bd" "user"="load-99" +timestamp="2026-10-20T10:29:49.901Z" level=info module="c2s" event="auth-success" connection="3e5954fb-6496-48f6-8dfe-da79e9e902bd" "user"="load-99" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.901Z" level=info module="c2s" event="auth-success" connection="83712a2a-ed7d-4174-89c0-84395ef5dee4" "user"="load-0" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.901Z" level=info module="c2s" event="connection-open" connection="7c117aba-4d05-48f4-a9d6-391fe381937c" "transport"="tcp" "peer"="127.0.0.1:33346" "host"="localhost" +timestamp="2026-10-20T10:29:49.901Z" level=info module="c2s" event="tls-established" connection="80f04059-ecaf-443a-8199-4f0dc35e7476" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.901Z" level=info module="c2s" event="sasl-features" connection="80f04059-ecaf-443a-8199-4f0dc35e7476" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.901Z" level=info module="c2s" event="tls-established" connection="1c804969-3f57-408e-b095-f12ae0db1eea" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.902Z" level=info module="c2s" event="sasl-features" connection="1c804969-3f57-408e-b095-f12ae0db1eea" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.904Z" level=info module="c2s" event="tls-established" connection="3a6cbf7d-6620-4bf8-927f-7f98ad42ddf8" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.905Z" level=info module="c2s" event="sasl-features" connection="3a6cbf7d-6620-4bf8-927f-7f98ad42ddf8" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.905Z" level=info module="c2s" event="tls-established" connection="a053c940-df8e-4cbb-afc5-e2de312482ae" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.905Z" level=info module="c2s" event="sasl-features" connection="a053c940-df8e-4cbb-afc5-e2de312482ae" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.905Z" level=info module="c2s" event="tls-established" connection="076ad576-5cf1-4ca0-8dfc-d38c26c2c971" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.905Z" level=info module="c2s" event="sasl-features" connection="076ad576-5cf1-4ca0-8dfc-d38c26c2c971" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.905Z" level=info module="c2s" event="tls-established" connection="23cb0bb3-21c9-4491-9e34-4d09db2d43c4" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.905Z" level=info module="c2s" event="sasl-features" connection="23cb0bb3-21c9-4491-9e34-4d09db2d43c4" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.905Z" level=info module="c2s" event="tls-established" connection="a2112f8d-3ee1-479f-96b7-51570fd45ce0" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.905Z" level=info module="c2s" event="sasl-features" connection="a2112f8d-3ee1-479f-96b7-51570fd45ce0" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.906Z" level=info module="c2s" event="tls-established" connection="360d0c0c-db88-4937-91a3-7cf79b7e59a5" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.906Z" level=info module="c2s" event="sasl-features" connection="360d0c0c-db88-4937-91a3-7cf79b7e59a5" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.906Z" level=info module="c2s" event="tls-established" connection="0da7d9d7-1b98-48cd-a113-ebab1bbdf949" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.906Z" level=info module="c2s" event="sasl-features" connection="0da7d9d7-1b98-48cd-a113-ebab1bbdf949" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.906Z" level=info module="c2s" event="sasl-attempt" connection="80f04059-ecaf-443a-8199-4f0dc35e7476" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.906Z" level=info module="c2s" event="auth-identity" connection="80f04059-ecaf-443a-8199-4f0dc35e7476" "user"="load-1" +timestamp="2026-10-20T10:29:49.906Z" level=info module="c2s" event="sasl-attempt" connection="1c804969-3f57-408e-b095-f12ae0db1eea" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.906Z" level=info module="c2s" event="auth-identity" connection="1c804969-3f57-408e-b095-f12ae0db1eea" "user"="load-4" +timestamp="2026-10-20T10:29:49.907Z" level=info module="c2s" event="sasl-attempt" connection="360d0c0c-db88-4937-91a3-7cf79b7e59a5" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.907Z" level=info module="c2s" event="auth-identity" connection="360d0c0c-db88-4937-91a3-7cf79b7e59a5" "user"="load-8" +timestamp="2026-10-20T10:29:49.907Z" level=info module="c2s" event="sasl-attempt" connection="23cb0bb3-21c9-4491-9e34-4d09db2d43c4" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.907Z" level=info module="c2s" event="auth-identity" connection="23cb0bb3-21c9-4491-9e34-4d09db2d43c4" "user"="load-3" +timestamp="2026-10-20T10:29:49.907Z" level=info module="c2s" event="sasl-attempt" connection="3a6cbf7d-6620-4bf8-927f-7f98ad42ddf8" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.907Z" level=info module="c2s" event="auth-identity" connection="3a6cbf7d-6620-4bf8-927f-7f98ad42ddf8" "user"="load-7" +timestamp="2026-10-20T10:29:49.907Z" level=info module="c2s" event="sasl-attempt" connection="a2112f8d-3ee1-479f-96b7-51570fd45ce0" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.907Z" level=info module="c2s" event="auth-identity" connection="a2112f8d-3ee1-479f-96b7-51570fd45ce0" "user"="load-6" +timestamp="2026-10-20T10:29:49.907Z" level=info module="c2s" event="sasl-attempt" connection="a053c940-df8e-4cbb-afc5-e2de312482ae" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.908Z" level=info module="c2s" event="auth-identity" connection="a053c940-df8e-4cbb-afc5-e2de312482ae" "user"="load-2" +timestamp="2026-10-20T10:29:49.908Z" level=info module="c2s" event="sasl-attempt" connection="076ad576-5cf1-4ca0-8dfc-d38c26c2c971" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.908Z" level=info module="c2s" event="auth-identity" connection="076ad576-5cf1-4ca0-8dfc-d38c26c2c971" "user"="load-5" +timestamp="2026-10-20T10:29:49.908Z" level=info module="c2s" event="auth-success" connection="80f04059-ecaf-443a-8199-4f0dc35e7476" "user"="load-1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.908Z" level=info module="c2s" event="auth-success" connection="1c804969-3f57-408e-b095-f12ae0db1eea" "user"="load-4" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.909Z" level=info module="c2s" event="auth-success" connection="360d0c0c-db88-4937-91a3-7cf79b7e59a5" "user"="load-8" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.909Z" level=info module="c2s" event="auth-success" connection="3a6cbf7d-6620-4bf8-927f-7f98ad42ddf8" "user"="load-7" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.909Z" level=info module="c2s" event="auth-success" connection="a2112f8d-3ee1-479f-96b7-51570fd45ce0" "user"="load-6" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.909Z" level=info module="c2s" event="auth-success" connection="a053c940-df8e-4cbb-afc5-e2de312482ae" "user"="load-2" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.910Z" level=info module="c2s" event="auth-success" connection="076ad576-5cf1-4ca0-8dfc-d38c26c2c971" "user"="load-5" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.912Z" level=info module="c2s" event="auth-success" connection="23cb0bb3-21c9-4491-9e34-4d09db2d43c4" "user"="load-3" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.912Z" level=info module="c2s" event="sasl-attempt" connection="0da7d9d7-1b98-48cd-a113-ebab1bbdf949" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.912Z" level=info module="c2s" event="auth-identity" connection="0da7d9d7-1b98-48cd-a113-ebab1bbdf949" "user"="load-9" +timestamp="2026-10-20T10:29:49.913Z" level=info module="c2s" event="resource-bound" connection="83712a2a-ed7d-4174-89c0-84395ef5dee4" "jid"="load-0@localhost/load-300" "mode"="legacy" +timestamp="2026-10-20T10:29:49.913Z" level=info module="c2s" event="resource-bound" connection="3e5954fb-6496-48f6-8dfe-da79e9e902bd" "jid"="load-99@localhost/load-299" "mode"="legacy" +timestamp="2026-10-20T10:29:49.913Z" level=info module="c2s" event="tls-established" connection="b1a35898-c584-4cc0-ba0e-404c3ed7db9f" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.913Z" level=info module="c2s" event="sasl-features" connection="b1a35898-c584-4cc0-ba0e-404c3ed7db9f" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.913Z" level=info module="c2s" event="tls-established" connection="611ca5a4-b62a-4a67-8bff-0fac1d870b8b" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.913Z" level=info module="c2s" event="sasl-features" connection="611ca5a4-b62a-4a67-8bff-0fac1d870b8b" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.913Z" level=info module="c2s" event="tls-established" connection="fb5de78b-7a6f-4e97-882f-e8d5f398cf36" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.913Z" level=info module="c2s" event="sasl-features" connection="fb5de78b-7a6f-4e97-882f-e8d5f398cf36" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.913Z" level=info module="c2s" event="connection-open" connection="aa0b0005-afe3-4840-904c-7069dd536975" "transport"="tcp" "peer"="127.0.0.1:33358" "host"="localhost" +timestamp="2026-10-20T10:29:49.914Z" level=info module="c2s" event="tls-established" connection="7c117aba-4d05-48f4-a9d6-391fe381937c" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.914Z" level=info module="c2s" event="sasl-features" connection="7c117aba-4d05-48f4-a9d6-391fe381937c" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.914Z" level=info module="c2s" event="auth-success" connection="0da7d9d7-1b98-48cd-a113-ebab1bbdf949" "user"="load-9" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.914Z" level=info module="c2s" event="resource-bound" connection="076ad576-5cf1-4ca0-8dfc-d38c26c2c971" "jid"="load-5@localhost/load-305" "mode"="legacy" +timestamp="2026-10-20T10:29:49.916Z" level=info module="c2s" event="connection-open" connection="411f87d3-0102-4ff6-8764-fb5500278d13" "transport"="tcp" "peer"="127.0.0.1:33370" "host"="localhost" +timestamp="2026-10-20T10:29:49.921Z" level=info module="c2s" event="connection-open" connection="ce274f8c-c0b6-467e-8148-923849fd6d58" "transport"="tcp" "peer"="127.0.0.1:33374" "host"="localhost" +timestamp="2026-10-20T10:29:49.921Z" level=info module="c2s" event="resource-bound" connection="3a6cbf7d-6620-4bf8-927f-7f98ad42ddf8" "jid"="load-7@localhost/load-307" "mode"="legacy" +timestamp="2026-10-20T10:29:49.921Z" level=info module="c2s" event="sasl-attempt" connection="b1a35898-c584-4cc0-ba0e-404c3ed7db9f" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.921Z" level=info module="c2s" event="auth-identity" connection="b1a35898-c584-4cc0-ba0e-404c3ed7db9f" "user"="load-10" +timestamp="2026-10-20T10:29:49.921Z" level=info module="c2s" event="sasl-attempt" connection="611ca5a4-b62a-4a67-8bff-0fac1d870b8b" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.921Z" level=info module="c2s" event="auth-identity" connection="611ca5a4-b62a-4a67-8bff-0fac1d870b8b" "user"="load-11" +timestamp="2026-10-20T10:29:49.921Z" level=info module="c2s" event="sasl-attempt" connection="fb5de78b-7a6f-4e97-882f-e8d5f398cf36" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.921Z" level=info module="c2s" event="auth-identity" connection="fb5de78b-7a6f-4e97-882f-e8d5f398cf36" "user"="load-12" +timestamp="2026-10-20T10:29:49.921Z" level=info module="c2s" event="resource-bound" connection="80f04059-ecaf-443a-8199-4f0dc35e7476" "jid"="load-1@localhost/load-301" "mode"="legacy" +timestamp="2026-10-20T10:29:49.921Z" level=info module="c2s" event="resource-bound" connection="1c804969-3f57-408e-b095-f12ae0db1eea" "jid"="load-4@localhost/load-304" "mode"="legacy" +timestamp="2026-10-20T10:29:49.922Z" level=info module="c2s" event="resource-bound" connection="360d0c0c-db88-4937-91a3-7cf79b7e59a5" "jid"="load-8@localhost/load-308" "mode"="legacy" +timestamp="2026-10-20T10:29:49.922Z" level=info module="c2s" event="resource-bound" connection="23cb0bb3-21c9-4491-9e34-4d09db2d43c4" "jid"="load-3@localhost/load-303" "mode"="legacy" +timestamp="2026-10-20T10:29:49.922Z" level=info module="c2s" event="resource-bound" connection="a2112f8d-3ee1-479f-96b7-51570fd45ce0" "jid"="load-6@localhost/load-306" "mode"="legacy" +timestamp="2026-10-20T10:29:49.922Z" level=info module="c2s" event="resource-bound" connection="a053c940-df8e-4cbb-afc5-e2de312482ae" "jid"="load-2@localhost/load-302" "mode"="legacy" +timestamp="2026-10-20T10:29:49.929Z" level=info module="c2s" event="auth-success" connection="b1a35898-c584-4cc0-ba0e-404c3ed7db9f" "user"="load-10" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.935Z" level=info module="c2s" event="auth-success" connection="fb5de78b-7a6f-4e97-882f-e8d5f398cf36" "user"="load-12" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.935Z" level=info module="c2s" event="auth-success" connection="611ca5a4-b62a-4a67-8bff-0fac1d870b8b" "user"="load-11" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.940Z" level=info module="c2s" event="sasl-attempt" connection="7c117aba-4d05-48f4-a9d6-391fe381937c" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.940Z" level=info module="c2s" event="auth-identity" connection="7c117aba-4d05-48f4-a9d6-391fe381937c" "user"="load-13" +timestamp="2026-10-20T10:29:49.947Z" level=info module="c2s" event="auth-success" connection="7c117aba-4d05-48f4-a9d6-391fe381937c" "user"="load-13" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:49.947Z" level=info module="c2s" event="resource-bound" connection="0da7d9d7-1b98-48cd-a113-ebab1bbdf949" "jid"="load-9@localhost/load-309" "mode"="legacy" +timestamp="2026-10-20T10:29:49.947Z" level=info module="c2s" event="resource-bound" connection="b1a35898-c584-4cc0-ba0e-404c3ed7db9f" "jid"="load-10@localhost/load-310" "mode"="legacy" +timestamp="2026-10-20T10:29:49.955Z" level=info module="c2s" event="connection-open" connection="11cf4b53-2a26-4bd6-95f6-c3afb4cdeb93" "transport"="tcp" "peer"="127.0.0.1:33388" "host"="localhost" +timestamp="2026-10-20T10:29:49.961Z" level=info module="c2s" event="connection-open" connection="2bfa6c84-282f-4831-b767-7bdc2b792e97" "transport"="tcp" "peer"="127.0.0.1:33376" "host"="localhost" +timestamp="2026-10-20T10:29:49.961Z" level=info module="c2s" event="connection-open" connection="338e4ce8-49e1-4848-9bd8-1e41c659774c" "transport"="tcp" "peer"="127.0.0.1:33378" "host"="localhost" +timestamp="2026-10-20T10:29:49.986Z" level=info module="c2s" event="resource-bound" connection="611ca5a4-b62a-4a67-8bff-0fac1d870b8b" "jid"="load-11@localhost/load-311" "mode"="legacy" +timestamp="2026-10-20T10:29:49.986Z" level=info module="c2s" event="tls-established" connection="411f87d3-0102-4ff6-8764-fb5500278d13" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.986Z" level=info module="c2s" event="sasl-features" connection="411f87d3-0102-4ff6-8764-fb5500278d13" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:49.986Z" level=info module="c2s" event="resource-bound" connection="fb5de78b-7a6f-4e97-882f-e8d5f398cf36" "jid"="load-12@localhost/load-312" "mode"="legacy" +timestamp="2026-10-20T10:29:49.986Z" level=info module="c2s" event="connection-open" connection="9911ae3f-e403-49da-ad76-ce8ccde8a597" "transport"="tcp" "peer"="127.0.0.1:33440" "host"="localhost" +timestamp="2026-10-20T10:29:49.986Z" level=info module="c2s" event="connection-open" connection="e13baf48-fdb2-4110-bca4-6a9472ddb6c1" "transport"="tcp" "peer"="127.0.0.1:33398" "host"="localhost" +timestamp="2026-10-20T10:29:49.986Z" level=info module="c2s" event="connection-open" connection="dcf230dd-9b4c-4c4f-8163-16a397e4b834" "transport"="tcp" "peer"="127.0.0.1:33414" "host"="localhost" +timestamp="2026-10-20T10:29:49.986Z" level=info module="c2s" event="connection-open" connection="3b38ff51-3be0-465e-b9a2-a9c230a2a84b" "transport"="tcp" "peer"="127.0.0.1:33424" "host"="localhost" +timestamp="2026-10-20T10:29:49.999Z" level=info module="c2s" event="tls-established" connection="aa0b0005-afe3-4840-904c-7069dd536975" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:49.999Z" level=info module="c2s" event="sasl-features" connection="aa0b0005-afe3-4840-904c-7069dd536975" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.003Z" level=info module="c2s" event="tls-established" connection="ce274f8c-c0b6-467e-8148-923849fd6d58" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.003Z" level=info module="c2s" event="sasl-features" connection="ce274f8c-c0b6-467e-8148-923849fd6d58" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.012Z" level=info module="c2s" event="connection-open" connection="a4ca9bc7-d917-47ec-a68c-23e62a43f755" "transport"="tcp" "peer"="127.0.0.1:33460" "host"="localhost" +timestamp="2026-10-20T10:29:50.017Z" level=info module="c2s" event="sasl-attempt" connection="aa0b0005-afe3-4840-904c-7069dd536975" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.017Z" level=info module="c2s" event="auth-identity" connection="aa0b0005-afe3-4840-904c-7069dd536975" "user"="load-14" +timestamp="2026-10-20T10:29:50.017Z" level=info module="c2s" event="resource-bound" connection="7c117aba-4d05-48f4-a9d6-391fe381937c" "jid"="load-13@localhost/load-313" "mode"="legacy" +timestamp="2026-10-20T10:29:50.018Z" level=info module="c2s" event="sasl-attempt" connection="411f87d3-0102-4ff6-8764-fb5500278d13" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.018Z" level=info module="c2s" event="auth-identity" connection="411f87d3-0102-4ff6-8764-fb5500278d13" "user"="load-15" +timestamp="2026-10-20T10:29:50.018Z" level=info module="c2s" event="connection-open" connection="c9fd51e8-5b81-47b8-8df8-75d8d004b797" "transport"="tcp" "peer"="127.0.0.1:33456" "host"="localhost" +timestamp="2026-10-20T10:29:50.018Z" level=info module="c2s" event="connection-open" connection="3f9a0633-692c-42e4-8eac-8e1ad3f16b1b" "transport"="tcp" "peer"="127.0.0.1:33458" "host"="localhost" +timestamp="2026-10-20T10:29:50.018Z" level=info module="c2s" event="sasl-attempt" connection="ce274f8c-c0b6-467e-8148-923849fd6d58" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.018Z" level=info module="c2s" event="auth-identity" connection="ce274f8c-c0b6-467e-8148-923849fd6d58" "user"="load-16" +timestamp="2026-10-20T10:29:50.025Z" level=info module="c2s" event="auth-success" connection="aa0b0005-afe3-4840-904c-7069dd536975" "user"="load-14" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.026Z" level=info module="c2s" event="auth-success" connection="ce274f8c-c0b6-467e-8148-923849fd6d58" "user"="load-16" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.026Z" level=info module="c2s" event="auth-success" connection="411f87d3-0102-4ff6-8764-fb5500278d13" "user"="load-15" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.028Z" level=info module="c2s" event="connection-open" connection="0cd88d67-37cb-4395-86b5-0aea96b2944c" "transport"="tcp" "peer"="127.0.0.1:33462" "host"="localhost" +timestamp="2026-10-20T10:29:50.041Z" level=info module="c2s" event="tls-established" connection="338e4ce8-49e1-4848-9bd8-1e41c659774c" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.041Z" level=info module="c2s" event="sasl-features" connection="338e4ce8-49e1-4848-9bd8-1e41c659774c" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.047Z" level=info module="c2s" event="tls-established" connection="2bfa6c84-282f-4831-b767-7bdc2b792e97" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.047Z" level=info module="c2s" event="sasl-features" connection="2bfa6c84-282f-4831-b767-7bdc2b792e97" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.047Z" level=info module="c2s" event="tls-established" connection="11cf4b53-2a26-4bd6-95f6-c3afb4cdeb93" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.047Z" level=info module="c2s" event="sasl-features" connection="11cf4b53-2a26-4bd6-95f6-c3afb4cdeb93" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.059Z" level=info module="c2s" event="sasl-attempt" connection="338e4ce8-49e1-4848-9bd8-1e41c659774c" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.059Z" level=info module="c2s" event="auth-identity" connection="338e4ce8-49e1-4848-9bd8-1e41c659774c" "user"="load-18" +timestamp="2026-10-20T10:29:50.060Z" level=info module="c2s" event="connection-open" connection="3848cea4-978b-4d29-940e-8675e9cabaff" "transport"="tcp" "peer"="127.0.0.1:33500" "host"="localhost" +timestamp="2026-10-20T10:29:50.060Z" level=info module="c2s" event="connection-open" connection="70b106c3-a30a-4bbe-bec3-8c418b150303" "transport"="tcp" "peer"="127.0.0.1:33472" "host"="localhost" +timestamp="2026-10-20T10:29:50.060Z" level=info module="c2s" event="connection-open" connection="7396904e-8c51-43c0-9922-b877a28a7400" "transport"="tcp" "peer"="127.0.0.1:33488" "host"="localhost" +timestamp="2026-10-20T10:29:50.060Z" level=info module="c2s" event="sasl-attempt" connection="2bfa6c84-282f-4831-b767-7bdc2b792e97" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.060Z" level=info module="c2s" event="auth-identity" connection="2bfa6c84-282f-4831-b767-7bdc2b792e97" "user"="load-17" +timestamp="2026-10-20T10:29:50.060Z" level=info module="c2s" event="tls-established" connection="3b38ff51-3be0-465e-b9a2-a9c230a2a84b" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.060Z" level=info module="c2s" event="sasl-features" connection="3b38ff51-3be0-465e-b9a2-a9c230a2a84b" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.060Z" level=info module="c2s" event="tls-established" connection="9911ae3f-e403-49da-ad76-ce8ccde8a597" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.060Z" level=info module="c2s" event="sasl-features" connection="9911ae3f-e403-49da-ad76-ce8ccde8a597" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.060Z" level=info module="c2s" event="sasl-attempt" connection="11cf4b53-2a26-4bd6-95f6-c3afb4cdeb93" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.060Z" level=info module="c2s" event="auth-identity" connection="11cf4b53-2a26-4bd6-95f6-c3afb4cdeb93" "user"="load-19" +timestamp="2026-10-20T10:29:50.060Z" level=info module="c2s" event="tls-established" connection="0cd88d67-37cb-4395-86b5-0aea96b2944c" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.060Z" level=info module="c2s" event="sasl-features" connection="0cd88d67-37cb-4395-86b5-0aea96b2944c" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.066Z" level=info module="c2s" event="auth-success" connection="338e4ce8-49e1-4848-9bd8-1e41c659774c" "user"="load-18" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.066Z" level=info module="c2s" event="auth-success" connection="2bfa6c84-282f-4831-b767-7bdc2b792e97" "user"="load-17" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.066Z" level=info module="c2s" event="auth-success" connection="11cf4b53-2a26-4bd6-95f6-c3afb4cdeb93" "user"="load-19" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.066Z" level=info module="c2s" event="connection-open" connection="a34b6540-86dc-4884-a9ce-b7ca85409b93" "transport"="tcp" "peer"="127.0.0.1:33508" "host"="localhost" +timestamp="2026-10-20T10:29:50.066Z" level=info module="c2s" event="tls-established" connection="e13baf48-fdb2-4110-bca4-6a9472ddb6c1" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.066Z" level=info module="c2s" event="sasl-features" connection="e13baf48-fdb2-4110-bca4-6a9472ddb6c1" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.066Z" level=info module="c2s" event="tls-established" connection="3f9a0633-692c-42e4-8eac-8e1ad3f16b1b" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.066Z" level=info module="c2s" event="sasl-features" connection="3f9a0633-692c-42e4-8eac-8e1ad3f16b1b" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.066Z" level=info module="c2s" event="tls-established" connection="dcf230dd-9b4c-4c4f-8163-16a397e4b834" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.066Z" level=info module="c2s" event="sasl-features" connection="dcf230dd-9b4c-4c4f-8163-16a397e4b834" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.066Z" level=info module="c2s" event="tls-established" connection="c9fd51e8-5b81-47b8-8df8-75d8d004b797" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.066Z" level=info module="c2s" event="sasl-features" connection="c9fd51e8-5b81-47b8-8df8-75d8d004b797" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.066Z" level=info module="c2s" event="tls-established" connection="a4ca9bc7-d917-47ec-a68c-23e62a43f755" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.066Z" level=info module="c2s" event="sasl-features" connection="a4ca9bc7-d917-47ec-a68c-23e62a43f755" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.066Z" level=info module="c2s" event="sasl-attempt" connection="3b38ff51-3be0-465e-b9a2-a9c230a2a84b" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.066Z" level=info module="c2s" event="auth-identity" connection="3b38ff51-3be0-465e-b9a2-a9c230a2a84b" "user"="load-22" +timestamp="2026-10-20T10:29:50.066Z" level=info module="c2s" event="sasl-attempt" connection="9911ae3f-e403-49da-ad76-ce8ccde8a597" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.066Z" level=info module="c2s" event="auth-identity" connection="9911ae3f-e403-49da-ad76-ce8ccde8a597" "user"="load-23" +timestamp="2026-10-20T10:29:50.066Z" level=info module="c2s" event="sasl-attempt" connection="0cd88d67-37cb-4395-86b5-0aea96b2944c" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.066Z" level=info module="c2s" event="auth-identity" connection="0cd88d67-37cb-4395-86b5-0aea96b2944c" "user"="load-27" +timestamp="2026-10-20T10:29:50.066Z" level=info module="c2s" event="connection-open" connection="b74d3411-07e2-4809-996a-071fbc8825f7" "transport"="tcp" "peer"="127.0.0.1:33502" "host"="localhost" +timestamp="2026-10-20T10:29:50.068Z" level=info module="c2s" event="auth-success" connection="3b38ff51-3be0-465e-b9a2-a9c230a2a84b" "user"="load-22" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.068Z" level=info module="c2s" event="auth-success" connection="9911ae3f-e403-49da-ad76-ce8ccde8a597" "user"="load-23" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.068Z" level=info module="c2s" event="auth-success" connection="0cd88d67-37cb-4395-86b5-0aea96b2944c" "user"="load-27" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.068Z" level=info module="c2s" event="sasl-attempt" connection="e13baf48-fdb2-4110-bca4-6a9472ddb6c1" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.068Z" level=info module="c2s" event="auth-identity" connection="e13baf48-fdb2-4110-bca4-6a9472ddb6c1" "user"="load-20" +timestamp="2026-10-20T10:29:50.068Z" level=info module="c2s" event="sasl-attempt" connection="3f9a0633-692c-42e4-8eac-8e1ad3f16b1b" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.068Z" level=info module="c2s" event="auth-identity" connection="3f9a0633-692c-42e4-8eac-8e1ad3f16b1b" "user"="load-25" +timestamp="2026-10-20T10:29:50.068Z" level=info module="c2s" event="sasl-attempt" connection="dcf230dd-9b4c-4c4f-8163-16a397e4b834" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.068Z" level=info module="c2s" event="auth-identity" connection="dcf230dd-9b4c-4c4f-8163-16a397e4b834" "user"="load-21" +timestamp="2026-10-20T10:29:50.068Z" level=info module="c2s" event="sasl-attempt" connection="c9fd51e8-5b81-47b8-8df8-75d8d004b797" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.068Z" level=info module="c2s" event="auth-identity" connection="c9fd51e8-5b81-47b8-8df8-75d8d004b797" "user"="load-24" +timestamp="2026-10-20T10:29:50.068Z" level=info module="c2s" event="sasl-attempt" connection="a4ca9bc7-d917-47ec-a68c-23e62a43f755" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.068Z" level=info module="c2s" event="auth-identity" connection="a4ca9bc7-d917-47ec-a68c-23e62a43f755" "user"="load-26" +timestamp="2026-10-20T10:29:50.068Z" level=info module="c2s" event="tls-established" connection="3848cea4-978b-4d29-940e-8675e9cabaff" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.068Z" level=info module="c2s" event="sasl-features" connection="3848cea4-978b-4d29-940e-8675e9cabaff" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.069Z" level=info module="c2s" event="auth-success" connection="e13baf48-fdb2-4110-bca4-6a9472ddb6c1" "user"="load-20" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.071Z" level=info module="c2s" event="auth-success" connection="3f9a0633-692c-42e4-8eac-8e1ad3f16b1b" "user"="load-25" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.071Z" level=info module="c2s" event="auth-success" connection="dcf230dd-9b4c-4c4f-8163-16a397e4b834" "user"="load-21" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.071Z" level=info module="c2s" event="auth-success" connection="a4ca9bc7-d917-47ec-a68c-23e62a43f755" "user"="load-26" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.071Z" level=info module="c2s" event="auth-success" connection="c9fd51e8-5b81-47b8-8df8-75d8d004b797" "user"="load-24" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.075Z" level=info module="c2s" event="connection-open" connection="fc8183aa-e5f4-4a4c-8773-828d19de9ffe" "transport"="tcp" "peer"="127.0.0.1:33514" "host"="localhost" +timestamp="2026-10-20T10:29:50.075Z" level=info module="c2s" event="resource-bound" connection="ce274f8c-c0b6-467e-8148-923849fd6d58" "jid"="load-16@localhost/load-316" "mode"="legacy" +timestamp="2026-10-20T10:29:50.075Z" level=info module="c2s" event="resource-bound" connection="aa0b0005-afe3-4840-904c-7069dd536975" "jid"="load-14@localhost/load-314" "mode"="legacy" +timestamp="2026-10-20T10:29:50.076Z" level=info module="c2s" event="resource-bound" connection="3b38ff51-3be0-465e-b9a2-a9c230a2a84b" "jid"="load-22@localhost/load-322" "mode"="legacy" +timestamp="2026-10-20T10:29:50.076Z" level=info module="c2s" event="tls-established" connection="70b106c3-a30a-4bbe-bec3-8c418b150303" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.076Z" level=info module="c2s" event="sasl-features" connection="70b106c3-a30a-4bbe-bec3-8c418b150303" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.076Z" level=info module="c2s" event="resource-bound" connection="411f87d3-0102-4ff6-8764-fb5500278d13" "jid"="load-15@localhost/load-315" "mode"="legacy" +timestamp="2026-10-20T10:29:50.076Z" level=info module="c2s" event="resource-bound" connection="338e4ce8-49e1-4848-9bd8-1e41c659774c" "jid"="load-18@localhost/load-318" "mode"="legacy" +timestamp="2026-10-20T10:29:50.076Z" level=info module="c2s" event="resource-bound" connection="9911ae3f-e403-49da-ad76-ce8ccde8a597" "jid"="load-23@localhost/load-323" "mode"="legacy" +timestamp="2026-10-20T10:29:50.076Z" level=info module="c2s" event="resource-bound" connection="2bfa6c84-282f-4831-b767-7bdc2b792e97" "jid"="load-17@localhost/load-317" "mode"="legacy" +timestamp="2026-10-20T10:29:50.076Z" level=info module="c2s" event="sasl-attempt" connection="3848cea4-978b-4d29-940e-8675e9cabaff" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.076Z" level=info module="c2s" event="auth-identity" connection="3848cea4-978b-4d29-940e-8675e9cabaff" "user"="load-30" +timestamp="2026-10-20T10:29:50.076Z" level=info module="c2s" event="tls-established" connection="7396904e-8c51-43c0-9922-b877a28a7400" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.076Z" level=info module="c2s" event="sasl-features" connection="7396904e-8c51-43c0-9922-b877a28a7400" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.076Z" level=info module="c2s" event="resource-bound" connection="11cf4b53-2a26-4bd6-95f6-c3afb4cdeb93" "jid"="load-19@localhost/load-319" "mode"="legacy" +timestamp="2026-10-20T10:29:50.077Z" level=info module="c2s" event="auth-success" connection="3848cea4-978b-4d29-940e-8675e9cabaff" "user"="load-30" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.077Z" level=info module="c2s" event="sasl-attempt" connection="70b106c3-a30a-4bbe-bec3-8c418b150303" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.077Z" level=info module="c2s" event="auth-identity" connection="70b106c3-a30a-4bbe-bec3-8c418b150303" "user"="load-28" +timestamp="2026-10-20T10:29:50.078Z" level=info module="c2s" event="resource-bound" connection="dcf230dd-9b4c-4c4f-8163-16a397e4b834" "jid"="load-21@localhost/load-321" "mode"="legacy" +timestamp="2026-10-20T10:29:50.078Z" level=info module="c2s" event="resource-bound" connection="3f9a0633-692c-42e4-8eac-8e1ad3f16b1b" "jid"="load-25@localhost/load-325" "mode"="legacy" +timestamp="2026-10-20T10:29:50.078Z" level=info module="c2s" event="tls-established" connection="a34b6540-86dc-4884-a9ce-b7ca85409b93" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.078Z" level=info module="c2s" event="sasl-features" connection="a34b6540-86dc-4884-a9ce-b7ca85409b93" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.078Z" level=info module="c2s" event="tls-established" connection="b74d3411-07e2-4809-996a-071fbc8825f7" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.078Z" level=info module="c2s" event="sasl-features" connection="b74d3411-07e2-4809-996a-071fbc8825f7" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.078Z" level=info module="c2s" event="resource-bound" connection="a4ca9bc7-d917-47ec-a68c-23e62a43f755" "jid"="load-26@localhost/load-326" "mode"="legacy" +timestamp="2026-10-20T10:29:50.078Z" level=info module="c2s" event="sasl-attempt" connection="b74d3411-07e2-4809-996a-071fbc8825f7" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.078Z" level=info module="c2s" event="auth-identity" connection="b74d3411-07e2-4809-996a-071fbc8825f7" "user"="load-31" +timestamp="2026-10-20T10:29:50.081Z" level=info module="c2s" event="auth-success" connection="70b106c3-a30a-4bbe-bec3-8c418b150303" "user"="load-28" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.081Z" level=info module="c2s" event="auth-success" connection="b74d3411-07e2-4809-996a-071fbc8825f7" "user"="load-31" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.081Z" level=info module="c2s" event="resource-bound" connection="0cd88d67-37cb-4395-86b5-0aea96b2944c" "jid"="load-27@localhost/load-327" "mode"="legacy" +timestamp="2026-10-20T10:29:50.082Z" level=info module="c2s" event="resource-bound" connection="e13baf48-fdb2-4110-bca4-6a9472ddb6c1" "jid"="load-20@localhost/load-320" "mode"="legacy" +timestamp="2026-10-20T10:29:50.090Z" level=info module="c2s" event="sasl-attempt" connection="7396904e-8c51-43c0-9922-b877a28a7400" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.090Z" level=info module="c2s" event="auth-identity" connection="7396904e-8c51-43c0-9922-b877a28a7400" "user"="load-29" +timestamp="2026-10-20T10:29:50.090Z" level=info module="c2s" event="sasl-attempt" connection="a34b6540-86dc-4884-a9ce-b7ca85409b93" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.090Z" level=info module="c2s" event="auth-identity" connection="a34b6540-86dc-4884-a9ce-b7ca85409b93" "user"="load-32" +timestamp="2026-10-20T10:29:50.090Z" level=info module="c2s" event="resource-bound" connection="c9fd51e8-5b81-47b8-8df8-75d8d004b797" "jid"="load-24@localhost/load-324" "mode"="legacy" +timestamp="2026-10-20T10:29:50.091Z" level=info module="c2s" event="auth-success" connection="7396904e-8c51-43c0-9922-b877a28a7400" "user"="load-29" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.095Z" level=info module="c2s" event="auth-success" connection="a34b6540-86dc-4884-a9ce-b7ca85409b93" "user"="load-32" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.105Z" level=info module="c2s" event="tls-established" connection="fc8183aa-e5f4-4a4c-8773-828d19de9ffe" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.105Z" level=info module="c2s" event="sasl-features" connection="fc8183aa-e5f4-4a4c-8773-828d19de9ffe" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.145Z" level=info module="c2s" event="resource-bound" connection="3848cea4-978b-4d29-940e-8675e9cabaff" "jid"="load-30@localhost/load-330" "mode"="legacy" +timestamp="2026-10-20T10:29:50.145Z" level=info module="c2s" event="resource-bound" connection="70b106c3-a30a-4bbe-bec3-8c418b150303" "jid"="load-28@localhost/load-328" "mode"="legacy" +timestamp="2026-10-20T10:29:50.145Z" level=info module="c2s" event="sasl-attempt" connection="fc8183aa-e5f4-4a4c-8773-828d19de9ffe" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.145Z" level=info module="c2s" event="auth-identity" connection="fc8183aa-e5f4-4a4c-8773-828d19de9ffe" "user"="load-33" +timestamp="2026-10-20T10:29:50.159Z" level=info module="c2s" event="auth-success" connection="fc8183aa-e5f4-4a4c-8773-828d19de9ffe" "user"="load-33" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.159Z" level=info module="c2s" event="connection-open" connection="f7c9cd49-7df1-4884-bdc9-751a9a3caa43" "transport"="tcp" "peer"="127.0.0.1:33588" "host"="localhost" +timestamp="2026-10-20T10:29:50.163Z" level=info module="c2s" event="resource-bound" connection="b74d3411-07e2-4809-996a-071fbc8825f7" "jid"="load-31@localhost/load-331" "mode"="legacy" +timestamp="2026-10-20T10:29:50.168Z" level=info module="c2s" event="connection-open" connection="c5d507d3-9ffe-4c48-88fe-52ce0e796fa9" "transport"="tcp" "peer"="127.0.0.1:33546" "host"="localhost" +timestamp="2026-10-20T10:29:50.168Z" level=info module="c2s" event="connection-open" connection="44e61bf1-0a7e-4b32-9a24-a59b3a6a79af" "transport"="tcp" "peer"="127.0.0.1:33524" "host"="localhost" +timestamp="2026-10-20T10:29:50.168Z" level=info module="c2s" event="connection-open" connection="987cacac-cdca-43d8-8de1-8fe593358369" "transport"="tcp" "peer"="127.0.0.1:33536" "host"="localhost" +timestamp="2026-10-20T10:29:50.168Z" level=info module="c2s" event="connection-open" connection="f826b2e4-aa2c-4a77-9ddb-7560c2be0222" "transport"="tcp" "peer"="127.0.0.1:33542" "host"="localhost" +timestamp="2026-10-20T10:29:50.168Z" level=info module="c2s" event="connection-open" connection="df1fd963-2912-42c8-a784-a3eb952fb2a5" "transport"="tcp" "peer"="127.0.0.1:33556" "host"="localhost" +timestamp="2026-10-20T10:29:50.168Z" level=info module="c2s" event="connection-open" connection="6ac095ce-06d2-47ea-96e3-106023da7962" "transport"="tcp" "peer"="127.0.0.1:33552" "host"="localhost" +timestamp="2026-10-20T10:29:50.172Z" level=info module="c2s" event="connection-open" connection="884a0364-5121-4eff-9d6b-6674d7586836" "transport"="tcp" "peer"="127.0.0.1:33558" "host"="localhost" +timestamp="2026-10-20T10:29:50.172Z" level=info module="c2s" event="connection-open" connection="49f7bb69-26e1-4647-892f-a5d69b5d86f2" "transport"="tcp" "peer"="127.0.0.1:33572" "host"="localhost" +timestamp="2026-10-20T10:29:50.178Z" level=info module="c2s" event="resource-bound" connection="7396904e-8c51-43c0-9922-b877a28a7400" "jid"="load-29@localhost/load-329" "mode"="legacy" +timestamp="2026-10-20T10:29:50.178Z" level=info module="c2s" event="resource-bound" connection="a34b6540-86dc-4884-a9ce-b7ca85409b93" "jid"="load-32@localhost/load-332" "mode"="legacy" +timestamp="2026-10-20T10:29:50.193Z" level=info module="c2s" event="connection-open" connection="f0577cd2-8afd-423d-8b8b-c0997fc48fc6" "transport"="tcp" "peer"="127.0.0.1:33608" "host"="localhost" +timestamp="2026-10-20T10:29:50.193Z" level=info module="c2s" event="connection-open" connection="259193be-b7f3-4133-abaa-efd8ae4a8dd9" "transport"="tcp" "peer"="127.0.0.1:33590" "host"="localhost" +timestamp="2026-10-20T10:29:50.193Z" level=info module="c2s" event="connection-open" connection="6eb9c72d-77d0-4de6-b9d4-fc41a82da228" "transport"="tcp" "peer"="127.0.0.1:33606" "host"="localhost" +timestamp="2026-10-20T10:29:50.219Z" level=info module="c2s" event="resource-bound" connection="fc8183aa-e5f4-4a4c-8773-828d19de9ffe" "jid"="load-33@localhost/load-333" "mode"="legacy" +timestamp="2026-10-20T10:29:50.220Z" level=info module="c2s" event="connection-open" connection="fa42e120-9b06-4680-a050-6dbc4cc59c30" "transport"="tcp" "peer"="127.0.0.1:33634" "host"="localhost" +timestamp="2026-10-20T10:29:50.220Z" level=info module="c2s" event="connection-open" connection="b7d138d3-0f67-4532-be7d-2c80bf106f88" "transport"="tcp" "peer"="127.0.0.1:33614" "host"="localhost" +timestamp="2026-10-20T10:29:50.220Z" level=info module="c2s" event="connection-open" connection="57781493-2ed2-4578-af79-8c8cce02381d" "transport"="tcp" "peer"="127.0.0.1:33630" "host"="localhost" +timestamp="2026-10-20T10:29:50.220Z" level=info module="c2s" event="tls-established" connection="f7c9cd49-7df1-4884-bdc9-751a9a3caa43" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.220Z" level=info module="c2s" event="sasl-features" connection="f7c9cd49-7df1-4884-bdc9-751a9a3caa43" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.220Z" level=info module="c2s" event="tls-established" connection="6ac095ce-06d2-47ea-96e3-106023da7962" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.220Z" level=info module="c2s" event="sasl-features" connection="6ac095ce-06d2-47ea-96e3-106023da7962" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.220Z" level=info module="c2s" event="tls-established" connection="c5d507d3-9ffe-4c48-88fe-52ce0e796fa9" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.220Z" level=info module="c2s" event="sasl-features" connection="c5d507d3-9ffe-4c48-88fe-52ce0e796fa9" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.230Z" level=info module="c2s" event="connection-open" connection="e1a4b7d8-805a-4fe2-b371-612c474562e3" "transport"="tcp" "peer"="127.0.0.1:33650" "host"="localhost" +timestamp="2026-10-20T10:29:50.230Z" level=info module="c2s" event="tls-established" connection="987cacac-cdca-43d8-8de1-8fe593358369" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.230Z" level=info module="c2s" event="sasl-features" connection="987cacac-cdca-43d8-8de1-8fe593358369" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.231Z" level=info module="c2s" event="tls-established" connection="44e61bf1-0a7e-4b32-9a24-a59b3a6a79af" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.231Z" level=info module="c2s" event="sasl-features" connection="44e61bf1-0a7e-4b32-9a24-a59b3a6a79af" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.231Z" level=info module="c2s" event="tls-established" connection="f826b2e4-aa2c-4a77-9ddb-7560c2be0222" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.231Z" level=info module="c2s" event="sasl-features" connection="f826b2e4-aa2c-4a77-9ddb-7560c2be0222" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.231Z" level=info module="c2s" event="sasl-attempt" connection="6ac095ce-06d2-47ea-96e3-106023da7962" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.231Z" level=info module="c2s" event="auth-identity" connection="6ac095ce-06d2-47ea-96e3-106023da7962" "user"="load-38" +timestamp="2026-10-20T10:29:50.231Z" level=info module="c2s" event="tls-established" connection="49f7bb69-26e1-4647-892f-a5d69b5d86f2" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.231Z" level=info module="c2s" event="sasl-features" connection="49f7bb69-26e1-4647-892f-a5d69b5d86f2" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.231Z" level=info module="c2s" event="sasl-attempt" connection="c5d507d3-9ffe-4c48-88fe-52ce0e796fa9" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.231Z" level=info module="c2s" event="auth-identity" connection="c5d507d3-9ffe-4c48-88fe-52ce0e796fa9" "user"="load-37" +timestamp="2026-10-20T10:29:50.231Z" level=info module="c2s" event="sasl-attempt" connection="f7c9cd49-7df1-4884-bdc9-751a9a3caa43" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.231Z" level=info module="c2s" event="auth-identity" connection="f7c9cd49-7df1-4884-bdc9-751a9a3caa43" "user"="load-42" +timestamp="2026-10-20T10:29:50.231Z" level=info module="c2s" event="sasl-attempt" connection="987cacac-cdca-43d8-8de1-8fe593358369" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.231Z" level=info module="c2s" event="auth-identity" connection="987cacac-cdca-43d8-8de1-8fe593358369" "user"="load-35" +timestamp="2026-10-20T10:29:50.231Z" level=info module="c2s" event="tls-established" connection="df1fd963-2912-42c8-a784-a3eb952fb2a5" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.231Z" level=info module="c2s" event="sasl-features" connection="df1fd963-2912-42c8-a784-a3eb952fb2a5" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.232Z" level=info module="c2s" event="tls-established" connection="884a0364-5121-4eff-9d6b-6674d7586836" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.232Z" level=info module="c2s" event="sasl-features" connection="884a0364-5121-4eff-9d6b-6674d7586836" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.232Z" level=info module="c2s" event="tls-established" connection="259193be-b7f3-4133-abaa-efd8ae4a8dd9" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.232Z" level=info module="c2s" event="sasl-features" connection="259193be-b7f3-4133-abaa-efd8ae4a8dd9" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.233Z" level=info module="c2s" event="auth-success" connection="6ac095ce-06d2-47ea-96e3-106023da7962" "user"="load-38" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.233Z" level=info module="c2s" event="auth-success" connection="c5d507d3-9ffe-4c48-88fe-52ce0e796fa9" "user"="load-37" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.233Z" level=info module="c2s" event="auth-success" connection="987cacac-cdca-43d8-8de1-8fe593358369" "user"="load-35" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.233Z" level=info module="c2s" event="tls-established" connection="f0577cd2-8afd-423d-8b8b-c0997fc48fc6" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.233Z" level=info module="c2s" event="sasl-features" connection="f0577cd2-8afd-423d-8b8b-c0997fc48fc6" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.233Z" level=info module="c2s" event="auth-success" connection="f7c9cd49-7df1-4884-bdc9-751a9a3caa43" "user"="load-42" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.233Z" level=info module="c2s" event="tls-established" connection="6eb9c72d-77d0-4de6-b9d4-fc41a82da228" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.233Z" level=info module="c2s" event="sasl-features" connection="6eb9c72d-77d0-4de6-b9d4-fc41a82da228" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.233Z" level=info module="c2s" event="sasl-attempt" connection="49f7bb69-26e1-4647-892f-a5d69b5d86f2" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.233Z" level=info module="c2s" event="auth-identity" connection="49f7bb69-26e1-4647-892f-a5d69b5d86f2" "user"="load-41" +timestamp="2026-10-20T10:29:50.233Z" level=info module="c2s" event="sasl-attempt" connection="44e61bf1-0a7e-4b32-9a24-a59b3a6a79af" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.233Z" level=info module="c2s" event="auth-identity" connection="44e61bf1-0a7e-4b32-9a24-a59b3a6a79af" "user"="load-34" +timestamp="2026-10-20T10:29:50.233Z" level=info module="c2s" event="sasl-attempt" connection="f826b2e4-aa2c-4a77-9ddb-7560c2be0222" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.233Z" level=info module="c2s" event="auth-identity" connection="f826b2e4-aa2c-4a77-9ddb-7560c2be0222" "user"="load-36" +timestamp="2026-10-20T10:29:50.235Z" level=info module="c2s" event="auth-success" connection="49f7bb69-26e1-4647-892f-a5d69b5d86f2" "user"="load-41" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.235Z" level=info module="c2s" event="sasl-attempt" connection="259193be-b7f3-4133-abaa-efd8ae4a8dd9" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.235Z" level=info module="c2s" event="auth-identity" connection="259193be-b7f3-4133-abaa-efd8ae4a8dd9" "user"="load-43" +timestamp="2026-10-20T10:29:50.235Z" level=info module="c2s" event="sasl-attempt" connection="884a0364-5121-4eff-9d6b-6674d7586836" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.235Z" level=info module="c2s" event="auth-identity" connection="884a0364-5121-4eff-9d6b-6674d7586836" "user"="load-40" +timestamp="2026-10-20T10:29:50.235Z" level=info module="c2s" event="sasl-attempt" connection="f0577cd2-8afd-423d-8b8b-c0997fc48fc6" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.235Z" level=info module="c2s" event="auth-identity" connection="f0577cd2-8afd-423d-8b8b-c0997fc48fc6" "user"="load-45" +timestamp="2026-10-20T10:29:50.235Z" level=info module="c2s" event="sasl-attempt" connection="df1fd963-2912-42c8-a784-a3eb952fb2a5" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.235Z" level=info module="c2s" event="auth-identity" connection="df1fd963-2912-42c8-a784-a3eb952fb2a5" "user"="load-39" +timestamp="2026-10-20T10:29:50.238Z" level=info module="c2s" event="auth-success" connection="44e61bf1-0a7e-4b32-9a24-a59b3a6a79af" "user"="load-34" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.238Z" level=info module="c2s" event="resource-bound" connection="987cacac-cdca-43d8-8de1-8fe593358369" "jid"="load-35@localhost/load-335" "mode"="legacy" +timestamp="2026-10-20T10:29:50.238Z" level=info module="c2s" event="auth-success" connection="f826b2e4-aa2c-4a77-9ddb-7560c2be0222" "user"="load-36" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.238Z" level=info module="c2s" event="auth-success" connection="259193be-b7f3-4133-abaa-efd8ae4a8dd9" "user"="load-43" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.238Z" level=info module="c2s" event="auth-success" connection="884a0364-5121-4eff-9d6b-6674d7586836" "user"="load-40" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.238Z" level=info module="c2s" event="auth-success" connection="f0577cd2-8afd-423d-8b8b-c0997fc48fc6" "user"="load-45" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.238Z" level=info module="c2s" event="sasl-attempt" connection="6eb9c72d-77d0-4de6-b9d4-fc41a82da228" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.238Z" level=info module="c2s" event="auth-identity" connection="6eb9c72d-77d0-4de6-b9d4-fc41a82da228" "user"="load-44" +timestamp="2026-10-20T10:29:50.238Z" level=info module="c2s" event="auth-success" connection="df1fd963-2912-42c8-a784-a3eb952fb2a5" "user"="load-39" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.238Z" level=info module="c2s" event="tls-established" connection="b7d138d3-0f67-4532-be7d-2c80bf106f88" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.238Z" level=info module="c2s" event="tls-established" connection="57781493-2ed2-4578-af79-8c8cce02381d" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.238Z" level=info module="c2s" event="sasl-features" connection="b7d138d3-0f67-4532-be7d-2c80bf106f88" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.238Z" level=info module="c2s" event="sasl-features" connection="57781493-2ed2-4578-af79-8c8cce02381d" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.238Z" level=info module="c2s" event="tls-established" connection="fa42e120-9b06-4680-a050-6dbc4cc59c30" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.238Z" level=info module="c2s" event="sasl-features" connection="fa42e120-9b06-4680-a050-6dbc4cc59c30" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.238Z" level=info module="c2s" event="resource-bound" connection="c5d507d3-9ffe-4c48-88fe-52ce0e796fa9" "jid"="load-37@localhost/load-337" "mode"="legacy" +timestamp="2026-10-20T10:29:50.238Z" level=info module="c2s" event="resource-bound" connection="6ac095ce-06d2-47ea-96e3-106023da7962" "jid"="load-38@localhost/load-338" "mode"="legacy" +timestamp="2026-10-20T10:29:50.238Z" level=info module="c2s" event="resource-bound" connection="f7c9cd49-7df1-4884-bdc9-751a9a3caa43" "jid"="load-42@localhost/load-342" "mode"="legacy" +timestamp="2026-10-20T10:29:50.239Z" level=info module="c2s" event="resource-bound" connection="49f7bb69-26e1-4647-892f-a5d69b5d86f2" "jid"="load-41@localhost/load-341" "mode"="legacy" +timestamp="2026-10-20T10:29:50.239Z" level=info module="c2s" event="sasl-attempt" connection="57781493-2ed2-4578-af79-8c8cce02381d" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.239Z" level=info module="c2s" event="auth-identity" connection="57781493-2ed2-4578-af79-8c8cce02381d" "user"="load-47" +timestamp="2026-10-20T10:29:50.239Z" level=info module="c2s" event="sasl-attempt" connection="b7d138d3-0f67-4532-be7d-2c80bf106f88" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.239Z" level=info module="c2s" event="auth-identity" connection="b7d138d3-0f67-4532-be7d-2c80bf106f88" "user"="load-46" +timestamp="2026-10-20T10:29:50.239Z" level=info module="c2s" event="tls-established" connection="e1a4b7d8-805a-4fe2-b371-612c474562e3" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.239Z" level=info module="c2s" event="sasl-features" connection="e1a4b7d8-805a-4fe2-b371-612c474562e3" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.239Z" level=info module="c2s" event="sasl-attempt" connection="fa42e120-9b06-4680-a050-6dbc4cc59c30" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.239Z" level=info module="c2s" event="auth-identity" connection="fa42e120-9b06-4680-a050-6dbc4cc59c30" "user"="load-48" +timestamp="2026-10-20T10:29:50.243Z" level=info module="c2s" event="auth-success" connection="6eb9c72d-77d0-4de6-b9d4-fc41a82da228" "user"="load-44" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.243Z" level=info module="c2s" event="auth-success" connection="57781493-2ed2-4578-af79-8c8cce02381d" "user"="load-47" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.243Z" level=info module="c2s" event="auth-success" connection="b7d138d3-0f67-4532-be7d-2c80bf106f88" "user"="load-46" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.243Z" level=info module="c2s" event="auth-success" connection="fa42e120-9b06-4680-a050-6dbc4cc59c30" "user"="load-48" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.252Z" level=info module="c2s" event="resource-bound" connection="f826b2e4-aa2c-4a77-9ddb-7560c2be0222" "jid"="load-36@localhost/load-336" "mode"="legacy" +timestamp="2026-10-20T10:29:50.252Z" level=info module="c2s" event="resource-bound" connection="259193be-b7f3-4133-abaa-efd8ae4a8dd9" "jid"="load-43@localhost/load-343" "mode"="legacy" +timestamp="2026-10-20T10:29:50.252Z" level=info module="c2s" event="resource-bound" connection="f0577cd2-8afd-423d-8b8b-c0997fc48fc6" "jid"="load-45@localhost/load-345" "mode"="legacy" +timestamp="2026-10-20T10:29:50.257Z" level=info module="c2s" event="resource-bound" connection="884a0364-5121-4eff-9d6b-6674d7586836" "jid"="load-40@localhost/load-340" "mode"="legacy" +timestamp="2026-10-20T10:29:50.258Z" level=info module="c2s" event="resource-bound" connection="44e61bf1-0a7e-4b32-9a24-a59b3a6a79af" "jid"="load-34@localhost/load-334" "mode"="legacy" +timestamp="2026-10-20T10:29:50.258Z" level=info module="c2s" event="resource-bound" connection="df1fd963-2912-42c8-a784-a3eb952fb2a5" "jid"="load-39@localhost/load-339" "mode"="legacy" +timestamp="2026-10-20T10:29:50.277Z" level=info module="c2s" event="resource-bound" connection="57781493-2ed2-4578-af79-8c8cce02381d" "jid"="load-47@localhost/load-347" "mode"="legacy" +timestamp="2026-10-20T10:29:50.280Z" level=info module="c2s" event="connection-open" connection="b8f0c281-3113-495e-bb54-8b0d8ea372d7" "transport"="tcp" "peer"="127.0.0.1:33678" "host"="localhost" +timestamp="2026-10-20T10:29:50.280Z" level=info module="c2s" event="connection-open" connection="ca729468-8ba6-4e65-9f72-afe2c3b4db04" "transport"="tcp" "peer"="127.0.0.1:33662" "host"="localhost" +timestamp="2026-10-20T10:29:50.280Z" level=info module="c2s" event="connection-open" connection="dc57cc27-ca8a-47c7-a70d-bfb60f349253" "transport"="tcp" "peer"="127.0.0.1:33668" "host"="localhost" +timestamp="2026-10-20T10:29:50.280Z" level=info module="c2s" event="connection-open" connection="9288d53b-9c31-43ed-bbcc-e78bba4b36fc" "transport"="tcp" "peer"="127.0.0.1:33674" "host"="localhost" +timestamp="2026-10-20T10:29:50.280Z" level=info module="c2s" event="sasl-attempt" connection="e1a4b7d8-805a-4fe2-b371-612c474562e3" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.280Z" level=info module="c2s" event="auth-identity" connection="e1a4b7d8-805a-4fe2-b371-612c474562e3" "user"="load-49" +timestamp="2026-10-20T10:29:50.292Z" level=info module="c2s" event="resource-bound" connection="b7d138d3-0f67-4532-be7d-2c80bf106f88" "jid"="load-46@localhost/load-346" "mode"="legacy" +timestamp="2026-10-20T10:29:50.292Z" level=info module="c2s" event="auth-success" connection="e1a4b7d8-805a-4fe2-b371-612c474562e3" "user"="load-49" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.293Z" level=info module="c2s" event="resource-bound" connection="6eb9c72d-77d0-4de6-b9d4-fc41a82da228" "jid"="load-44@localhost/load-344" "mode"="legacy" +timestamp="2026-10-20T10:29:50.348Z" level=info module="c2s" event="connection-open" connection="4f41fe2a-6607-469b-9461-dd0dfb059506" "transport"="tcp" "peer"="127.0.0.1:33750" "host"="localhost" +timestamp="2026-10-20T10:29:50.348Z" level=info module="c2s" event="connection-open" connection="b1037bf8-68cb-4f5c-ad42-729d044a7c81" "transport"="tcp" "peer"="127.0.0.1:33682" "host"="localhost" +timestamp="2026-10-20T10:29:50.348Z" level=info module="c2s" event="connection-open" connection="df9192d3-1396-45d5-9144-c43774d0299e" "transport"="tcp" "peer"="127.0.0.1:33684" "host"="localhost" +timestamp="2026-10-20T10:29:50.348Z" level=info module="c2s" event="connection-open" connection="78245961-ef78-4d00-b526-6cec58c1039b" "transport"="tcp" "peer"="127.0.0.1:33698" "host"="localhost" +timestamp="2026-10-20T10:29:50.348Z" level=info module="c2s" event="connection-open" connection="cbcdc56f-7712-4b4c-893d-ad420d8732d6" "transport"="tcp" "peer"="127.0.0.1:33700" "host"="localhost" +timestamp="2026-10-20T10:29:50.348Z" level=info module="c2s" event="connection-open" connection="bf4967ca-e30c-404f-9b96-6b7a98324f1d" "transport"="tcp" "peer"="127.0.0.1:33708" "host"="localhost" +timestamp="2026-10-20T10:29:50.348Z" level=info module="c2s" event="connection-open" connection="f581d6b0-670e-41d7-90c9-f44faae12f81" "transport"="tcp" "peer"="127.0.0.1:33714" "host"="localhost" +timestamp="2026-10-20T10:29:50.348Z" level=info module="c2s" event="connection-open" connection="1e5a417e-1003-4a28-a274-8a7cb34462e7" "transport"="tcp" "peer"="127.0.0.1:33718" "host"="localhost" +timestamp="2026-10-20T10:29:50.348Z" level=info module="c2s" event="connection-open" connection="79701a53-5c29-40f0-b163-4103ad99c94e" "transport"="tcp" "peer"="127.0.0.1:33734" "host"="localhost" +timestamp="2026-10-20T10:29:50.348Z" level=info module="c2s" event="resource-bound" connection="fa42e120-9b06-4680-a050-6dbc4cc59c30" "jid"="load-48@localhost/load-348" "mode"="legacy" +timestamp="2026-10-20T10:29:50.357Z" level=info module="c2s" event="resource-bound" connection="e1a4b7d8-805a-4fe2-b371-612c474562e3" "jid"="load-49@localhost/load-349" "mode"="legacy" +timestamp="2026-10-20T10:29:50.377Z" level=info module="c2s" event="tls-established" connection="b8f0c281-3113-495e-bb54-8b0d8ea372d7" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.377Z" level=info module="c2s" event="sasl-features" connection="b8f0c281-3113-495e-bb54-8b0d8ea372d7" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.378Z" level=info module="c2s" event="tls-established" connection="dc57cc27-ca8a-47c7-a70d-bfb60f349253" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.378Z" level=info module="c2s" event="sasl-features" connection="dc57cc27-ca8a-47c7-a70d-bfb60f349253" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.379Z" level=info module="c2s" event="tls-established" connection="9288d53b-9c31-43ed-bbcc-e78bba4b36fc" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.379Z" level=info module="c2s" event="sasl-features" connection="9288d53b-9c31-43ed-bbcc-e78bba4b36fc" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.380Z" level=info module="c2s" event="tls-established" connection="ca729468-8ba6-4e65-9f72-afe2c3b4db04" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.380Z" level=info module="c2s" event="sasl-features" connection="ca729468-8ba6-4e65-9f72-afe2c3b4db04" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.381Z" level=info module="c2s" event="tls-established" connection="cbcdc56f-7712-4b4c-893d-ad420d8732d6" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.381Z" level=info module="c2s" event="sasl-features" connection="cbcdc56f-7712-4b4c-893d-ad420d8732d6" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.381Z" level=info module="c2s" event="tls-established" connection="df9192d3-1396-45d5-9144-c43774d0299e" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.381Z" level=info module="c2s" event="sasl-features" connection="df9192d3-1396-45d5-9144-c43774d0299e" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.381Z" level=info module="c2s" event="tls-established" connection="b1037bf8-68cb-4f5c-ad42-729d044a7c81" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.381Z" level=info module="c2s" event="sasl-features" connection="b1037bf8-68cb-4f5c-ad42-729d044a7c81" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.382Z" level=info module="c2s" event="tls-established" connection="78245961-ef78-4d00-b526-6cec58c1039b" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.382Z" level=info module="c2s" event="sasl-features" connection="78245961-ef78-4d00-b526-6cec58c1039b" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.382Z" level=info module="c2s" event="tls-established" connection="1e5a417e-1003-4a28-a274-8a7cb34462e7" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.382Z" level=info module="c2s" event="sasl-features" connection="1e5a417e-1003-4a28-a274-8a7cb34462e7" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.383Z" level=info module="c2s" event="sasl-attempt" connection="dc57cc27-ca8a-47c7-a70d-bfb60f349253" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.383Z" level=info module="c2s" event="auth-identity" connection="dc57cc27-ca8a-47c7-a70d-bfb60f349253" "user"="load-51" +timestamp="2026-10-20T10:29:50.383Z" level=info module="c2s" event="sasl-attempt" connection="b8f0c281-3113-495e-bb54-8b0d8ea372d7" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.383Z" level=info module="c2s" event="auth-identity" connection="b8f0c281-3113-495e-bb54-8b0d8ea372d7" "user"="load-53" +timestamp="2026-10-20T10:29:50.383Z" level=info module="c2s" event="sasl-attempt" connection="cbcdc56f-7712-4b4c-893d-ad420d8732d6" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.383Z" level=info module="c2s" event="auth-identity" connection="cbcdc56f-7712-4b4c-893d-ad420d8732d6" "user"="load-57" +timestamp="2026-10-20T10:29:50.383Z" level=info module="c2s" event="sasl-attempt" connection="78245961-ef78-4d00-b526-6cec58c1039b" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.383Z" level=info module="c2s" event="auth-identity" connection="78245961-ef78-4d00-b526-6cec58c1039b" "user"="load-56" +timestamp="2026-10-20T10:29:50.383Z" level=info module="c2s" event="sasl-attempt" connection="df9192d3-1396-45d5-9144-c43774d0299e" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.383Z" level=info module="c2s" event="sasl-attempt" connection="b1037bf8-68cb-4f5c-ad42-729d044a7c81" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.383Z" level=info module="c2s" event="auth-identity" connection="df9192d3-1396-45d5-9144-c43774d0299e" "user"="load-55" +timestamp="2026-10-20T10:29:50.383Z" level=info module="c2s" event="auth-identity" connection="b1037bf8-68cb-4f5c-ad42-729d044a7c81" "user"="load-54" +timestamp="2026-10-20T10:29:50.383Z" level=info module="c2s" event="sasl-attempt" connection="9288d53b-9c31-43ed-bbcc-e78bba4b36fc" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.383Z" level=info module="c2s" event="auth-identity" connection="9288d53b-9c31-43ed-bbcc-e78bba4b36fc" "user"="load-52" +timestamp="2026-10-20T10:29:50.384Z" level=info module="c2s" event="tls-established" connection="4f41fe2a-6607-469b-9461-dd0dfb059506" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.384Z" level=info module="c2s" event="sasl-features" connection="4f41fe2a-6607-469b-9461-dd0dfb059506" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.384Z" level=info module="c2s" event="tls-established" connection="79701a53-5c29-40f0-b163-4103ad99c94e" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.384Z" level=info module="c2s" event="sasl-features" connection="79701a53-5c29-40f0-b163-4103ad99c94e" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.384Z" level=info module="c2s" event="auth-success" connection="b8f0c281-3113-495e-bb54-8b0d8ea372d7" "user"="load-53" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.385Z" level=info module="c2s" event="tls-established" connection="bf4967ca-e30c-404f-9b96-6b7a98324f1d" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.385Z" level=info module="c2s" event="sasl-features" connection="bf4967ca-e30c-404f-9b96-6b7a98324f1d" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.385Z" level=info module="c2s" event="auth-success" connection="dc57cc27-ca8a-47c7-a70d-bfb60f349253" "user"="load-51" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.385Z" level=info module="c2s" event="tls-established" connection="f581d6b0-670e-41d7-90c9-f44faae12f81" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.385Z" level=info module="c2s" event="sasl-features" connection="f581d6b0-670e-41d7-90c9-f44faae12f81" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.385Z" level=info module="c2s" event="auth-success" connection="78245961-ef78-4d00-b526-6cec58c1039b" "user"="load-56" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.385Z" level=info module="c2s" event="auth-success" connection="df9192d3-1396-45d5-9144-c43774d0299e" "user"="load-55" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.385Z" level=info module="c2s" event="connection-open" connection="8dd05744-5762-447f-9a93-5a1a2a1b354c" "transport"="tcp" "peer"="127.0.0.1:33758" "host"="localhost" +timestamp="2026-10-20T10:29:50.386Z" level=info module="c2s" event="auth-success" connection="b1037bf8-68cb-4f5c-ad42-729d044a7c81" "user"="load-54" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.386Z" level=info module="c2s" event="sasl-attempt" connection="ca729468-8ba6-4e65-9f72-afe2c3b4db04" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.386Z" level=info module="c2s" event="auth-identity" connection="ca729468-8ba6-4e65-9f72-afe2c3b4db04" "user"="load-50" +timestamp="2026-10-20T10:29:50.386Z" level=info module="c2s" event="auth-success" connection="cbcdc56f-7712-4b4c-893d-ad420d8732d6" "user"="load-57" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.386Z" level=info module="c2s" event="sasl-attempt" connection="1e5a417e-1003-4a28-a274-8a7cb34462e7" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.386Z" level=info module="c2s" event="auth-identity" connection="1e5a417e-1003-4a28-a274-8a7cb34462e7" "user"="load-60" +timestamp="2026-10-20T10:29:50.386Z" level=info module="c2s" event="auth-success" connection="9288d53b-9c31-43ed-bbcc-e78bba4b36fc" "user"="load-52" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.387Z" level=info module="c2s" event="auth-success" connection="ca729468-8ba6-4e65-9f72-afe2c3b4db04" "user"="load-50" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.389Z" level=info module="c2s" event="connection-open" connection="1b7f6dbc-afca-4618-9ce8-98126d7b5183" "transport"="tcp" "peer"="127.0.0.1:33768" "host"="localhost" +timestamp="2026-10-20T10:29:50.389Z" level=info module="c2s" event="sasl-attempt" connection="4f41fe2a-6607-469b-9461-dd0dfb059506" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.389Z" level=info module="c2s" event="auth-identity" connection="4f41fe2a-6607-469b-9461-dd0dfb059506" "user"="load-62" +timestamp="2026-10-20T10:29:50.389Z" level=info module="c2s" event="sasl-attempt" connection="79701a53-5c29-40f0-b163-4103ad99c94e" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.389Z" level=info module="c2s" event="auth-identity" connection="79701a53-5c29-40f0-b163-4103ad99c94e" "user"="load-61" +timestamp="2026-10-20T10:29:50.389Z" level=info module="c2s" event="sasl-attempt" connection="bf4967ca-e30c-404f-9b96-6b7a98324f1d" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.389Z" level=info module="c2s" event="auth-identity" connection="bf4967ca-e30c-404f-9b96-6b7a98324f1d" "user"="load-58" +timestamp="2026-10-20T10:29:50.390Z" level=info module="c2s" event="auth-success" connection="4f41fe2a-6607-469b-9461-dd0dfb059506" "user"="load-62" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.390Z" level=info module="c2s" event="sasl-attempt" connection="f581d6b0-670e-41d7-90c9-f44faae12f81" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.390Z" level=info module="c2s" event="auth-identity" connection="f581d6b0-670e-41d7-90c9-f44faae12f81" "user"="load-59" +timestamp="2026-10-20T10:29:50.390Z" level=info module="c2s" event="auth-success" connection="bf4967ca-e30c-404f-9b96-6b7a98324f1d" "user"="load-58" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.390Z" level=info module="c2s" event="auth-success" connection="79701a53-5c29-40f0-b163-4103ad99c94e" "user"="load-61" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.390Z" level=info module="c2s" event="resource-bound" connection="dc57cc27-ca8a-47c7-a70d-bfb60f349253" "jid"="load-51@localhost/load-351" "mode"="legacy" +timestamp="2026-10-20T10:29:50.391Z" level=info module="c2s" event="resource-bound" connection="b8f0c281-3113-495e-bb54-8b0d8ea372d7" "jid"="load-53@localhost/load-353" "mode"="legacy" +timestamp="2026-10-20T10:29:50.391Z" level=info module="c2s" event="resource-bound" connection="78245961-ef78-4d00-b526-6cec58c1039b" "jid"="load-56@localhost/load-356" "mode"="legacy" +timestamp="2026-10-20T10:29:50.392Z" level=info module="c2s" event="resource-bound" connection="cbcdc56f-7712-4b4c-893d-ad420d8732d6" "jid"="load-57@localhost/load-357" "mode"="legacy" +timestamp="2026-10-20T10:29:50.392Z" level=info module="c2s" event="resource-bound" connection="df9192d3-1396-45d5-9144-c43774d0299e" "jid"="load-55@localhost/load-355" "mode"="legacy" +timestamp="2026-10-20T10:29:50.392Z" level=info module="c2s" event="resource-bound" connection="b1037bf8-68cb-4f5c-ad42-729d044a7c81" "jid"="load-54@localhost/load-354" "mode"="legacy" +timestamp="2026-10-20T10:29:50.392Z" level=info module="c2s" event="auth-success" connection="f581d6b0-670e-41d7-90c9-f44faae12f81" "user"="load-59" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.400Z" level=info module="c2s" event="auth-success" connection="1e5a417e-1003-4a28-a274-8a7cb34462e7" "user"="load-60" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.404Z" level=info module="c2s" event="resource-bound" connection="4f41fe2a-6607-469b-9461-dd0dfb059506" "jid"="load-62@localhost/load-362" "mode"="legacy" +timestamp="2026-10-20T10:29:50.405Z" level=info module="c2s" event="resource-bound" connection="79701a53-5c29-40f0-b163-4103ad99c94e" "jid"="load-61@localhost/load-361" "mode"="legacy" +timestamp="2026-10-20T10:29:50.405Z" level=info module="c2s" event="resource-bound" connection="9288d53b-9c31-43ed-bbcc-e78bba4b36fc" "jid"="load-52@localhost/load-352" "mode"="legacy" +timestamp="2026-10-20T10:29:50.405Z" level=info module="c2s" event="resource-bound" connection="bf4967ca-e30c-404f-9b96-6b7a98324f1d" "jid"="load-58@localhost/load-358" "mode"="legacy" +timestamp="2026-10-20T10:29:50.405Z" level=info module="c2s" event="resource-bound" connection="ca729468-8ba6-4e65-9f72-afe2c3b4db04" "jid"="load-50@localhost/load-350" "mode"="legacy" +timestamp="2026-10-20T10:29:50.405Z" level=info module="c2s" event="connection-open" connection="5aa7ca89-59e7-4c15-a4e4-b3023d65310a" "transport"="tcp" "peer"="127.0.0.1:33772" "host"="localhost" +timestamp="2026-10-20T10:29:50.450Z" level=info module="c2s" event="tls-established" connection="1b7f6dbc-afca-4618-9ce8-98126d7b5183" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.450Z" level=info module="c2s" event="sasl-features" connection="1b7f6dbc-afca-4618-9ce8-98126d7b5183" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.471Z" level=info module="c2s" event="resource-bound" connection="f581d6b0-670e-41d7-90c9-f44faae12f81" "jid"="load-59@localhost/load-359" "mode"="legacy" +timestamp="2026-10-20T10:29:50.471Z" level=info module="c2s" event="connection-open" connection="4456e2ea-d759-4645-a481-7bcb08cbbc10" "transport"="tcp" "peer"="127.0.0.1:33810" "host"="localhost" +timestamp="2026-10-20T10:29:50.471Z" level=info module="c2s" event="connection-open" connection="a63713ef-67aa-418c-bc94-b8c9ef689da3" "transport"="tcp" "peer"="127.0.0.1:33776" "host"="localhost" +timestamp="2026-10-20T10:29:50.471Z" level=info module="c2s" event="connection-open" connection="a074b7c3-c595-47be-aa4e-221e7a91a620" "transport"="tcp" "peer"="127.0.0.1:33778" "host"="localhost" +timestamp="2026-10-20T10:29:50.471Z" level=info module="c2s" event="connection-open" connection="ab4b933e-8a70-43de-af90-01c8602468f9" "transport"="tcp" "peer"="127.0.0.1:33790" "host"="localhost" +timestamp="2026-10-20T10:29:50.471Z" level=info module="c2s" event="connection-open" connection="c1a63a40-3374-4571-a8fd-78f224fc8560" "transport"="tcp" "peer"="127.0.0.1:33794" "host"="localhost" +timestamp="2026-10-20T10:29:50.471Z" level=info module="c2s" event="connection-open" connection="8e029576-d2a4-4be3-a4dc-8df7ef55af75" "transport"="tcp" "peer"="127.0.0.1:33796" "host"="localhost" +timestamp="2026-10-20T10:29:50.471Z" level=info module="c2s" event="connection-open" connection="b818d89a-b647-44cf-9590-910a7565850e" "transport"="tcp" "peer"="127.0.0.1:33802" "host"="localhost" +timestamp="2026-10-20T10:29:50.471Z" level=info module="c2s" event="connection-open" connection="60af5781-bfd0-4418-b7e4-eb7ae53692ad" "transport"="tcp" "peer"="127.0.0.1:33804" "host"="localhost" +timestamp="2026-10-20T10:29:50.471Z" level=info module="c2s" event="resource-bound" connection="1e5a417e-1003-4a28-a274-8a7cb34462e7" "jid"="load-60@localhost/load-360" "mode"="legacy" +timestamp="2026-10-20T10:29:50.471Z" level=info module="c2s" event="tls-established" connection="8dd05744-5762-447f-9a93-5a1a2a1b354c" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.471Z" level=info module="c2s" event="sasl-features" connection="8dd05744-5762-447f-9a93-5a1a2a1b354c" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.487Z" level=info module="c2s" event="sasl-attempt" connection="1b7f6dbc-afca-4618-9ce8-98126d7b5183" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.487Z" level=info module="c2s" event="auth-identity" connection="1b7f6dbc-afca-4618-9ce8-98126d7b5183" "user"="load-64" +timestamp="2026-10-20T10:29:50.492Z" level=info module="c2s" event="auth-success" connection="1b7f6dbc-afca-4618-9ce8-98126d7b5183" "user"="load-64" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.509Z" level=info module="c2s" event="sasl-attempt" connection="8dd05744-5762-447f-9a93-5a1a2a1b354c" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.509Z" level=info module="c2s" event="auth-identity" connection="8dd05744-5762-447f-9a93-5a1a2a1b354c" "user"="load-63" +timestamp="2026-10-20T10:29:50.513Z" level=info module="c2s" event="auth-success" connection="8dd05744-5762-447f-9a93-5a1a2a1b354c" "user"="load-63" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.514Z" level=info module="c2s" event="connection-open" connection="ff27e074-9597-4032-85c2-e66df4d2872b" "transport"="tcp" "peer"="127.0.0.1:33860" "host"="localhost" +timestamp="2026-10-20T10:29:50.517Z" level=info module="c2s" event="connection-open" connection="f88d4c37-2650-48fc-98d9-651feed15145" "transport"="tcp" "peer"="127.0.0.1:33822" "host"="localhost" +timestamp="2026-10-20T10:29:50.526Z" level=info module="c2s" event="connection-open" connection="860a85e7-97db-4dc2-b500-85fcb501e037" "transport"="tcp" "peer"="127.0.0.1:33826" "host"="localhost" +timestamp="2026-10-20T10:29:50.526Z" level=info module="c2s" event="connection-open" connection="10e3f791-c3d4-4b00-bc1b-96b40a292f3d" "transport"="tcp" "peer"="127.0.0.1:33824" "host"="localhost" +timestamp="2026-10-20T10:29:50.526Z" level=info module="c2s" event="connection-open" connection="b733743c-01ff-41e6-a336-6a95a5b0afb3" "transport"="tcp" "peer"="127.0.0.1:33842" "host"="localhost" +timestamp="2026-10-20T10:29:50.526Z" level=info module="c2s" event="connection-open" connection="5100ec61-b2b8-430f-9a06-fd35151b1413" "transport"="tcp" "peer"="127.0.0.1:33854" "host"="localhost" +timestamp="2026-10-20T10:29:50.527Z" level=info module="c2s" event="resource-bound" connection="1b7f6dbc-afca-4618-9ce8-98126d7b5183" "jid"="load-64@localhost/load-364" "mode"="legacy" +timestamp="2026-10-20T10:29:50.533Z" level=info module="c2s" event="tls-established" connection="5aa7ca89-59e7-4c15-a4e4-b3023d65310a" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.533Z" level=info module="c2s" event="sasl-features" connection="5aa7ca89-59e7-4c15-a4e4-b3023d65310a" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.534Z" level=info module="c2s" event="tls-established" connection="4456e2ea-d759-4645-a481-7bcb08cbbc10" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.534Z" level=info module="c2s" event="sasl-features" connection="4456e2ea-d759-4645-a481-7bcb08cbbc10" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.537Z" level=info module="c2s" event="connection-open" connection="5bd75a1c-5a14-4ed2-8539-ce95fe16866f" "transport"="tcp" "peer"="127.0.0.1:33876" "host"="localhost" +timestamp="2026-10-20T10:29:50.537Z" level=info module="c2s" event="resource-bound" connection="8dd05744-5762-447f-9a93-5a1a2a1b354c" "jid"="load-63@localhost/load-363" "mode"="legacy" +timestamp="2026-10-20T10:29:50.537Z" level=info module="c2s" event="tls-established" connection="8e029576-d2a4-4be3-a4dc-8df7ef55af75" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.538Z" level=info module="c2s" event="sasl-features" connection="8e029576-d2a4-4be3-a4dc-8df7ef55af75" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.538Z" level=info module="c2s" event="tls-established" connection="a074b7c3-c595-47be-aa4e-221e7a91a620" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.538Z" level=info module="c2s" event="sasl-features" connection="a074b7c3-c595-47be-aa4e-221e7a91a620" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.538Z" level=info module="c2s" event="tls-established" connection="60af5781-bfd0-4418-b7e4-eb7ae53692ad" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.538Z" level=info module="c2s" event="sasl-features" connection="60af5781-bfd0-4418-b7e4-eb7ae53692ad" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.538Z" level=info module="c2s" event="tls-established" connection="b818d89a-b647-44cf-9590-910a7565850e" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.538Z" level=info module="c2s" event="sasl-features" connection="b818d89a-b647-44cf-9590-910a7565850e" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.538Z" level=info module="c2s" event="sasl-attempt" connection="5aa7ca89-59e7-4c15-a4e4-b3023d65310a" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.538Z" level=info module="c2s" event="auth-identity" connection="5aa7ca89-59e7-4c15-a4e4-b3023d65310a" "user"="load-65" +timestamp="2026-10-20T10:29:50.538Z" level=info module="c2s" event="tls-established" connection="ab4b933e-8a70-43de-af90-01c8602468f9" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.538Z" level=info module="c2s" event="sasl-features" connection="ab4b933e-8a70-43de-af90-01c8602468f9" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.538Z" level=info module="c2s" event="tls-established" connection="c1a63a40-3374-4571-a8fd-78f224fc8560" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.538Z" level=info module="c2s" event="sasl-features" connection="c1a63a40-3374-4571-a8fd-78f224fc8560" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.538Z" level=info module="c2s" event="tls-established" connection="a63713ef-67aa-418c-bc94-b8c9ef689da3" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.538Z" level=info module="c2s" event="sasl-features" connection="a63713ef-67aa-418c-bc94-b8c9ef689da3" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.538Z" level=info module="c2s" event="sasl-attempt" connection="4456e2ea-d759-4645-a481-7bcb08cbbc10" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.538Z" level=info module="c2s" event="auth-identity" connection="4456e2ea-d759-4645-a481-7bcb08cbbc10" "user"="load-73" +timestamp="2026-10-20T10:29:50.539Z" level=info module="c2s" event="tls-established" connection="b733743c-01ff-41e6-a336-6a95a5b0afb3" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.539Z" level=info module="c2s" event="sasl-features" connection="b733743c-01ff-41e6-a336-6a95a5b0afb3" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.540Z" level=info module="c2s" event="auth-success" connection="4456e2ea-d759-4645-a481-7bcb08cbbc10" "user"="load-73" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.540Z" level=info module="c2s" event="sasl-attempt" connection="8e029576-d2a4-4be3-a4dc-8df7ef55af75" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.540Z" level=info module="c2s" event="auth-identity" connection="8e029576-d2a4-4be3-a4dc-8df7ef55af75" "user"="load-70" +timestamp="2026-10-20T10:29:50.541Z" level=info module="c2s" event="tls-established" connection="f88d4c37-2650-48fc-98d9-651feed15145" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.541Z" level=info module="c2s" event="sasl-features" connection="f88d4c37-2650-48fc-98d9-651feed15145" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.541Z" level=info module="c2s" event="auth-success" connection="5aa7ca89-59e7-4c15-a4e4-b3023d65310a" "user"="load-65" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.541Z" level=info module="c2s" event="sasl-attempt" connection="b818d89a-b647-44cf-9590-910a7565850e" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.541Z" level=info module="c2s" event="auth-identity" connection="b818d89a-b647-44cf-9590-910a7565850e" "user"="load-71" +timestamp="2026-10-20T10:29:50.541Z" level=info module="c2s" event="sasl-attempt" connection="a074b7c3-c595-47be-aa4e-221e7a91a620" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.541Z" level=info module="c2s" event="auth-identity" connection="a074b7c3-c595-47be-aa4e-221e7a91a620" "user"="load-67" +timestamp="2026-10-20T10:29:50.541Z" level=info module="c2s" event="sasl-attempt" connection="60af5781-bfd0-4418-b7e4-eb7ae53692ad" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.541Z" level=info module="c2s" event="auth-identity" connection="60af5781-bfd0-4418-b7e4-eb7ae53692ad" "user"="load-72" +timestamp="2026-10-20T10:29:50.541Z" level=info module="c2s" event="sasl-attempt" connection="a63713ef-67aa-418c-bc94-b8c9ef689da3" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.541Z" level=info module="c2s" event="auth-identity" connection="a63713ef-67aa-418c-bc94-b8c9ef689da3" "user"="load-66" +timestamp="2026-10-20T10:29:50.541Z" level=info module="c2s" event="sasl-attempt" connection="ab4b933e-8a70-43de-af90-01c8602468f9" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.541Z" level=info module="c2s" event="auth-identity" connection="ab4b933e-8a70-43de-af90-01c8602468f9" "user"="load-68" +timestamp="2026-10-20T10:29:50.541Z" level=info module="c2s" event="sasl-attempt" connection="c1a63a40-3374-4571-a8fd-78f224fc8560" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.541Z" level=info module="c2s" event="auth-identity" connection="c1a63a40-3374-4571-a8fd-78f224fc8560" "user"="load-69" +timestamp="2026-10-20T10:29:50.541Z" level=info module="c2s" event="tls-established" connection="5100ec61-b2b8-430f-9a06-fd35151b1413" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.541Z" level=info module="c2s" event="sasl-features" connection="5100ec61-b2b8-430f-9a06-fd35151b1413" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.542Z" level=info module="c2s" event="auth-success" connection="8e029576-d2a4-4be3-a4dc-8df7ef55af75" "user"="load-70" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.542Z" level=info module="c2s" event="tls-established" connection="10e3f791-c3d4-4b00-bc1b-96b40a292f3d" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.542Z" level=info module="c2s" event="sasl-features" connection="10e3f791-c3d4-4b00-bc1b-96b40a292f3d" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.543Z" level=info module="c2s" event="tls-established" connection="860a85e7-97db-4dc2-b500-85fcb501e037" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.543Z" level=info module="c2s" event="sasl-features" connection="860a85e7-97db-4dc2-b500-85fcb501e037" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.543Z" level=info module="c2s" event="auth-success" connection="60af5781-bfd0-4418-b7e4-eb7ae53692ad" "user"="load-72" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.543Z" level=info module="c2s" event="auth-success" connection="b818d89a-b647-44cf-9590-910a7565850e" "user"="load-71" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.543Z" level=info module="c2s" event="auth-success" connection="ab4b933e-8a70-43de-af90-01c8602468f9" "user"="load-68" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.543Z" level=info module="c2s" event="auth-success" connection="a63713ef-67aa-418c-bc94-b8c9ef689da3" "user"="load-66" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.543Z" level=info module="c2s" event="sasl-attempt" connection="b733743c-01ff-41e6-a336-6a95a5b0afb3" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.543Z" level=info module="c2s" event="auth-identity" connection="b733743c-01ff-41e6-a336-6a95a5b0afb3" "user"="load-77" +timestamp="2026-10-20T10:29:50.544Z" level=info module="c2s" event="sasl-attempt" connection="f88d4c37-2650-48fc-98d9-651feed15145" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.544Z" level=info module="c2s" event="auth-identity" connection="f88d4c37-2650-48fc-98d9-651feed15145" "user"="load-74" +timestamp="2026-10-20T10:29:50.544Z" level=info module="c2s" event="tls-established" connection="ff27e074-9597-4032-85c2-e66df4d2872b" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.544Z" level=info module="c2s" event="sasl-features" connection="ff27e074-9597-4032-85c2-e66df4d2872b" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.544Z" level=info module="c2s" event="auth-success" connection="c1a63a40-3374-4571-a8fd-78f224fc8560" "user"="load-69" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.544Z" level=info module="c2s" event="resource-bound" connection="5aa7ca89-59e7-4c15-a4e4-b3023d65310a" "jid"="load-65@localhost/load-365" "mode"="legacy" +timestamp="2026-10-20T10:29:50.544Z" level=info module="c2s" event="resource-bound" connection="8e029576-d2a4-4be3-a4dc-8df7ef55af75" "jid"="load-70@localhost/load-370" "mode"="legacy" +timestamp="2026-10-20T10:29:50.544Z" level=info module="c2s" event="sasl-attempt" connection="5100ec61-b2b8-430f-9a06-fd35151b1413" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.544Z" level=info module="c2s" event="auth-identity" connection="5100ec61-b2b8-430f-9a06-fd35151b1413" "user"="load-78" +timestamp="2026-10-20T10:29:50.544Z" level=info module="c2s" event="sasl-attempt" connection="10e3f791-c3d4-4b00-bc1b-96b40a292f3d" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.544Z" level=info module="c2s" event="auth-identity" connection="10e3f791-c3d4-4b00-bc1b-96b40a292f3d" "user"="load-75" +timestamp="2026-10-20T10:29:50.545Z" level=info module="c2s" event="resource-bound" connection="4456e2ea-d759-4645-a481-7bcb08cbbc10" "jid"="load-73@localhost/load-373" "mode"="legacy" +timestamp="2026-10-20T10:29:50.545Z" level=info module="c2s" event="sasl-attempt" connection="860a85e7-97db-4dc2-b500-85fcb501e037" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.545Z" level=info module="c2s" event="auth-identity" connection="860a85e7-97db-4dc2-b500-85fcb501e037" "user"="load-76" +timestamp="2026-10-20T10:29:50.545Z" level=info module="c2s" event="auth-success" connection="b733743c-01ff-41e6-a336-6a95a5b0afb3" "user"="load-77" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.545Z" level=info module="c2s" event="auth-success" connection="f88d4c37-2650-48fc-98d9-651feed15145" "user"="load-74" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.545Z" level=info module="c2s" event="auth-success" connection="a074b7c3-c595-47be-aa4e-221e7a91a620" "user"="load-67" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.546Z" level=info module="c2s" event="resource-bound" connection="60af5781-bfd0-4418-b7e4-eb7ae53692ad" "jid"="load-72@localhost/load-372" "mode"="legacy" +timestamp="2026-10-20T10:29:50.546Z" level=info module="c2s" event="tls-established" connection="5bd75a1c-5a14-4ed2-8539-ce95fe16866f" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.546Z" level=info module="c2s" event="sasl-features" connection="5bd75a1c-5a14-4ed2-8539-ce95fe16866f" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.546Z" level=info module="c2s" event="resource-bound" connection="b818d89a-b647-44cf-9590-910a7565850e" "jid"="load-71@localhost/load-371" "mode"="legacy" +timestamp="2026-10-20T10:29:50.546Z" level=info module="c2s" event="auth-success" connection="10e3f791-c3d4-4b00-bc1b-96b40a292f3d" "user"="load-75" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.546Z" level=info module="c2s" event="sasl-attempt" connection="ff27e074-9597-4032-85c2-e66df4d2872b" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.546Z" level=info module="c2s" event="auth-identity" connection="ff27e074-9597-4032-85c2-e66df4d2872b" "user"="load-79" +timestamp="2026-10-20T10:29:50.546Z" level=info module="c2s" event="auth-success" connection="5100ec61-b2b8-430f-9a06-fd35151b1413" "user"="load-78" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.546Z" level=info module="c2s" event="auth-success" connection="860a85e7-97db-4dc2-b500-85fcb501e037" "user"="load-76" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.548Z" level=info module="c2s" event="auth-success" connection="ff27e074-9597-4032-85c2-e66df4d2872b" "user"="load-79" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.556Z" level=info module="c2s" event="resource-bound" connection="ab4b933e-8a70-43de-af90-01c8602468f9" "jid"="load-68@localhost/load-368" "mode"="legacy" +timestamp="2026-10-20T10:29:50.556Z" level=info module="c2s" event="connection-open" connection="827444c0-cb6d-4d40-bf9f-b468b6f0190d" "transport"="tcp" "peer"="127.0.0.1:33890" "host"="localhost" +timestamp="2026-10-20T10:29:50.562Z" level=info module="c2s" event="resource-bound" connection="c1a63a40-3374-4571-a8fd-78f224fc8560" "jid"="load-69@localhost/load-369" "mode"="legacy" +timestamp="2026-10-20T10:29:50.562Z" level=info module="c2s" event="sasl-attempt" connection="5bd75a1c-5a14-4ed2-8539-ce95fe16866f" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.562Z" level=info module="c2s" event="auth-identity" connection="5bd75a1c-5a14-4ed2-8539-ce95fe16866f" "user"="load-80" +timestamp="2026-10-20T10:29:50.562Z" level=info module="c2s" event="resource-bound" connection="a63713ef-67aa-418c-bc94-b8c9ef689da3" "jid"="load-66@localhost/load-366" "mode"="legacy" +timestamp="2026-10-20T10:29:50.562Z" level=info module="c2s" event="resource-bound" connection="10e3f791-c3d4-4b00-bc1b-96b40a292f3d" "jid"="load-75@localhost/load-375" "mode"="legacy" +timestamp="2026-10-20T10:29:50.576Z" level=info module="c2s" event="auth-success" connection="5bd75a1c-5a14-4ed2-8539-ce95fe16866f" "user"="load-80" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.577Z" level=info module="c2s" event="resource-bound" connection="f88d4c37-2650-48fc-98d9-651feed15145" "jid"="load-74@localhost/load-374" "mode"="legacy" +timestamp="2026-10-20T10:29:50.577Z" level=info module="c2s" event="resource-bound" connection="ff27e074-9597-4032-85c2-e66df4d2872b" "jid"="load-79@localhost/load-379" "mode"="legacy" +timestamp="2026-10-20T10:29:50.589Z" level=info module="c2s" event="resource-bound" connection="b733743c-01ff-41e6-a336-6a95a5b0afb3" "jid"="load-77@localhost/load-377" "mode"="legacy" +timestamp="2026-10-20T10:29:50.593Z" level=info module="c2s" event="connection-open" connection="c96bb93a-2e49-411e-aa2f-db46a71b58c6" "transport"="tcp" "peer"="127.0.0.1:33910" "host"="localhost" +timestamp="2026-10-20T10:29:50.601Z" level=info module="c2s" event="resource-bound" connection="a074b7c3-c595-47be-aa4e-221e7a91a620" "jid"="load-67@localhost/load-367" "mode"="legacy" +timestamp="2026-10-20T10:29:50.601Z" level=info module="c2s" event="connection-open" connection="ce839c6e-98fa-4e1e-87e7-84b196d375af" "transport"="tcp" "peer"="127.0.0.1:33902" "host"="localhost" +timestamp="2026-10-20T10:29:50.605Z" level=info module="c2s" event="resource-bound" connection="5100ec61-b2b8-430f-9a06-fd35151b1413" "jid"="load-78@localhost/load-378" "mode"="legacy" +timestamp="2026-10-20T10:29:50.606Z" level=info module="c2s" event="resource-bound" connection="860a85e7-97db-4dc2-b500-85fcb501e037" "jid"="load-76@localhost/load-376" "mode"="legacy" +timestamp="2026-10-20T10:29:50.627Z" level=info module="c2s" event="connection-open" connection="4fde59c6-1f35-484b-a400-312a0e55254e" "transport"="tcp" "peer"="127.0.0.1:33988" "host"="localhost" +timestamp="2026-10-20T10:29:50.627Z" level=info module="c2s" event="connection-open" connection="e4310a70-7fd3-47d3-9e12-9ce3590afbed" "transport"="tcp" "peer"="127.0.0.1:33924" "host"="localhost" +timestamp="2026-10-20T10:29:50.627Z" level=info module="c2s" event="connection-open" connection="11a22b3a-8397-4fa0-8abe-b569de7d1904" "transport"="tcp" "peer"="127.0.0.1:33934" "host"="localhost" +timestamp="2026-10-20T10:29:50.627Z" level=info module="c2s" event="connection-open" connection="4b24117b-7b18-4d29-a4a2-78c10d62573f" "transport"="tcp" "peer"="127.0.0.1:33950" "host"="localhost" +timestamp="2026-10-20T10:29:50.627Z" level=info module="c2s" event="connection-open" connection="4faf2e66-fc0c-46df-8b0a-a8399ebc0596" "transport"="tcp" "peer"="127.0.0.1:33964" "host"="localhost" +timestamp="2026-10-20T10:29:50.627Z" level=info module="c2s" event="connection-open" connection="48e02f41-7573-440a-8ed4-60fe872e5ba3" "transport"="tcp" "peer"="127.0.0.1:33978" "host"="localhost" +timestamp="2026-10-20T10:29:50.649Z" level=info module="c2s" event="resource-bound" connection="5bd75a1c-5a14-4ed2-8539-ce95fe16866f" "jid"="load-80@localhost/load-380" "mode"="legacy" +timestamp="2026-10-20T10:29:50.653Z" level=info module="c2s" event="connection-open" connection="2084025d-f35e-4937-8f0e-be6267ad55ab" "transport"="tcp" "peer"="127.0.0.1:34004" "host"="localhost" +timestamp="2026-10-20T10:29:50.666Z" level=info module="c2s" event="connection-open" connection="bd3e1484-66dd-4c2d-bd49-cff92d69ae53" "transport"="tcp" "peer"="127.0.0.1:33994" "host"="localhost" +timestamp="2026-10-20T10:29:50.687Z" level=info module="c2s" event="connection-open" connection="e057916d-c63e-4b70-8876-c5dc4c916a38" "transport"="tcp" "peer"="127.0.0.1:34038" "host"="localhost" +timestamp="2026-10-20T10:29:50.687Z" level=info module="c2s" event="connection-open" connection="15267f67-7069-4828-9aba-67a2fc584a36" "transport"="tcp" "peer"="127.0.0.1:34012" "host"="localhost" +timestamp="2026-10-20T10:29:50.687Z" level=info module="c2s" event="connection-open" connection="b50cb6b9-fa1d-4de7-876d-d88c086224f5" "transport"="tcp" "peer"="127.0.0.1:34026" "host"="localhost" +timestamp="2026-10-20T10:29:50.695Z" level=info module="c2s" event="tls-established" connection="c96bb93a-2e49-411e-aa2f-db46a71b58c6" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.695Z" level=info module="c2s" event="sasl-features" connection="c96bb93a-2e49-411e-aa2f-db46a71b58c6" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.696Z" level=info module="c2s" event="tls-established" connection="827444c0-cb6d-4d40-bf9f-b468b6f0190d" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.696Z" level=info module="c2s" event="sasl-features" connection="827444c0-cb6d-4d40-bf9f-b468b6f0190d" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.697Z" level=info module="c2s" event="tls-established" connection="ce839c6e-98fa-4e1e-87e7-84b196d375af" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.697Z" level=info module="c2s" event="sasl-features" connection="ce839c6e-98fa-4e1e-87e7-84b196d375af" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.697Z" level=info module="c2s" event="sasl-attempt" connection="c96bb93a-2e49-411e-aa2f-db46a71b58c6" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.697Z" level=info module="c2s" event="auth-identity" connection="c96bb93a-2e49-411e-aa2f-db46a71b58c6" "user"="load-83" +timestamp="2026-10-20T10:29:50.697Z" level=info module="c2s" event="sasl-attempt" connection="827444c0-cb6d-4d40-bf9f-b468b6f0190d" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.697Z" level=info module="c2s" event="auth-identity" connection="827444c0-cb6d-4d40-bf9f-b468b6f0190d" "user"="load-81" +timestamp="2026-10-20T10:29:50.697Z" level=info module="c2s" event="tls-established" connection="4faf2e66-fc0c-46df-8b0a-a8399ebc0596" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.697Z" level=info module="c2s" event="sasl-features" connection="4faf2e66-fc0c-46df-8b0a-a8399ebc0596" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.698Z" level=info module="c2s" event="tls-established" connection="48e02f41-7573-440a-8ed4-60fe872e5ba3" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.698Z" level=info module="c2s" event="sasl-features" connection="48e02f41-7573-440a-8ed4-60fe872e5ba3" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.698Z" level=info module="c2s" event="auth-success" connection="c96bb93a-2e49-411e-aa2f-db46a71b58c6" "user"="load-83" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.698Z" level=info module="c2s" event="auth-success" connection="827444c0-cb6d-4d40-bf9f-b468b6f0190d" "user"="load-81" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.699Z" level=info module="c2s" event="tls-established" connection="4fde59c6-1f35-484b-a400-312a0e55254e" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.699Z" level=info module="c2s" event="sasl-features" connection="4fde59c6-1f35-484b-a400-312a0e55254e" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.700Z" level=info module="c2s" event="tls-established" connection="11a22b3a-8397-4fa0-8abe-b569de7d1904" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.700Z" level=info module="c2s" event="sasl-features" connection="11a22b3a-8397-4fa0-8abe-b569de7d1904" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.700Z" level=info module="c2s" event="tls-established" connection="e4310a70-7fd3-47d3-9e12-9ce3590afbed" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.700Z" level=info module="c2s" event="sasl-features" connection="e4310a70-7fd3-47d3-9e12-9ce3590afbed" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.700Z" level=info module="c2s" event="tls-established" connection="4b24117b-7b18-4d29-a4a2-78c10d62573f" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.700Z" level=info module="c2s" event="sasl-features" connection="4b24117b-7b18-4d29-a4a2-78c10d62573f" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.702Z" level=info module="c2s" event="sasl-attempt" connection="4faf2e66-fc0c-46df-8b0a-a8399ebc0596" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.702Z" level=info module="c2s" event="auth-identity" connection="4faf2e66-fc0c-46df-8b0a-a8399ebc0596" "user"="load-87" +timestamp="2026-10-20T10:29:50.703Z" level=info module="c2s" event="sasl-attempt" connection="ce839c6e-98fa-4e1e-87e7-84b196d375af" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.703Z" level=info module="c2s" event="auth-identity" connection="ce839c6e-98fa-4e1e-87e7-84b196d375af" "user"="load-82" +timestamp="2026-10-20T10:29:50.703Z" level=info module="c2s" event="tls-established" connection="bd3e1484-66dd-4c2d-bd49-cff92d69ae53" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.704Z" level=info module="c2s" event="sasl-features" connection="bd3e1484-66dd-4c2d-bd49-cff92d69ae53" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.704Z" level=info module="c2s" event="tls-established" connection="2084025d-f35e-4937-8f0e-be6267ad55ab" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.704Z" level=info module="c2s" event="sasl-features" connection="2084025d-f35e-4937-8f0e-be6267ad55ab" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.704Z" level=info module="c2s" event="auth-success" connection="ce839c6e-98fa-4e1e-87e7-84b196d375af" "user"="load-82" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.704Z" level=info module="c2s" event="sasl-attempt" connection="4fde59c6-1f35-484b-a400-312a0e55254e" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.704Z" level=info module="c2s" event="auth-identity" connection="4fde59c6-1f35-484b-a400-312a0e55254e" "user"="load-89" +timestamp="2026-10-20T10:29:50.704Z" level=info module="c2s" event="sasl-attempt" connection="11a22b3a-8397-4fa0-8abe-b569de7d1904" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.704Z" level=info module="c2s" event="auth-identity" connection="11a22b3a-8397-4fa0-8abe-b569de7d1904" "user"="load-85" +timestamp="2026-10-20T10:29:50.704Z" level=info module="c2s" event="sasl-attempt" connection="e4310a70-7fd3-47d3-9e12-9ce3590afbed" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.704Z" level=info module="c2s" event="auth-identity" connection="e4310a70-7fd3-47d3-9e12-9ce3590afbed" "user"="load-84" +timestamp="2026-10-20T10:29:50.704Z" level=info module="c2s" event="sasl-attempt" connection="4b24117b-7b18-4d29-a4a2-78c10d62573f" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.704Z" level=info module="c2s" event="auth-identity" connection="4b24117b-7b18-4d29-a4a2-78c10d62573f" "user"="load-86" +timestamp="2026-10-20T10:29:50.704Z" level=info module="c2s" event="sasl-attempt" connection="48e02f41-7573-440a-8ed4-60fe872e5ba3" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.704Z" level=info module="c2s" event="auth-identity" connection="48e02f41-7573-440a-8ed4-60fe872e5ba3" "user"="load-88" +timestamp="2026-10-20T10:29:50.705Z" level=info module="c2s" event="auth-success" connection="4faf2e66-fc0c-46df-8b0a-a8399ebc0596" "user"="load-87" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.706Z" level=info module="c2s" event="auth-success" connection="4fde59c6-1f35-484b-a400-312a0e55254e" "user"="load-89" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.706Z" level=info module="c2s" event="auth-success" connection="11a22b3a-8397-4fa0-8abe-b569de7d1904" "user"="load-85" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.706Z" level=info module="c2s" event="auth-success" connection="4b24117b-7b18-4d29-a4a2-78c10d62573f" "user"="load-86" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.706Z" level=info module="c2s" event="auth-success" connection="e4310a70-7fd3-47d3-9e12-9ce3590afbed" "user"="load-84" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.706Z" level=info module="c2s" event="connection-open" connection="419ef2ce-8e6a-4927-9003-33fbc1d76c64" "transport"="tcp" "peer"="127.0.0.1:34044" "host"="localhost" +timestamp="2026-10-20T10:29:50.706Z" level=info module="c2s" event="auth-success" connection="48e02f41-7573-440a-8ed4-60fe872e5ba3" "user"="load-88" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.707Z" level=info module="c2s" event="resource-bound" connection="c96bb93a-2e49-411e-aa2f-db46a71b58c6" "jid"="load-83@localhost/load-383" "mode"="legacy" +timestamp="2026-10-20T10:29:50.707Z" level=info module="c2s" event="connection-open" connection="7cf53e29-424c-4c5a-9328-b4f2c5713dfe" "transport"="tcp" "peer"="127.0.0.1:34060" "host"="localhost" +timestamp="2026-10-20T10:29:50.707Z" level=info module="c2s" event="tls-established" connection="b50cb6b9-fa1d-4de7-876d-d88c086224f5" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.707Z" level=info module="c2s" event="sasl-features" connection="b50cb6b9-fa1d-4de7-876d-d88c086224f5" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.708Z" level=info module="c2s" event="tls-established" connection="15267f67-7069-4828-9aba-67a2fc584a36" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.708Z" level=info module="c2s" event="sasl-features" connection="15267f67-7069-4828-9aba-67a2fc584a36" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.708Z" level=info module="c2s" event="sasl-attempt" connection="2084025d-f35e-4937-8f0e-be6267ad55ab" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.708Z" level=info module="c2s" event="auth-identity" connection="2084025d-f35e-4937-8f0e-be6267ad55ab" "user"="load-91" +timestamp="2026-10-20T10:29:50.708Z" level=info module="c2s" event="resource-bound" connection="827444c0-cb6d-4d40-bf9f-b468b6f0190d" "jid"="load-81@localhost/load-381" "mode"="legacy" +timestamp="2026-10-20T10:29:50.708Z" level=info module="c2s" event="sasl-attempt" connection="bd3e1484-66dd-4c2d-bd49-cff92d69ae53" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.708Z" level=info module="c2s" event="auth-identity" connection="bd3e1484-66dd-4c2d-bd49-cff92d69ae53" "user"="load-90" +timestamp="2026-10-20T10:29:50.708Z" level=info module="c2s" event="resource-bound" connection="ce839c6e-98fa-4e1e-87e7-84b196d375af" "jid"="load-82@localhost/load-382" "mode"="legacy" +timestamp="2026-10-20T10:29:50.709Z" level=info module="c2s" event="tls-established" connection="e057916d-c63e-4b70-8876-c5dc4c916a38" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.709Z" level=info module="c2s" event="sasl-features" connection="e057916d-c63e-4b70-8876-c5dc4c916a38" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.709Z" level=info module="c2s" event="auth-success" connection="2084025d-f35e-4937-8f0e-be6267ad55ab" "user"="load-91" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.710Z" level=info module="c2s" event="resource-bound" connection="4faf2e66-fc0c-46df-8b0a-a8399ebc0596" "jid"="load-87@localhost/load-387" "mode"="legacy" +timestamp="2026-10-20T10:29:50.710Z" level=info module="c2s" event="auth-success" connection="bd3e1484-66dd-4c2d-bd49-cff92d69ae53" "user"="load-90" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.710Z" level=info module="c2s" event="sasl-attempt" connection="b50cb6b9-fa1d-4de7-876d-d88c086224f5" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.710Z" level=info module="c2s" event="auth-identity" connection="b50cb6b9-fa1d-4de7-876d-d88c086224f5" "user"="load-93" +timestamp="2026-10-20T10:29:50.710Z" level=info module="c2s" event="sasl-attempt" connection="e057916d-c63e-4b70-8876-c5dc4c916a38" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.710Z" level=info module="c2s" event="auth-identity" connection="e057916d-c63e-4b70-8876-c5dc4c916a38" "user"="load-94" +timestamp="2026-10-20T10:29:50.710Z" level=info module="c2s" event="sasl-attempt" connection="15267f67-7069-4828-9aba-67a2fc584a36" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.710Z" level=info module="c2s" event="auth-identity" connection="15267f67-7069-4828-9aba-67a2fc584a36" "user"="load-92" +timestamp="2026-10-20T10:29:50.710Z" level=info module="c2s" event="resource-bound" connection="4fde59c6-1f35-484b-a400-312a0e55254e" "jid"="load-89@localhost/load-389" "mode"="legacy" +timestamp="2026-10-20T10:29:50.710Z" level=info module="c2s" event="resource-bound" connection="11a22b3a-8397-4fa0-8abe-b569de7d1904" "jid"="load-85@localhost/load-385" "mode"="legacy" +timestamp="2026-10-20T10:29:50.710Z" level=info module="c2s" event="resource-bound" connection="4b24117b-7b18-4d29-a4a2-78c10d62573f" "jid"="load-86@localhost/load-386" "mode"="legacy" +timestamp="2026-10-20T10:29:50.710Z" level=info module="c2s" event="resource-bound" connection="e4310a70-7fd3-47d3-9e12-9ce3590afbed" "jid"="load-84@localhost/load-384" "mode"="legacy" +timestamp="2026-10-20T10:29:50.719Z" level=info module="c2s" event="auth-success" connection="b50cb6b9-fa1d-4de7-876d-d88c086224f5" "user"="load-93" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.719Z" level=info module="c2s" event="auth-success" connection="e057916d-c63e-4b70-8876-c5dc4c916a38" "user"="load-94" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.719Z" level=info module="c2s" event="auth-success" connection="15267f67-7069-4828-9aba-67a2fc584a36" "user"="load-92" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.722Z" level=info module="c2s" event="resource-bound" connection="48e02f41-7573-440a-8ed4-60fe872e5ba3" "jid"="load-88@localhost/load-388" "mode"="legacy" +timestamp="2026-10-20T10:29:50.741Z" level=info module="c2s" event="connection-open" connection="0820aee8-b3ff-49f2-9af5-86affc6f26fa" "transport"="tcp" "peer"="127.0.0.1:34098" "host"="localhost" +timestamp="2026-10-20T10:29:50.741Z" level=info module="c2s" event="connection-open" connection="eb3757a2-afc1-493e-9e4f-14dd264c1276" "transport"="tcp" "peer"="127.0.0.1:34062" "host"="localhost" +timestamp="2026-10-20T10:29:50.741Z" level=info module="c2s" event="connection-open" connection="22f568e5-5357-4bf8-849c-ad2d92240887" "transport"="tcp" "peer"="127.0.0.1:34066" "host"="localhost" +timestamp="2026-10-20T10:29:50.741Z" level=info module="c2s" event="connection-open" connection="8fa19d9b-add9-4e51-bf49-ecb50085e57d" "transport"="tcp" "peer"="127.0.0.1:34082" "host"="localhost" +timestamp="2026-10-20T10:29:50.768Z" level=info module="c2s" event="resource-bound" connection="b50cb6b9-fa1d-4de7-876d-d88c086224f5" "jid"="load-93@localhost/load-393" "mode"="legacy" +timestamp="2026-10-20T10:29:50.769Z" level=info module="c2s" event="resource-bound" connection="e057916d-c63e-4b70-8876-c5dc4c916a38" "jid"="load-94@localhost/load-394" "mode"="legacy" +timestamp="2026-10-20T10:29:50.769Z" level=info module="c2s" event="resource-bound" connection="bd3e1484-66dd-4c2d-bd49-cff92d69ae53" "jid"="load-90@localhost/load-390" "mode"="legacy" +timestamp="2026-10-20T10:29:50.769Z" level=info module="c2s" event="resource-bound" connection="2084025d-f35e-4937-8f0e-be6267ad55ab" "jid"="load-91@localhost/load-391" "mode"="legacy" +timestamp="2026-10-20T10:29:50.798Z" level=info module="c2s" event="resource-bound" connection="15267f67-7069-4828-9aba-67a2fc584a36" "jid"="load-92@localhost/load-392" "mode"="legacy" +timestamp="2026-10-20T10:29:50.806Z" level=info module="c2s" event="tls-established" connection="7cf53e29-424c-4c5a-9328-b4f2c5713dfe" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.806Z" level=info module="c2s" event="sasl-features" connection="7cf53e29-424c-4c5a-9328-b4f2c5713dfe" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.806Z" level=info module="c2s" event="connection-open" connection="f845498e-2387-4fb0-b3a9-7e65f5a344b1" "transport"="tcp" "peer"="127.0.0.1:34178" "host"="localhost" +timestamp="2026-10-20T10:29:50.806Z" level=info module="c2s" event="connection-open" connection="639f61dc-a947-45b4-bc85-c088d3b0cef1" "transport"="tcp" "peer"="127.0.0.1:34102" "host"="localhost" +timestamp="2026-10-20T10:29:50.806Z" level=info module="c2s" event="connection-open" connection="0c98f99e-cd29-404b-9715-484e8a099de3" "transport"="tcp" "peer"="127.0.0.1:34116" "host"="localhost" +timestamp="2026-10-20T10:29:50.806Z" level=info module="c2s" event="connection-open" connection="cc30b40a-1b23-4580-bda4-9a397c10cbeb" "transport"="tcp" "peer"="127.0.0.1:34132" "host"="localhost" +timestamp="2026-10-20T10:29:50.806Z" level=info module="c2s" event="connection-open" connection="8e689912-e806-4b27-b5c6-6aaecc8dc28b" "transport"="tcp" "peer"="127.0.0.1:34148" "host"="localhost" +timestamp="2026-10-20T10:29:50.806Z" level=info module="c2s" event="connection-open" connection="cea384e9-0a77-4044-bb15-423aa392746e" "transport"="tcp" "peer"="127.0.0.1:34152" "host"="localhost" +timestamp="2026-10-20T10:29:50.806Z" level=info module="c2s" event="connection-open" connection="c3e1772b-addc-4212-8bb0-6478636bf078" "transport"="tcp" "peer"="127.0.0.1:34158" "host"="localhost" +timestamp="2026-10-20T10:29:50.806Z" level=info module="c2s" event="connection-open" connection="16b34fdf-7f13-45e0-88e4-a835eb1f829e" "transport"="tcp" "peer"="127.0.0.1:34162" "host"="localhost" +timestamp="2026-10-20T10:29:50.806Z" level=info module="c2s" event="sasl-attempt" connection="7cf53e29-424c-4c5a-9328-b4f2c5713dfe" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.806Z" level=info module="c2s" event="auth-identity" connection="7cf53e29-424c-4c5a-9328-b4f2c5713dfe" "user"="load-96" +timestamp="2026-10-20T10:29:50.816Z" level=info module="c2s" event="auth-success" connection="7cf53e29-424c-4c5a-9328-b4f2c5713dfe" "user"="load-96" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.822Z" level=info module="c2s" event="tls-established" connection="419ef2ce-8e6a-4927-9003-33fbc1d76c64" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.822Z" level=info module="c2s" event="sasl-features" connection="419ef2ce-8e6a-4927-9003-33fbc1d76c64" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.825Z" level=info module="c2s" event="sasl-attempt" connection="419ef2ce-8e6a-4927-9003-33fbc1d76c64" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.825Z" level=info module="c2s" event="auth-identity" connection="419ef2ce-8e6a-4927-9003-33fbc1d76c64" "user"="load-95" +timestamp="2026-10-20T10:29:50.825Z" level=info module="c2s" event="tls-established" connection="0820aee8-b3ff-49f2-9af5-86affc6f26fa" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.825Z" level=info module="c2s" event="sasl-features" connection="0820aee8-b3ff-49f2-9af5-86affc6f26fa" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.827Z" level=info module="c2s" event="auth-success" connection="419ef2ce-8e6a-4927-9003-33fbc1d76c64" "user"="load-95" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.833Z" level=info module="c2s" event="tls-established" connection="eb3757a2-afc1-493e-9e4f-14dd264c1276" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.833Z" level=info module="c2s" event="sasl-features" connection="eb3757a2-afc1-493e-9e4f-14dd264c1276" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.833Z" level=info module="c2s" event="connection-open" connection="27f00656-3564-4a62-8b7c-485630bbb12b" "transport"="tcp" "peer"="127.0.0.1:34182" "host"="localhost" +timestamp="2026-10-20T10:29:50.833Z" level=info module="c2s" event="tls-established" connection="8fa19d9b-add9-4e51-bf49-ecb50085e57d" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.833Z" level=info module="c2s" event="sasl-features" connection="8fa19d9b-add9-4e51-bf49-ecb50085e57d" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.833Z" level=info module="c2s" event="tls-established" connection="22f568e5-5357-4bf8-849c-ad2d92240887" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.833Z" level=info module="c2s" event="sasl-features" connection="22f568e5-5357-4bf8-849c-ad2d92240887" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.833Z" level=info module="c2s" event="sasl-attempt" connection="0820aee8-b3ff-49f2-9af5-86affc6f26fa" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.833Z" level=info module="c2s" event="auth-identity" connection="0820aee8-b3ff-49f2-9af5-86affc6f26fa" "user"="load-0" +timestamp="2026-10-20T10:29:50.835Z" level=info module="c2s" event="auth-success" connection="0820aee8-b3ff-49f2-9af5-86affc6f26fa" "user"="load-0" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.835Z" level=info module="c2s" event="resource-bound" connection="7cf53e29-424c-4c5a-9328-b4f2c5713dfe" "jid"="load-96@localhost/load-396" "mode"="legacy" +timestamp="2026-10-20T10:29:50.836Z" level=info module="c2s" event="tls-established" connection="0c98f99e-cd29-404b-9715-484e8a099de3" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.836Z" level=info module="c2s" event="sasl-features" connection="0c98f99e-cd29-404b-9715-484e8a099de3" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.836Z" level=info module="c2s" event="sasl-attempt" connection="eb3757a2-afc1-493e-9e4f-14dd264c1276" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.836Z" level=info module="c2s" event="auth-identity" connection="eb3757a2-afc1-493e-9e4f-14dd264c1276" "user"="load-97" +timestamp="2026-10-20T10:29:50.836Z" level=info module="c2s" event="sasl-attempt" connection="8fa19d9b-add9-4e51-bf49-ecb50085e57d" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.836Z" level=info module="c2s" event="auth-identity" connection="8fa19d9b-add9-4e51-bf49-ecb50085e57d" "user"="load-99" +timestamp="2026-10-20T10:29:50.836Z" level=info module="c2s" event="sasl-attempt" connection="22f568e5-5357-4bf8-849c-ad2d92240887" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.836Z" level=info module="c2s" event="auth-identity" connection="22f568e5-5357-4bf8-849c-ad2d92240887" "user"="load-98" +timestamp="2026-10-20T10:29:50.836Z" level=info module="c2s" event="tls-established" connection="cea384e9-0a77-4044-bb15-423aa392746e" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.836Z" level=info module="c2s" event="sasl-features" connection="cea384e9-0a77-4044-bb15-423aa392746e" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.836Z" level=info module="c2s" event="tls-established" connection="c3e1772b-addc-4212-8bb0-6478636bf078" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.836Z" level=info module="c2s" event="sasl-features" connection="c3e1772b-addc-4212-8bb0-6478636bf078" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.836Z" level=info module="c2s" event="tls-established" connection="cc30b40a-1b23-4580-bda4-9a397c10cbeb" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.836Z" level=info module="c2s" event="sasl-features" connection="cc30b40a-1b23-4580-bda4-9a397c10cbeb" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.837Z" level=info module="c2s" event="tls-established" connection="639f61dc-a947-45b4-bc85-c088d3b0cef1" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.837Z" level=info module="c2s" event="sasl-features" connection="639f61dc-a947-45b4-bc85-c088d3b0cef1" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.837Z" level=info module="c2s" event="tls-established" connection="f845498e-2387-4fb0-b3a9-7e65f5a344b1" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.837Z" level=info module="c2s" event="sasl-features" connection="f845498e-2387-4fb0-b3a9-7e65f5a344b1" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.837Z" level=info module="c2s" event="auth-success" connection="eb3757a2-afc1-493e-9e4f-14dd264c1276" "user"="load-97" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.838Z" level=info module="c2s" event="auth-success" connection="8fa19d9b-add9-4e51-bf49-ecb50085e57d" "user"="load-99" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.838Z" level=info module="c2s" event="auth-success" connection="22f568e5-5357-4bf8-849c-ad2d92240887" "user"="load-98" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.838Z" level=info module="c2s" event="tls-established" connection="16b34fdf-7f13-45e0-88e4-a835eb1f829e" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.838Z" level=info module="c2s" event="sasl-features" connection="16b34fdf-7f13-45e0-88e4-a835eb1f829e" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.838Z" level=info module="c2s" event="resource-bound" connection="419ef2ce-8e6a-4927-9003-33fbc1d76c64" "jid"="load-95@localhost/load-395" "mode"="legacy" +timestamp="2026-10-20T10:29:50.838Z" level=info module="c2s" event="sasl-attempt" connection="0c98f99e-cd29-404b-9715-484e8a099de3" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.838Z" level=info module="c2s" event="auth-identity" connection="0c98f99e-cd29-404b-9715-484e8a099de3" "user"="load-2" +timestamp="2026-10-20T10:29:50.838Z" level=info module="c2s" event="tls-established" connection="8e689912-e806-4b27-b5c6-6aaecc8dc28b" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.838Z" level=info module="c2s" event="sasl-features" connection="8e689912-e806-4b27-b5c6-6aaecc8dc28b" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.838Z" level=info module="c2s" event="sasl-attempt" connection="cea384e9-0a77-4044-bb15-423aa392746e" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.838Z" level=info module="c2s" event="auth-identity" connection="cea384e9-0a77-4044-bb15-423aa392746e" "user"="load-5" +timestamp="2026-10-20T10:29:50.838Z" level=info module="c2s" event="sasl-attempt" connection="c3e1772b-addc-4212-8bb0-6478636bf078" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.838Z" level=info module="c2s" event="auth-identity" connection="c3e1772b-addc-4212-8bb0-6478636bf078" "user"="load-6" +timestamp="2026-10-20T10:29:50.838Z" level=info module="c2s" event="sasl-attempt" connection="cc30b40a-1b23-4580-bda4-9a397c10cbeb" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.838Z" level=info module="c2s" event="auth-identity" connection="cc30b40a-1b23-4580-bda4-9a397c10cbeb" "user"="load-3" +timestamp="2026-10-20T10:29:50.839Z" level=info module="c2s" event="resource-bound" connection="0820aee8-b3ff-49f2-9af5-86affc6f26fa" "jid"="load-0@localhost/load-400" "mode"="legacy" +timestamp="2026-10-20T10:29:50.841Z" level=info module="c2s" event="auth-success" connection="0c98f99e-cd29-404b-9715-484e8a099de3" "user"="load-2" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.841Z" level=info module="c2s" event="auth-success" connection="cea384e9-0a77-4044-bb15-423aa392746e" "user"="load-5" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.841Z" level=info module="c2s" event="auth-success" connection="cc30b40a-1b23-4580-bda4-9a397c10cbeb" "user"="load-3" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.841Z" level=info module="c2s" event="auth-success" connection="c3e1772b-addc-4212-8bb0-6478636bf078" "user"="load-6" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.845Z" level=info module="c2s" event="sasl-attempt" connection="16b34fdf-7f13-45e0-88e4-a835eb1f829e" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.845Z" level=info module="c2s" event="auth-identity" connection="16b34fdf-7f13-45e0-88e4-a835eb1f829e" "user"="load-7" +timestamp="2026-10-20T10:29:50.845Z" level=info module="c2s" event="sasl-attempt" connection="f845498e-2387-4fb0-b3a9-7e65f5a344b1" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.845Z" level=info module="c2s" event="auth-identity" connection="f845498e-2387-4fb0-b3a9-7e65f5a344b1" "user"="load-8" +timestamp="2026-10-20T10:29:50.850Z" level=info module="c2s" event="auth-success" connection="16b34fdf-7f13-45e0-88e4-a835eb1f829e" "user"="load-7" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.850Z" level=info module="c2s" event="auth-success" connection="f845498e-2387-4fb0-b3a9-7e65f5a344b1" "user"="load-8" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.850Z" level=info module="c2s" event="connection-open" connection="f9f100f2-b90e-4df8-a87a-31c78edb0ada" "transport"="tcp" "peer"="127.0.0.1:34190" "host"="localhost" +timestamp="2026-10-20T10:29:50.850Z" level=info module="c2s" event="sasl-attempt" connection="639f61dc-a947-45b4-bc85-c088d3b0cef1" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.851Z" level=info module="c2s" event="auth-identity" connection="639f61dc-a947-45b4-bc85-c088d3b0cef1" "user"="load-1" +timestamp="2026-10-20T10:29:50.851Z" level=info module="c2s" event="sasl-attempt" connection="8e689912-e806-4b27-b5c6-6aaecc8dc28b" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.851Z" level=info module="c2s" event="auth-identity" connection="8e689912-e806-4b27-b5c6-6aaecc8dc28b" "user"="load-4" +timestamp="2026-10-20T10:29:50.857Z" level=info module="c2s" event="auth-success" connection="639f61dc-a947-45b4-bc85-c088d3b0cef1" "user"="load-1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.857Z" level=info module="c2s" event="auth-success" connection="8e689912-e806-4b27-b5c6-6aaecc8dc28b" "user"="load-4" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.857Z" level=info module="c2s" event="resource-bound" connection="8fa19d9b-add9-4e51-bf49-ecb50085e57d" "jid"="load-99@localhost/load-399" "mode"="legacy" +timestamp="2026-10-20T10:29:50.857Z" level=info module="c2s" event="resource-bound" connection="22f568e5-5357-4bf8-849c-ad2d92240887" "jid"="load-98@localhost/load-398" "mode"="legacy" +timestamp="2026-10-20T10:29:50.857Z" level=info module="c2s" event="resource-bound" connection="eb3757a2-afc1-493e-9e4f-14dd264c1276" "jid"="load-97@localhost/load-397" "mode"="legacy" +timestamp="2026-10-20T10:29:50.859Z" level=info module="c2s" event="resource-bound" connection="cc30b40a-1b23-4580-bda4-9a397c10cbeb" "jid"="load-3@localhost/load-403" "mode"="legacy" +timestamp="2026-10-20T10:29:50.859Z" level=info module="c2s" event="tls-established" connection="27f00656-3564-4a62-8b7c-485630bbb12b" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.859Z" level=info module="c2s" event="sasl-features" connection="27f00656-3564-4a62-8b7c-485630bbb12b" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.859Z" level=info module="c2s" event="resource-bound" connection="f845498e-2387-4fb0-b3a9-7e65f5a344b1" "jid"="load-8@localhost/load-408" "mode"="legacy" +timestamp="2026-10-20T10:29:50.859Z" level=info module="c2s" event="resource-bound" connection="0c98f99e-cd29-404b-9715-484e8a099de3" "jid"="load-2@localhost/load-402" "mode"="legacy" +timestamp="2026-10-20T10:29:50.859Z" level=info module="c2s" event="resource-bound" connection="cea384e9-0a77-4044-bb15-423aa392746e" "jid"="load-5@localhost/load-405" "mode"="legacy" +timestamp="2026-10-20T10:29:50.859Z" level=info module="c2s" event="resource-bound" connection="c3e1772b-addc-4212-8bb0-6478636bf078" "jid"="load-6@localhost/load-406" "mode"="legacy" +timestamp="2026-10-20T10:29:50.872Z" level=info module="c2s" event="resource-bound" connection="8e689912-e806-4b27-b5c6-6aaecc8dc28b" "jid"="load-4@localhost/load-404" "mode"="legacy" +timestamp="2026-10-20T10:29:50.883Z" level=info module="c2s" event="resource-bound" connection="16b34fdf-7f13-45e0-88e4-a835eb1f829e" "jid"="load-7@localhost/load-407" "mode"="legacy" +timestamp="2026-10-20T10:29:50.906Z" level=info module="c2s" event="sasl-attempt" connection="27f00656-3564-4a62-8b7c-485630bbb12b" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.906Z" level=info module="c2s" event="auth-identity" connection="27f00656-3564-4a62-8b7c-485630bbb12b" "user"="load-9" +timestamp="2026-10-20T10:29:50.907Z" level=info module="c2s" event="resource-bound" connection="639f61dc-a947-45b4-bc85-c088d3b0cef1" "jid"="load-1@localhost/load-401" "mode"="legacy" +timestamp="2026-10-20T10:29:50.911Z" level=info module="c2s" event="auth-success" connection="27f00656-3564-4a62-8b7c-485630bbb12b" "user"="load-9" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.911Z" level=info module="c2s" event="connection-open" connection="8e160e33-5b11-4f04-9704-2d1f47f7db0a" "transport"="tcp" "peer"="127.0.0.1:34276" "host"="localhost" +timestamp="2026-10-20T10:29:50.911Z" level=info module="c2s" event="connection-open" connection="90992708-4495-4051-a91d-53f009a374ab" "transport"="tcp" "peer"="127.0.0.1:34192" "host"="localhost" +timestamp="2026-10-20T10:29:50.911Z" level=info module="c2s" event="connection-open" connection="17c3d6a1-b27d-4a67-9f1a-1e09d77d7edc" "transport"="tcp" "peer"="127.0.0.1:34208" "host"="localhost" +timestamp="2026-10-20T10:29:50.911Z" level=info module="c2s" event="connection-open" connection="0cb4147a-6b8c-4605-9c82-c7283c95dff9" "transport"="tcp" "peer"="127.0.0.1:34218" "host"="localhost" +timestamp="2026-10-20T10:29:50.911Z" level=info module="c2s" event="connection-open" connection="ada048c3-457d-4f39-a51c-c9bcb6c438fc" "transport"="tcp" "peer"="127.0.0.1:34224" "host"="localhost" +timestamp="2026-10-20T10:29:50.911Z" level=info module="c2s" event="connection-open" connection="73d744f1-e9d9-41bd-b94e-057d893371fb" "transport"="tcp" "peer"="127.0.0.1:34232" "host"="localhost" +timestamp="2026-10-20T10:29:50.911Z" level=info module="c2s" event="connection-open" connection="5f9fe7bb-57c1-4b2b-8047-06c06a7b08f3" "transport"="tcp" "peer"="127.0.0.1:34246" "host"="localhost" +timestamp="2026-10-20T10:29:50.911Z" level=info module="c2s" event="connection-open" connection="8f975b45-ecdb-4e4c-b657-ded63bd35b47" "transport"="tcp" "peer"="127.0.0.1:34262" "host"="localhost" +timestamp="2026-10-20T10:29:50.933Z" level=info module="c2s" event="connection-open" connection="ff46fe41-da59-49e5-8150-9a3ab94d2e3d" "transport"="tcp" "peer"="127.0.0.1:34282" "host"="localhost" +timestamp="2026-10-20T10:29:50.949Z" level=info module="c2s" event="connection-open" connection="1a52020c-d52e-4dec-93ac-31bce3aa0d8b" "transport"="tcp" "peer"="127.0.0.1:34278" "host"="localhost" +timestamp="2026-10-20T10:29:50.950Z" level=info module="c2s" event="tls-established" connection="f9f100f2-b90e-4df8-a87a-31c78edb0ada" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.950Z" level=info module="c2s" event="sasl-features" connection="f9f100f2-b90e-4df8-a87a-31c78edb0ada" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.953Z" level=info module="c2s" event="resource-bound" connection="27f00656-3564-4a62-8b7c-485630bbb12b" "jid"="load-9@localhost/load-409" "mode"="legacy" +timestamp="2026-10-20T10:29:50.961Z" level=info module="c2s" event="connection-open" connection="024af0f6-54fe-4700-8522-f7ec3f1876c7" "transport"="tcp" "peer"="127.0.0.1:34310" "host"="localhost" +timestamp="2026-10-20T10:29:50.961Z" level=info module="c2s" event="connection-open" connection="0d61ebc7-17df-4f2b-9191-1ca4b884d3bc" "transport"="tcp" "peer"="127.0.0.1:34292" "host"="localhost" +timestamp="2026-10-20T10:29:50.961Z" level=info module="c2s" event="connection-open" connection="c229fa8d-86b0-4d6d-a3d1-67bc4cf02ee4" "transport"="tcp" "peer"="127.0.0.1:34300" "host"="localhost" +timestamp="2026-10-20T10:29:50.961Z" level=info module="c2s" event="sasl-attempt" connection="f9f100f2-b90e-4df8-a87a-31c78edb0ada" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.961Z" level=info module="c2s" event="auth-identity" connection="f9f100f2-b90e-4df8-a87a-31c78edb0ada" "user"="load-10" +timestamp="2026-10-20T10:29:50.961Z" level=info module="c2s" event="tls-established" connection="90992708-4495-4051-a91d-53f009a374ab" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.961Z" level=info module="c2s" event="sasl-features" connection="90992708-4495-4051-a91d-53f009a374ab" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.961Z" level=info module="c2s" event="tls-established" connection="8e160e33-5b11-4f04-9704-2d1f47f7db0a" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.961Z" level=info module="c2s" event="sasl-features" connection="8e160e33-5b11-4f04-9704-2d1f47f7db0a" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.962Z" level=info module="c2s" event="auth-success" connection="f9f100f2-b90e-4df8-a87a-31c78edb0ada" "user"="load-10" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.963Z" level=info module="c2s" event="tls-established" connection="5f9fe7bb-57c1-4b2b-8047-06c06a7b08f3" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.963Z" level=info module="c2s" event="sasl-features" connection="5f9fe7bb-57c1-4b2b-8047-06c06a7b08f3" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.963Z" level=info module="c2s" event="sasl-attempt" connection="90992708-4495-4051-a91d-53f009a374ab" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.963Z" level=info module="c2s" event="auth-identity" connection="90992708-4495-4051-a91d-53f009a374ab" "user"="load-11" +timestamp="2026-10-20T10:29:50.963Z" level=info module="c2s" event="sasl-attempt" connection="8e160e33-5b11-4f04-9704-2d1f47f7db0a" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.963Z" level=info module="c2s" event="auth-identity" connection="8e160e33-5b11-4f04-9704-2d1f47f7db0a" "user"="load-18" +timestamp="2026-10-20T10:29:50.964Z" level=info module="c2s" event="tls-established" connection="17c3d6a1-b27d-4a67-9f1a-1e09d77d7edc" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.964Z" level=info module="c2s" event="sasl-features" connection="17c3d6a1-b27d-4a67-9f1a-1e09d77d7edc" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.964Z" level=info module="c2s" event="tls-established" connection="0cb4147a-6b8c-4605-9c82-c7283c95dff9" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.964Z" level=info module="c2s" event="sasl-features" connection="0cb4147a-6b8c-4605-9c82-c7283c95dff9" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.964Z" level=info module="c2s" event="tls-established" connection="8f975b45-ecdb-4e4c-b657-ded63bd35b47" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.964Z" level=info module="c2s" event="sasl-features" connection="8f975b45-ecdb-4e4c-b657-ded63bd35b47" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.965Z" level=info module="c2s" event="auth-success" connection="90992708-4495-4051-a91d-53f009a374ab" "user"="load-11" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.965Z" level=info module="c2s" event="auth-success" connection="8e160e33-5b11-4f04-9704-2d1f47f7db0a" "user"="load-18" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.965Z" level=info module="c2s" event="tls-established" connection="73d744f1-e9d9-41bd-b94e-057d893371fb" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.965Z" level=info module="c2s" event="sasl-features" connection="73d744f1-e9d9-41bd-b94e-057d893371fb" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.966Z" level=info module="c2s" event="tls-established" connection="ada048c3-457d-4f39-a51c-c9bcb6c438fc" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.966Z" level=info module="c2s" event="sasl-features" connection="ada048c3-457d-4f39-a51c-c9bcb6c438fc" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.966Z" level=info module="c2s" event="tls-established" connection="1a52020c-d52e-4dec-93ac-31bce3aa0d8b" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.966Z" level=info module="c2s" event="sasl-features" connection="1a52020c-d52e-4dec-93ac-31bce3aa0d8b" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.967Z" level=info module="c2s" event="sasl-attempt" connection="17c3d6a1-b27d-4a67-9f1a-1e09d77d7edc" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.967Z" level=info module="c2s" event="auth-identity" connection="17c3d6a1-b27d-4a67-9f1a-1e09d77d7edc" "user"="load-12" +timestamp="2026-10-20T10:29:50.967Z" level=info module="c2s" event="sasl-attempt" connection="0cb4147a-6b8c-4605-9c82-c7283c95dff9" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.967Z" level=info module="c2s" event="auth-identity" connection="0cb4147a-6b8c-4605-9c82-c7283c95dff9" "user"="load-13" +timestamp="2026-10-20T10:29:50.967Z" level=info module="c2s" event="sasl-attempt" connection="5f9fe7bb-57c1-4b2b-8047-06c06a7b08f3" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.967Z" level=info module="c2s" event="auth-identity" connection="5f9fe7bb-57c1-4b2b-8047-06c06a7b08f3" "user"="load-16" +timestamp="2026-10-20T10:29:50.967Z" level=info module="c2s" event="resource-bound" connection="f9f100f2-b90e-4df8-a87a-31c78edb0ada" "jid"="load-10@localhost/load-410" "mode"="legacy" +timestamp="2026-10-20T10:29:50.967Z" level=info module="c2s" event="sasl-attempt" connection="73d744f1-e9d9-41bd-b94e-057d893371fb" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.967Z" level=info module="c2s" event="auth-identity" connection="73d744f1-e9d9-41bd-b94e-057d893371fb" "user"="load-15" +timestamp="2026-10-20T10:29:50.968Z" level=info module="c2s" event="sasl-attempt" connection="ada048c3-457d-4f39-a51c-c9bcb6c438fc" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.968Z" level=info module="c2s" event="auth-identity" connection="ada048c3-457d-4f39-a51c-c9bcb6c438fc" "user"="load-14" +timestamp="2026-10-20T10:29:50.968Z" level=info module="c2s" event="sasl-attempt" connection="1a52020c-d52e-4dec-93ac-31bce3aa0d8b" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.968Z" level=info module="c2s" event="auth-identity" connection="1a52020c-d52e-4dec-93ac-31bce3aa0d8b" "user"="load-19" +timestamp="2026-10-20T10:29:50.968Z" level=info module="c2s" event="sasl-attempt" connection="8f975b45-ecdb-4e4c-b657-ded63bd35b47" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.968Z" level=info module="c2s" event="auth-identity" connection="8f975b45-ecdb-4e4c-b657-ded63bd35b47" "user"="load-17" +timestamp="2026-10-20T10:29:50.968Z" level=info module="c2s" event="tls-established" connection="ff46fe41-da59-49e5-8150-9a3ab94d2e3d" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.968Z" level=info module="c2s" event="sasl-features" connection="ff46fe41-da59-49e5-8150-9a3ab94d2e3d" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.970Z" level=info module="c2s" event="auth-success" connection="5f9fe7bb-57c1-4b2b-8047-06c06a7b08f3" "user"="load-16" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.970Z" level=info module="c2s" event="sasl-attempt" connection="ff46fe41-da59-49e5-8150-9a3ab94d2e3d" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.970Z" level=info module="c2s" event="auth-identity" connection="ff46fe41-da59-49e5-8150-9a3ab94d2e3d" "user"="load-20" +timestamp="2026-10-20T10:29:50.970Z" level=info module="c2s" event="tls-established" connection="024af0f6-54fe-4700-8522-f7ec3f1876c7" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.970Z" level=info module="c2s" event="sasl-features" connection="024af0f6-54fe-4700-8522-f7ec3f1876c7" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.970Z" level=info module="c2s" event="auth-success" connection="17c3d6a1-b27d-4a67-9f1a-1e09d77d7edc" "user"="load-12" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.970Z" level=info module="c2s" event="auth-success" connection="0cb4147a-6b8c-4605-9c82-c7283c95dff9" "user"="load-13" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.970Z" level=info module="c2s" event="auth-success" connection="73d744f1-e9d9-41bd-b94e-057d893371fb" "user"="load-15" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.974Z" level=info module="c2s" event="auth-success" connection="1a52020c-d52e-4dec-93ac-31bce3aa0d8b" "user"="load-19" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.974Z" level=info module="c2s" event="auth-success" connection="ada048c3-457d-4f39-a51c-c9bcb6c438fc" "user"="load-14" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.974Z" level=info module="c2s" event="auth-success" connection="8f975b45-ecdb-4e4c-b657-ded63bd35b47" "user"="load-17" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.974Z" level=info module="c2s" event="auth-success" connection="ff46fe41-da59-49e5-8150-9a3ab94d2e3d" "user"="load-20" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.974Z" level=info module="c2s" event="resource-bound" connection="90992708-4495-4051-a91d-53f009a374ab" "jid"="load-11@localhost/load-411" "mode"="legacy" +timestamp="2026-10-20T10:29:50.975Z" level=info module="c2s" event="resource-bound" connection="8e160e33-5b11-4f04-9704-2d1f47f7db0a" "jid"="load-18@localhost/load-418" "mode"="legacy" +timestamp="2026-10-20T10:29:50.975Z" level=info module="c2s" event="connection-open" connection="2d6222ee-80b8-4ffa-9987-512d9f610df0" "transport"="tcp" "peer"="127.0.0.1:34314" "host"="localhost" +timestamp="2026-10-20T10:29:50.975Z" level=info module="c2s" event="connection-open" connection="e4b9411d-8506-422c-ae30-5b4eb413f0e6" "transport"="tcp" "peer"="127.0.0.1:34312" "host"="localhost" +timestamp="2026-10-20T10:29:50.979Z" level=info module="c2s" event="sasl-attempt" connection="024af0f6-54fe-4700-8522-f7ec3f1876c7" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.979Z" level=info module="c2s" event="auth-identity" connection="024af0f6-54fe-4700-8522-f7ec3f1876c7" "user"="load-23" +timestamp="2026-10-20T10:29:50.979Z" level=info module="c2s" event="resource-bound" connection="5f9fe7bb-57c1-4b2b-8047-06c06a7b08f3" "jid"="load-16@localhost/load-416" "mode"="legacy" +timestamp="2026-10-20T10:29:50.979Z" level=info module="c2s" event="tls-established" connection="0d61ebc7-17df-4f2b-9191-1ca4b884d3bc" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.979Z" level=info module="c2s" event="sasl-features" connection="0d61ebc7-17df-4f2b-9191-1ca4b884d3bc" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:50.988Z" level=info module="c2s" event="auth-success" connection="024af0f6-54fe-4700-8522-f7ec3f1876c7" "user"="load-23" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:50.988Z" level=info module="c2s" event="tls-established" connection="c229fa8d-86b0-4d6d-a3d1-67bc4cf02ee4" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:50.988Z" level=info module="c2s" event="sasl-features" connection="c229fa8d-86b0-4d6d-a3d1-67bc4cf02ee4" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.006Z" level=info module="c2s" event="connection-open" connection="192f0a0f-b44f-4abb-97ba-e101318bb498" "transport"="tcp" "peer"="127.0.0.1:34316" "host"="localhost" +timestamp="2026-10-20T10:29:51.006Z" level=info module="c2s" event="resource-bound" connection="1a52020c-d52e-4dec-93ac-31bce3aa0d8b" "jid"="load-19@localhost/load-419" "mode"="legacy" +timestamp="2026-10-20T10:29:51.006Z" level=info module="c2s" event="resource-bound" connection="17c3d6a1-b27d-4a67-9f1a-1e09d77d7edc" "jid"="load-12@localhost/load-412" "mode"="legacy" +timestamp="2026-10-20T10:29:51.012Z" level=info module="c2s" event="resource-bound" connection="ada048c3-457d-4f39-a51c-c9bcb6c438fc" "jid"="load-14@localhost/load-414" "mode"="legacy" +timestamp="2026-10-20T10:29:51.012Z" level=info module="c2s" event="resource-bound" connection="0cb4147a-6b8c-4605-9c82-c7283c95dff9" "jid"="load-13@localhost/load-413" "mode"="legacy" +timestamp="2026-10-20T10:29:51.012Z" level=info module="c2s" event="sasl-attempt" connection="0d61ebc7-17df-4f2b-9191-1ca4b884d3bc" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.012Z" level=info module="c2s" event="auth-identity" connection="0d61ebc7-17df-4f2b-9191-1ca4b884d3bc" "user"="load-21" +timestamp="2026-10-20T10:29:51.012Z" level=info module="c2s" event="resource-bound" connection="73d744f1-e9d9-41bd-b94e-057d893371fb" "jid"="load-15@localhost/load-415" "mode"="legacy" +timestamp="2026-10-20T10:29:51.012Z" level=info module="c2s" event="resource-bound" connection="ff46fe41-da59-49e5-8150-9a3ab94d2e3d" "jid"="load-20@localhost/load-420" "mode"="legacy" +timestamp="2026-10-20T10:29:51.012Z" level=info module="c2s" event="resource-bound" connection="8f975b45-ecdb-4e4c-b657-ded63bd35b47" "jid"="load-17@localhost/load-417" "mode"="legacy" +timestamp="2026-10-20T10:29:51.015Z" level=info module="c2s" event="auth-success" connection="0d61ebc7-17df-4f2b-9191-1ca4b884d3bc" "user"="load-21" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.031Z" level=info module="c2s" event="sasl-attempt" connection="c229fa8d-86b0-4d6d-a3d1-67bc4cf02ee4" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.031Z" level=info module="c2s" event="auth-identity" connection="c229fa8d-86b0-4d6d-a3d1-67bc4cf02ee4" "user"="load-22" +timestamp="2026-10-20T10:29:51.031Z" level=info module="c2s" event="connection-open" connection="b9c87e8f-6acb-4833-a58a-ee39b6fbcab9" "transport"="tcp" "peer"="127.0.0.1:34354" "host"="localhost" +timestamp="2026-10-20T10:29:51.031Z" level=info module="c2s" event="connection-open" connection="78fc5228-a651-4855-97dc-1faf7f049f4c" "transport"="tcp" "peer"="127.0.0.1:34324" "host"="localhost" +timestamp="2026-10-20T10:29:51.031Z" level=info module="c2s" event="connection-open" connection="3d06c1af-a6f5-429e-9eeb-54127e074e58" "transport"="tcp" "peer"="127.0.0.1:34334" "host"="localhost" +timestamp="2026-10-20T10:29:51.031Z" level=info module="c2s" event="connection-open" connection="dbec511b-a7e6-4551-9338-13500dc23a0d" "transport"="tcp" "peer"="127.0.0.1:34348" "host"="localhost" +timestamp="2026-10-20T10:29:51.037Z" level=info module="c2s" event="auth-success" connection="c229fa8d-86b0-4d6d-a3d1-67bc4cf02ee4" "user"="load-22" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.048Z" level=info module="c2s" event="connection-open" connection="07611411-bfed-4a9d-854e-34a5f9087a11" "transport"="tcp" "peer"="127.0.0.1:34356" "host"="localhost" +timestamp="2026-10-20T10:29:51.048Z" level=info module="c2s" event="tls-established" connection="e4b9411d-8506-422c-ae30-5b4eb413f0e6" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.048Z" level=info module="c2s" event="sasl-features" connection="e4b9411d-8506-422c-ae30-5b4eb413f0e6" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.073Z" level=info module="c2s" event="sasl-attempt" connection="e4b9411d-8506-422c-ae30-5b4eb413f0e6" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.073Z" level=info module="c2s" event="auth-identity" connection="e4b9411d-8506-422c-ae30-5b4eb413f0e6" "user"="load-24" +timestamp="2026-10-20T10:29:51.075Z" level=info module="c2s" event="auth-success" connection="e4b9411d-8506-422c-ae30-5b4eb413f0e6" "user"="load-24" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.075Z" level=info module="c2s" event="tls-established" connection="2d6222ee-80b8-4ffa-9987-512d9f610df0" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.075Z" level=info module="c2s" event="sasl-features" connection="2d6222ee-80b8-4ffa-9987-512d9f610df0" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.075Z" level=info module="c2s" event="connection-open" connection="2ec74ca3-b2ef-4d3f-ba4a-30802344ad04" "transport"="tcp" "peer"="127.0.0.1:34382" "host"="localhost" +timestamp="2026-10-20T10:29:51.075Z" level=info module="c2s" event="connection-open" connection="4800c393-2295-4de9-a899-e370d5c0ee77" "transport"="tcp" "peer"="127.0.0.1:34360" "host"="localhost" +timestamp="2026-10-20T10:29:51.075Z" level=info module="c2s" event="connection-open" connection="84d0aed6-6c62-40e4-bffb-097646ef2ece" "transport"="tcp" "peer"="127.0.0.1:34376" "host"="localhost" +timestamp="2026-10-20T10:29:51.093Z" level=info module="c2s" event="resource-bound" connection="024af0f6-54fe-4700-8522-f7ec3f1876c7" "jid"="load-23@localhost/load-423" "mode"="legacy" +timestamp="2026-10-20T10:29:51.093Z" level=info module="c2s" event="resource-bound" connection="0d61ebc7-17df-4f2b-9191-1ca4b884d3bc" "jid"="load-21@localhost/load-421" "mode"="legacy" +timestamp="2026-10-20T10:29:51.093Z" level=info module="c2s" event="resource-bound" connection="c229fa8d-86b0-4d6d-a3d1-67bc4cf02ee4" "jid"="load-22@localhost/load-422" "mode"="legacy" +timestamp="2026-10-20T10:29:51.093Z" level=info module="c2s" event="sasl-attempt" connection="2d6222ee-80b8-4ffa-9987-512d9f610df0" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.093Z" level=info module="c2s" event="auth-identity" connection="2d6222ee-80b8-4ffa-9987-512d9f610df0" "user"="load-25" +timestamp="2026-10-20T10:29:51.094Z" level=info module="c2s" event="connection-open" connection="8e11313f-1f53-4762-94fa-d6759e562906" "transport"="tcp" "peer"="127.0.0.1:34414" "host"="localhost" +timestamp="2026-10-20T10:29:51.096Z" level=info module="c2s" event="auth-success" connection="2d6222ee-80b8-4ffa-9987-512d9f610df0" "user"="load-25" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.096Z" level=info module="c2s" event="connection-open" connection="5a6595e4-f184-4c17-9ae6-4b1e230266ac" "transport"="tcp" "peer"="127.0.0.1:34398" "host"="localhost" +timestamp="2026-10-20T10:29:51.096Z" level=info module="c2s" event="connection-open" connection="c2a40dda-f33e-4152-aeac-40550d8305f8" "transport"="tcp" "peer"="127.0.0.1:34386" "host"="localhost" +timestamp="2026-10-20T10:29:51.096Z" level=info module="c2s" event="connection-open" connection="5c6c0c3c-259c-4a8d-9311-6a95a404d8bf" "transport"="tcp" "peer"="127.0.0.1:34410" "host"="localhost" +timestamp="2026-10-20T10:29:51.096Z" level=info module="c2s" event="tls-established" connection="192f0a0f-b44f-4abb-97ba-e101318bb498" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.096Z" level=info module="c2s" event="sasl-features" connection="192f0a0f-b44f-4abb-97ba-e101318bb498" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.105Z" level=info module="c2s" event="resource-bound" connection="e4b9411d-8506-422c-ae30-5b4eb413f0e6" "jid"="load-24@localhost/load-424" "mode"="legacy" +timestamp="2026-10-20T10:29:51.105Z" level=info module="c2s" event="tls-established" connection="78fc5228-a651-4855-97dc-1faf7f049f4c" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.105Z" level=info module="c2s" event="sasl-features" connection="78fc5228-a651-4855-97dc-1faf7f049f4c" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.106Z" level=info module="c2s" event="tls-established" connection="07611411-bfed-4a9d-854e-34a5f9087a11" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.106Z" level=info module="c2s" event="sasl-features" connection="07611411-bfed-4a9d-854e-34a5f9087a11" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.106Z" level=info module="c2s" event="sasl-attempt" connection="192f0a0f-b44f-4abb-97ba-e101318bb498" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.106Z" level=info module="c2s" event="auth-identity" connection="192f0a0f-b44f-4abb-97ba-e101318bb498" "user"="load-26" +timestamp="2026-10-20T10:29:51.106Z" level=info module="c2s" event="tls-established" connection="3d06c1af-a6f5-429e-9eeb-54127e074e58" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.106Z" level=info module="c2s" event="sasl-features" connection="3d06c1af-a6f5-429e-9eeb-54127e074e58" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.106Z" level=info module="c2s" event="tls-established" connection="dbec511b-a7e6-4551-9338-13500dc23a0d" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.106Z" level=info module="c2s" event="sasl-features" connection="dbec511b-a7e6-4551-9338-13500dc23a0d" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.106Z" level=info module="c2s" event="tls-established" connection="b9c87e8f-6acb-4833-a58a-ee39b6fbcab9" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.106Z" level=info module="c2s" event="sasl-features" connection="b9c87e8f-6acb-4833-a58a-ee39b6fbcab9" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.109Z" level=info module="c2s" event="auth-success" connection="192f0a0f-b44f-4abb-97ba-e101318bb498" "user"="load-26" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.109Z" level=info module="c2s" event="sasl-attempt" connection="78fc5228-a651-4855-97dc-1faf7f049f4c" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.109Z" level=info module="c2s" event="auth-identity" connection="78fc5228-a651-4855-97dc-1faf7f049f4c" "user"="load-27" +timestamp="2026-10-20T10:29:51.109Z" level=info module="c2s" event="resource-bound" connection="2d6222ee-80b8-4ffa-9987-512d9f610df0" "jid"="load-25@localhost/load-425" "mode"="legacy" +timestamp="2026-10-20T10:29:51.109Z" level=info module="c2s" event="tls-established" connection="84d0aed6-6c62-40e4-bffb-097646ef2ece" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.109Z" level=info module="c2s" event="sasl-features" connection="84d0aed6-6c62-40e4-bffb-097646ef2ece" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.109Z" level=info module="c2s" event="tls-established" connection="2ec74ca3-b2ef-4d3f-ba4a-30802344ad04" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.109Z" level=info module="c2s" event="sasl-features" connection="2ec74ca3-b2ef-4d3f-ba4a-30802344ad04" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.110Z" level=info module="c2s" event="sasl-attempt" connection="b9c87e8f-6acb-4833-a58a-ee39b6fbcab9" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.110Z" level=info module="c2s" event="auth-identity" connection="b9c87e8f-6acb-4833-a58a-ee39b6fbcab9" "user"="load-30" +timestamp="2026-10-20T10:29:51.110Z" level=info module="c2s" event="sasl-attempt" connection="07611411-bfed-4a9d-854e-34a5f9087a11" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.110Z" level=info module="c2s" event="auth-identity" connection="07611411-bfed-4a9d-854e-34a5f9087a11" "user"="load-31" +timestamp="2026-10-20T10:29:51.110Z" level=info module="c2s" event="sasl-attempt" connection="3d06c1af-a6f5-429e-9eeb-54127e074e58" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.110Z" level=info module="c2s" event="auth-identity" connection="3d06c1af-a6f5-429e-9eeb-54127e074e58" "user"="load-28" +timestamp="2026-10-20T10:29:51.110Z" level=info module="c2s" event="sasl-attempt" connection="dbec511b-a7e6-4551-9338-13500dc23a0d" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.110Z" level=info module="c2s" event="auth-identity" connection="dbec511b-a7e6-4551-9338-13500dc23a0d" "user"="load-29" +timestamp="2026-10-20T10:29:51.111Z" level=info module="c2s" event="auth-success" connection="78fc5228-a651-4855-97dc-1faf7f049f4c" "user"="load-27" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.111Z" level=info module="c2s" event="auth-success" connection="07611411-bfed-4a9d-854e-34a5f9087a11" "user"="load-31" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.111Z" level=info module="c2s" event="auth-success" connection="3d06c1af-a6f5-429e-9eeb-54127e074e58" "user"="load-28" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.111Z" level=info module="c2s" event="auth-success" connection="dbec511b-a7e6-4551-9338-13500dc23a0d" "user"="load-29" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.112Z" level=info module="c2s" event="tls-established" connection="4800c393-2295-4de9-a899-e370d5c0ee77" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.112Z" level=info module="c2s" event="sasl-features" connection="4800c393-2295-4de9-a899-e370d5c0ee77" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.112Z" level=info module="c2s" event="tls-established" connection="8e11313f-1f53-4762-94fa-d6759e562906" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.112Z" level=info module="c2s" event="sasl-features" connection="8e11313f-1f53-4762-94fa-d6759e562906" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.113Z" level=info module="c2s" event="auth-success" connection="b9c87e8f-6acb-4833-a58a-ee39b6fbcab9" "user"="load-30" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.115Z" level=info module="c2s" event="sasl-attempt" connection="84d0aed6-6c62-40e4-bffb-097646ef2ece" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.115Z" level=info module="c2s" event="auth-identity" connection="84d0aed6-6c62-40e4-bffb-097646ef2ece" "user"="load-33" +timestamp="2026-10-20T10:29:51.115Z" level=info module="c2s" event="sasl-attempt" connection="2ec74ca3-b2ef-4d3f-ba4a-30802344ad04" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.115Z" level=info module="c2s" event="auth-identity" connection="2ec74ca3-b2ef-4d3f-ba4a-30802344ad04" "user"="load-34" +timestamp="2026-10-20T10:29:51.115Z" level=info module="c2s" event="resource-bound" connection="192f0a0f-b44f-4abb-97ba-e101318bb498" "jid"="load-26@localhost/load-426" "mode"="legacy" +timestamp="2026-10-20T10:29:51.115Z" level=info module="c2s" event="tls-established" connection="c2a40dda-f33e-4152-aeac-40550d8305f8" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.115Z" level=info module="c2s" event="sasl-features" connection="c2a40dda-f33e-4152-aeac-40550d8305f8" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.115Z" level=info module="c2s" event="tls-established" connection="5c6c0c3c-259c-4a8d-9311-6a95a404d8bf" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.115Z" level=info module="c2s" event="sasl-features" connection="5c6c0c3c-259c-4a8d-9311-6a95a404d8bf" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.115Z" level=info module="c2s" event="tls-established" connection="5a6595e4-f184-4c17-9ae6-4b1e230266ac" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.115Z" level=info module="c2s" event="sasl-features" connection="5a6595e4-f184-4c17-9ae6-4b1e230266ac" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.116Z" level=info module="c2s" event="connection-open" connection="133d13d0-09a7-4a41-834d-1cde87d6182a" "transport"="tcp" "peer"="127.0.0.1:34422" "host"="localhost" +timestamp="2026-10-20T10:29:51.116Z" level=info module="c2s" event="sasl-attempt" connection="4800c393-2295-4de9-a899-e370d5c0ee77" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.116Z" level=info module="c2s" event="auth-identity" connection="4800c393-2295-4de9-a899-e370d5c0ee77" "user"="load-32" +timestamp="2026-10-20T10:29:51.116Z" level=info module="c2s" event="sasl-attempt" connection="8e11313f-1f53-4762-94fa-d6759e562906" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.116Z" level=info module="c2s" event="auth-identity" connection="8e11313f-1f53-4762-94fa-d6759e562906" "user"="load-38" +timestamp="2026-10-20T10:29:51.116Z" level=info module="c2s" event="sasl-attempt" connection="5a6595e4-f184-4c17-9ae6-4b1e230266ac" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.116Z" level=info module="c2s" event="auth-identity" connection="5a6595e4-f184-4c17-9ae6-4b1e230266ac" "user"="load-36" +timestamp="2026-10-20T10:29:51.122Z" level=info module="c2s" event="auth-success" connection="2ec74ca3-b2ef-4d3f-ba4a-30802344ad04" "user"="load-34" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.122Z" level=info module="c2s" event="auth-success" connection="4800c393-2295-4de9-a899-e370d5c0ee77" "user"="load-32" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.122Z" level=info module="c2s" event="auth-success" connection="84d0aed6-6c62-40e4-bffb-097646ef2ece" "user"="load-33" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.122Z" level=info module="c2s" event="auth-success" connection="8e11313f-1f53-4762-94fa-d6759e562906" "user"="load-38" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.122Z" level=info module="c2s" event="auth-success" connection="5a6595e4-f184-4c17-9ae6-4b1e230266ac" "user"="load-36" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.122Z" level=info module="c2s" event="sasl-attempt" connection="c2a40dda-f33e-4152-aeac-40550d8305f8" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.122Z" level=info module="c2s" event="auth-identity" connection="c2a40dda-f33e-4152-aeac-40550d8305f8" "user"="load-35" +timestamp="2026-10-20T10:29:51.123Z" level=info module="c2s" event="sasl-attempt" connection="5c6c0c3c-259c-4a8d-9311-6a95a404d8bf" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.123Z" level=info module="c2s" event="auth-identity" connection="5c6c0c3c-259c-4a8d-9311-6a95a404d8bf" "user"="load-37" +timestamp="2026-10-20T10:29:51.123Z" level=info module="c2s" event="resource-bound" connection="78fc5228-a651-4855-97dc-1faf7f049f4c" "jid"="load-27@localhost/load-427" "mode"="legacy" +timestamp="2026-10-20T10:29:51.123Z" level=info module="c2s" event="resource-bound" connection="07611411-bfed-4a9d-854e-34a5f9087a11" "jid"="load-31@localhost/load-431" "mode"="legacy" +timestamp="2026-10-20T10:29:51.123Z" level=info module="c2s" event="resource-bound" connection="3d06c1af-a6f5-429e-9eeb-54127e074e58" "jid"="load-28@localhost/load-428" "mode"="legacy" +timestamp="2026-10-20T10:29:51.123Z" level=info module="c2s" event="resource-bound" connection="4800c393-2295-4de9-a899-e370d5c0ee77" "jid"="load-32@localhost/load-432" "mode"="legacy" +timestamp="2026-10-20T10:29:51.123Z" level=info module="c2s" event="resource-bound" connection="dbec511b-a7e6-4551-9338-13500dc23a0d" "jid"="load-29@localhost/load-429" "mode"="legacy" +timestamp="2026-10-20T10:29:51.123Z" level=info module="c2s" event="resource-bound" connection="b9c87e8f-6acb-4833-a58a-ee39b6fbcab9" "jid"="load-30@localhost/load-430" "mode"="legacy" +timestamp="2026-10-20T10:29:51.124Z" level=info module="c2s" event="auth-success" connection="c2a40dda-f33e-4152-aeac-40550d8305f8" "user"="load-35" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.124Z" level=info module="c2s" event="auth-success" connection="5c6c0c3c-259c-4a8d-9311-6a95a404d8bf" "user"="load-37" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.142Z" level=info module="c2s" event="resource-bound" connection="84d0aed6-6c62-40e4-bffb-097646ef2ece" "jid"="load-33@localhost/load-433" "mode"="legacy" +timestamp="2026-10-20T10:29:51.147Z" level=info module="c2s" event="resource-bound" connection="8e11313f-1f53-4762-94fa-d6759e562906" "jid"="load-38@localhost/load-438" "mode"="legacy" +timestamp="2026-10-20T10:29:51.147Z" level=info module="c2s" event="resource-bound" connection="5a6595e4-f184-4c17-9ae6-4b1e230266ac" "jid"="load-36@localhost/load-436" "mode"="legacy" +timestamp="2026-10-20T10:29:51.154Z" level=info module="c2s" event="resource-bound" connection="2ec74ca3-b2ef-4d3f-ba4a-30802344ad04" "jid"="load-34@localhost/load-434" "mode"="legacy" +timestamp="2026-10-20T10:29:51.191Z" level=info module="c2s" event="resource-bound" connection="5c6c0c3c-259c-4a8d-9311-6a95a404d8bf" "jid"="load-37@localhost/load-437" "mode"="legacy" +timestamp="2026-10-20T10:29:51.205Z" level=info module="c2s" event="connection-open" connection="538c6fbf-1326-4d9a-8816-a8bd1581b3d6" "transport"="tcp" "peer"="127.0.0.1:34472" "host"="localhost" +timestamp="2026-10-20T10:29:51.205Z" level=info module="c2s" event="connection-open" connection="c60ea939-7d95-4fb5-aed7-b5415b5ddeb5" "transport"="tcp" "peer"="127.0.0.1:34424" "host"="localhost" +timestamp="2026-10-20T10:29:51.205Z" level=info module="c2s" event="connection-open" connection="e6aa592d-ed65-450e-9c98-3e1b137d85ba" "transport"="tcp" "peer"="127.0.0.1:34430" "host"="localhost" +timestamp="2026-10-20T10:29:51.205Z" level=info module="c2s" event="connection-open" connection="4a7d1f61-af39-482d-926b-333b2428ff06" "transport"="tcp" "peer"="127.0.0.1:34438" "host"="localhost" +timestamp="2026-10-20T10:29:51.205Z" level=info module="c2s" event="connection-open" connection="2885ed94-8e92-477e-a466-1a42ee564bda" "transport"="tcp" "peer"="127.0.0.1:34442" "host"="localhost" +timestamp="2026-10-20T10:29:51.205Z" level=info module="c2s" event="connection-open" connection="e4239238-6814-494e-bc53-6c37363decee" "transport"="tcp" "peer"="127.0.0.1:34446" "host"="localhost" +timestamp="2026-10-20T10:29:51.205Z" level=info module="c2s" event="connection-open" connection="8e8a5a29-f646-4706-937c-64b74b66d644" "transport"="tcp" "peer"="127.0.0.1:34452" "host"="localhost" +timestamp="2026-10-20T10:29:51.205Z" level=info module="c2s" event="connection-open" connection="198d2e82-5d14-46f8-b462-c141235bc499" "transport"="tcp" "peer"="127.0.0.1:34456" "host"="localhost" +timestamp="2026-10-20T10:29:51.205Z" level=info module="c2s" event="connection-open" connection="4518bb34-8105-4709-9e22-b9ed1fed731b" "transport"="tcp" "peer"="127.0.0.1:34464" "host"="localhost" +timestamp="2026-10-20T10:29:51.205Z" level=info module="c2s" event="tls-established" connection="133d13d0-09a7-4a41-834d-1cde87d6182a" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.205Z" level=info module="c2s" event="sasl-features" connection="133d13d0-09a7-4a41-834d-1cde87d6182a" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.215Z" level=info module="c2s" event="resource-bound" connection="c2a40dda-f33e-4152-aeac-40550d8305f8" "jid"="load-35@localhost/load-435" "mode"="legacy" +timestamp="2026-10-20T10:29:51.234Z" level=info module="c2s" event="connection-open" connection="d873b04d-7613-40c7-b496-13a10c3f0b50" "transport"="tcp" "peer"="127.0.0.1:34494" "host"="localhost" +timestamp="2026-10-20T10:29:51.242Z" level=info module="c2s" event="connection-open" connection="ee0792f0-e751-4221-8f0b-cba75d3cce0e" "transport"="tcp" "peer"="127.0.0.1:34484" "host"="localhost" +timestamp="2026-10-20T10:29:51.242Z" level=info module="c2s" event="connection-open" connection="fa468ae5-85b7-45c0-a841-2c83dc7c2925" "transport"="tcp" "peer"="127.0.0.1:34492" "host"="localhost" +timestamp="2026-10-20T10:29:51.242Z" level=info module="c2s" event="sasl-attempt" connection="133d13d0-09a7-4a41-834d-1cde87d6182a" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.242Z" level=info module="c2s" event="auth-identity" connection="133d13d0-09a7-4a41-834d-1cde87d6182a" "user"="load-39" +timestamp="2026-10-20T10:29:51.245Z" level=info module="c2s" event="auth-success" connection="133d13d0-09a7-4a41-834d-1cde87d6182a" "user"="load-39" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.264Z" level=info module="c2s" event="connection-open" connection="a70dbd67-6638-4a51-90ee-bf7ade7d36d4" "transport"="tcp" "peer"="127.0.0.1:34516" "host"="localhost" +timestamp="2026-10-20T10:29:51.272Z" level=info module="c2s" event="connection-open" connection="284f7293-eec0-46c8-8405-c66409041105" "transport"="tcp" "peer"="127.0.0.1:34502" "host"="localhost" +timestamp="2026-10-20T10:29:51.272Z" level=info module="c2s" event="resource-bound" connection="133d13d0-09a7-4a41-834d-1cde87d6182a" "jid"="load-39@localhost/load-439" "mode"="legacy" +timestamp="2026-10-20T10:29:51.276Z" level=info module="c2s" event="tls-established" connection="4a7d1f61-af39-482d-926b-333b2428ff06" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.276Z" level=info module="c2s" event="sasl-features" connection="4a7d1f61-af39-482d-926b-333b2428ff06" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.287Z" level=info module="c2s" event="tls-established" connection="c60ea939-7d95-4fb5-aed7-b5415b5ddeb5" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.287Z" level=info module="c2s" event="sasl-features" connection="c60ea939-7d95-4fb5-aed7-b5415b5ddeb5" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.287Z" level=info module="c2s" event="tls-established" connection="538c6fbf-1326-4d9a-8816-a8bd1581b3d6" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.287Z" level=info module="c2s" event="sasl-features" connection="538c6fbf-1326-4d9a-8816-a8bd1581b3d6" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.287Z" level=info module="c2s" event="tls-established" connection="e4239238-6814-494e-bc53-6c37363decee" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.287Z" level=info module="c2s" event="sasl-features" connection="e4239238-6814-494e-bc53-6c37363decee" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.287Z" level=info module="c2s" event="tls-established" connection="e6aa592d-ed65-450e-9c98-3e1b137d85ba" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.287Z" level=info module="c2s" event="sasl-features" connection="e6aa592d-ed65-450e-9c98-3e1b137d85ba" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.287Z" level=info module="c2s" event="tls-established" connection="4518bb34-8105-4709-9e22-b9ed1fed731b" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.287Z" level=info module="c2s" event="sasl-features" connection="4518bb34-8105-4709-9e22-b9ed1fed731b" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.287Z" level=info module="c2s" event="connection-open" connection="5eb3cb4d-5bc9-4745-b945-0e78d69b855c" "transport"="tcp" "peer"="127.0.0.1:34540" "host"="localhost" +timestamp="2026-10-20T10:29:51.287Z" level=info module="c2s" event="tls-established" connection="2885ed94-8e92-477e-a466-1a42ee564bda" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.287Z" level=info module="c2s" event="sasl-features" connection="2885ed94-8e92-477e-a466-1a42ee564bda" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.287Z" level=info module="c2s" event="tls-established" connection="198d2e82-5d14-46f8-b462-c141235bc499" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.287Z" level=info module="c2s" event="sasl-features" connection="198d2e82-5d14-46f8-b462-c141235bc499" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.287Z" level=info module="c2s" event="tls-established" connection="8e8a5a29-f646-4706-937c-64b74b66d644" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.287Z" level=info module="c2s" event="sasl-features" connection="8e8a5a29-f646-4706-937c-64b74b66d644" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.288Z" level=info module="c2s" event="sasl-attempt" connection="4a7d1f61-af39-482d-926b-333b2428ff06" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.288Z" level=info module="c2s" event="auth-identity" connection="4a7d1f61-af39-482d-926b-333b2428ff06" "user"="load-42" +timestamp="2026-10-20T10:29:51.288Z" level=info module="c2s" event="connection-open" connection="b282dc59-1985-41e8-acc3-540898a66b1d" "transport"="tcp" "peer"="127.0.0.1:34524" "host"="localhost" +timestamp="2026-10-20T10:29:51.288Z" level=info module="c2s" event="sasl-attempt" connection="c60ea939-7d95-4fb5-aed7-b5415b5ddeb5" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.288Z" level=info module="c2s" event="auth-identity" connection="c60ea939-7d95-4fb5-aed7-b5415b5ddeb5" "user"="load-40" +timestamp="2026-10-20T10:29:51.288Z" level=info module="c2s" event="tls-established" connection="a70dbd67-6638-4a51-90ee-bf7ade7d36d4" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.288Z" level=info module="c2s" event="sasl-features" connection="a70dbd67-6638-4a51-90ee-bf7ade7d36d4" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.288Z" level=info module="c2s" event="tls-established" connection="fa468ae5-85b7-45c0-a841-2c83dc7c2925" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.288Z" level=info module="c2s" event="sasl-features" connection="fa468ae5-85b7-45c0-a841-2c83dc7c2925" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.289Z" level=info module="c2s" event="sasl-attempt" connection="538c6fbf-1326-4d9a-8816-a8bd1581b3d6" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.289Z" level=info module="c2s" event="auth-identity" connection="538c6fbf-1326-4d9a-8816-a8bd1581b3d6" "user"="load-48" +timestamp="2026-10-20T10:29:51.289Z" level=info module="c2s" event="sasl-attempt" connection="e4239238-6814-494e-bc53-6c37363decee" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.289Z" level=info module="c2s" event="auth-identity" connection="e4239238-6814-494e-bc53-6c37363decee" "user"="load-44" +timestamp="2026-10-20T10:29:51.289Z" level=info module="c2s" event="sasl-attempt" connection="e6aa592d-ed65-450e-9c98-3e1b137d85ba" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.289Z" level=info module="c2s" event="auth-identity" connection="e6aa592d-ed65-450e-9c98-3e1b137d85ba" "user"="load-41" +timestamp="2026-10-20T10:29:51.289Z" level=info module="c2s" event="sasl-attempt" connection="4518bb34-8105-4709-9e22-b9ed1fed731b" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.289Z" level=info module="c2s" event="auth-identity" connection="4518bb34-8105-4709-9e22-b9ed1fed731b" "user"="load-47" +timestamp="2026-10-20T10:29:51.289Z" level=info module="c2s" event="sasl-attempt" connection="2885ed94-8e92-477e-a466-1a42ee564bda" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.289Z" level=info module="c2s" event="auth-identity" connection="2885ed94-8e92-477e-a466-1a42ee564bda" "user"="load-43" +timestamp="2026-10-20T10:29:51.289Z" level=info module="c2s" event="sasl-attempt" connection="198d2e82-5d14-46f8-b462-c141235bc499" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.289Z" level=info module="c2s" event="auth-identity" connection="198d2e82-5d14-46f8-b462-c141235bc499" "user"="load-46" +timestamp="2026-10-20T10:29:51.289Z" level=info module="c2s" event="sasl-attempt" connection="8e8a5a29-f646-4706-937c-64b74b66d644" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.289Z" level=info module="c2s" event="auth-identity" connection="8e8a5a29-f646-4706-937c-64b74b66d644" "user"="load-45" +timestamp="2026-10-20T10:29:51.289Z" level=info module="c2s" event="tls-established" connection="ee0792f0-e751-4221-8f0b-cba75d3cce0e" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.289Z" level=info module="c2s" event="sasl-features" connection="ee0792f0-e751-4221-8f0b-cba75d3cce0e" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.289Z" level=info module="c2s" event="auth-success" connection="4a7d1f61-af39-482d-926b-333b2428ff06" "user"="load-42" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.289Z" level=info module="c2s" event="tls-established" connection="d873b04d-7613-40c7-b496-13a10c3f0b50" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.289Z" level=info module="c2s" event="sasl-features" connection="d873b04d-7613-40c7-b496-13a10c3f0b50" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.289Z" level=info module="c2s" event="auth-success" connection="c60ea939-7d95-4fb5-aed7-b5415b5ddeb5" "user"="load-40" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.290Z" level=info module="c2s" event="tls-established" connection="284f7293-eec0-46c8-8405-c66409041105" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.290Z" level=info module="c2s" event="sasl-features" connection="284f7293-eec0-46c8-8405-c66409041105" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.290Z" level=info module="c2s" event="auth-success" connection="538c6fbf-1326-4d9a-8816-a8bd1581b3d6" "user"="load-48" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.290Z" level=info module="c2s" event="sasl-attempt" connection="a70dbd67-6638-4a51-90ee-bf7ade7d36d4" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.290Z" level=info module="c2s" event="auth-identity" connection="a70dbd67-6638-4a51-90ee-bf7ade7d36d4" "user"="load-53" +timestamp="2026-10-20T10:29:51.290Z" level=info module="c2s" event="auth-success" connection="e4239238-6814-494e-bc53-6c37363decee" "user"="load-44" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.290Z" level=info module="c2s" event="sasl-attempt" connection="ee0792f0-e751-4221-8f0b-cba75d3cce0e" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.290Z" level=info module="c2s" event="auth-identity" connection="ee0792f0-e751-4221-8f0b-cba75d3cce0e" "user"="load-49" +timestamp="2026-10-20T10:29:51.290Z" level=info module="c2s" event="sasl-attempt" connection="d873b04d-7613-40c7-b496-13a10c3f0b50" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.290Z" level=info module="c2s" event="auth-identity" connection="d873b04d-7613-40c7-b496-13a10c3f0b50" "user"="load-51" +timestamp="2026-10-20T10:29:51.290Z" level=info module="c2s" event="sasl-attempt" connection="fa468ae5-85b7-45c0-a841-2c83dc7c2925" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.290Z" level=info module="c2s" event="auth-identity" connection="fa468ae5-85b7-45c0-a841-2c83dc7c2925" "user"="load-50" +timestamp="2026-10-20T10:29:51.290Z" level=info module="c2s" event="sasl-attempt" connection="284f7293-eec0-46c8-8405-c66409041105" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.290Z" level=info module="c2s" event="auth-identity" connection="284f7293-eec0-46c8-8405-c66409041105" "user"="load-52" +timestamp="2026-10-20T10:29:51.290Z" level=info module="c2s" event="auth-success" connection="e6aa592d-ed65-450e-9c98-3e1b137d85ba" "user"="load-41" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.291Z" level=info module="c2s" event="auth-success" connection="4518bb34-8105-4709-9e22-b9ed1fed731b" "user"="load-47" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.291Z" level=info module="c2s" event="auth-success" connection="2885ed94-8e92-477e-a466-1a42ee564bda" "user"="load-43" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.291Z" level=info module="c2s" event="auth-success" connection="198d2e82-5d14-46f8-b462-c141235bc499" "user"="load-46" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.291Z" level=info module="c2s" event="auth-success" connection="8e8a5a29-f646-4706-937c-64b74b66d644" "user"="load-45" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.292Z" level=info module="c2s" event="resource-bound" connection="e4239238-6814-494e-bc53-6c37363decee" "jid"="load-44@localhost/load-444" "mode"="legacy" +timestamp="2026-10-20T10:29:51.292Z" level=info module="c2s" event="resource-bound" connection="4a7d1f61-af39-482d-926b-333b2428ff06" "jid"="load-42@localhost/load-442" "mode"="legacy" +timestamp="2026-10-20T10:29:51.292Z" level=info module="c2s" event="resource-bound" connection="c60ea939-7d95-4fb5-aed7-b5415b5ddeb5" "jid"="load-40@localhost/load-440" "mode"="legacy" +timestamp="2026-10-20T10:29:51.292Z" level=info module="c2s" event="resource-bound" connection="538c6fbf-1326-4d9a-8816-a8bd1581b3d6" "jid"="load-48@localhost/load-448" "mode"="legacy" +timestamp="2026-10-20T10:29:51.292Z" level=info module="c2s" event="tls-established" connection="b282dc59-1985-41e8-acc3-540898a66b1d" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.292Z" level=info module="c2s" event="sasl-features" connection="b282dc59-1985-41e8-acc3-540898a66b1d" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.293Z" level=info module="c2s" event="resource-bound" connection="4518bb34-8105-4709-9e22-b9ed1fed731b" "jid"="load-47@localhost/load-447" "mode"="legacy" +timestamp="2026-10-20T10:29:51.293Z" level=info module="c2s" event="auth-success" connection="ee0792f0-e751-4221-8f0b-cba75d3cce0e" "user"="load-49" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.293Z" level=info module="c2s" event="tls-established" connection="5eb3cb4d-5bc9-4745-b945-0e78d69b855c" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.293Z" level=info module="c2s" event="sasl-features" connection="5eb3cb4d-5bc9-4745-b945-0e78d69b855c" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.293Z" level=info module="c2s" event="auth-success" connection="fa468ae5-85b7-45c0-a841-2c83dc7c2925" "user"="load-50" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.293Z" level=info module="c2s" event="auth-success" connection="284f7293-eec0-46c8-8405-c66409041105" "user"="load-52" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.293Z" level=info module="c2s" event="auth-success" connection="a70dbd67-6638-4a51-90ee-bf7ade7d36d4" "user"="load-53" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.305Z" level=info module="c2s" event="auth-success" connection="d873b04d-7613-40c7-b496-13a10c3f0b50" "user"="load-51" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.307Z" level=info module="c2s" event="resource-bound" connection="2885ed94-8e92-477e-a466-1a42ee564bda" "jid"="load-43@localhost/load-443" "mode"="legacy" +timestamp="2026-10-20T10:29:51.309Z" level=info module="c2s" event="resource-bound" connection="e6aa592d-ed65-450e-9c98-3e1b137d85ba" "jid"="load-41@localhost/load-441" "mode"="legacy" +timestamp="2026-10-20T10:29:51.311Z" level=info module="c2s" event="sasl-attempt" connection="b282dc59-1985-41e8-acc3-540898a66b1d" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.311Z" level=info module="c2s" event="auth-identity" connection="b282dc59-1985-41e8-acc3-540898a66b1d" "user"="load-54" +timestamp="2026-10-20T10:29:51.316Z" level=info module="c2s" event="auth-success" connection="b282dc59-1985-41e8-acc3-540898a66b1d" "user"="load-54" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.316Z" level=info module="c2s" event="resource-bound" connection="8e8a5a29-f646-4706-937c-64b74b66d644" "jid"="load-45@localhost/load-445" "mode"="legacy" +timestamp="2026-10-20T10:29:51.320Z" level=info module="c2s" event="sasl-attempt" connection="5eb3cb4d-5bc9-4745-b945-0e78d69b855c" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.320Z" level=info module="c2s" event="auth-identity" connection="5eb3cb4d-5bc9-4745-b945-0e78d69b855c" "user"="load-55" +timestamp="2026-10-20T10:29:51.322Z" level=info module="c2s" event="auth-success" connection="5eb3cb4d-5bc9-4745-b945-0e78d69b855c" "user"="load-55" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.325Z" level=info module="c2s" event="resource-bound" connection="198d2e82-5d14-46f8-b462-c141235bc499" "jid"="load-46@localhost/load-446" "mode"="legacy" +timestamp="2026-10-20T10:29:51.327Z" level=info module="c2s" event="resource-bound" connection="d873b04d-7613-40c7-b496-13a10c3f0b50" "jid"="load-51@localhost/load-451" "mode"="legacy" +timestamp="2026-10-20T10:29:51.337Z" level=info module="c2s" event="connection-open" connection="c558aa97-0b2c-4047-aea0-953b322366c8" "transport"="tcp" "peer"="127.0.0.1:34584" "host"="localhost" +timestamp="2026-10-20T10:29:51.337Z" level=info module="c2s" event="connection-open" connection="49449ec1-bd64-49eb-bc96-f8b2fc9b3fac" "transport"="tcp" "peer"="127.0.0.1:34556" "host"="localhost" +timestamp="2026-10-20T10:29:51.337Z" level=info module="c2s" event="connection-open" connection="1397200d-ad3e-4485-9f43-e7c432084b59" "transport"="tcp" "peer"="127.0.0.1:34566" "host"="localhost" +timestamp="2026-10-20T10:29:51.337Z" level=info module="c2s" event="connection-open" connection="b4b03b00-cd7d-4614-8970-47dfe4c49d3d" "transport"="tcp" "peer"="127.0.0.1:34580" "host"="localhost" +timestamp="2026-10-20T10:29:51.339Z" level=info module="c2s" event="resource-bound" connection="a70dbd67-6638-4a51-90ee-bf7ade7d36d4" "jid"="load-53@localhost/load-453" "mode"="legacy" +timestamp="2026-10-20T10:29:51.354Z" level=info module="c2s" event="resource-bound" connection="284f7293-eec0-46c8-8405-c66409041105" "jid"="load-52@localhost/load-452" "mode"="legacy" +timestamp="2026-10-20T10:29:51.355Z" level=info module="c2s" event="resource-bound" connection="fa468ae5-85b7-45c0-a841-2c83dc7c2925" "jid"="load-50@localhost/load-450" "mode"="legacy" +timestamp="2026-10-20T10:29:51.355Z" level=info module="c2s" event="resource-bound" connection="ee0792f0-e751-4221-8f0b-cba75d3cce0e" "jid"="load-49@localhost/load-449" "mode"="legacy" +timestamp="2026-10-20T10:29:51.365Z" level=info module="c2s" event="resource-bound" connection="5eb3cb4d-5bc9-4745-b945-0e78d69b855c" "jid"="load-55@localhost/load-455" "mode"="legacy" +timestamp="2026-10-20T10:29:51.379Z" level=info module="c2s" event="connection-open" connection="489a13c8-0a97-43c5-b29e-54700aade28c" "transport"="tcp" "peer"="127.0.0.1:34636" "host"="localhost" +timestamp="2026-10-20T10:29:51.382Z" level=info module="c2s" event="connection-open" connection="40e52c0b-9370-494d-8175-cd5f2bc0a4fe" "transport"="tcp" "peer"="127.0.0.1:34610" "host"="localhost" +timestamp="2026-10-20T10:29:51.382Z" level=info module="c2s" event="connection-open" connection="0b727484-3910-43eb-ac22-b72f36be7df5" "transport"="tcp" "peer"="127.0.0.1:34592" "host"="localhost" +timestamp="2026-10-20T10:29:51.382Z" level=info module="c2s" event="connection-open" connection="879e01ec-b63d-49f3-8e55-64d02e035c1a" "transport"="tcp" "peer"="127.0.0.1:34600" "host"="localhost" +timestamp="2026-10-20T10:29:51.385Z" level=info module="c2s" event="connection-open" connection="fe00928e-4fbf-46e5-b591-9765027072d9" "transport"="tcp" "peer"="127.0.0.1:34626" "host"="localhost" +timestamp="2026-10-20T10:29:51.385Z" level=info module="c2s" event="connection-open" connection="82a10652-b8e8-4f77-9481-c43b33164245" "transport"="tcp" "peer"="127.0.0.1:34630" "host"="localhost" +timestamp="2026-10-20T10:29:51.386Z" level=info module="c2s" event="resource-bound" connection="b282dc59-1985-41e8-acc3-540898a66b1d" "jid"="load-54@localhost/load-454" "mode"="legacy" +timestamp="2026-10-20T10:29:51.413Z" level=info module="c2s" event="tls-established" connection="49449ec1-bd64-49eb-bc96-f8b2fc9b3fac" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.413Z" level=info module="c2s" event="sasl-features" connection="49449ec1-bd64-49eb-bc96-f8b2fc9b3fac" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.415Z" level=info module="c2s" event="connection-open" connection="576056e5-5797-486b-885c-cf4225c22a0c" "transport"="tcp" "peer"="127.0.0.1:34656" "host"="localhost" +timestamp="2026-10-20T10:29:51.415Z" level=info module="c2s" event="connection-open" connection="08ad7b5f-25bf-483d-9679-85186810b75e" "transport"="tcp" "peer"="127.0.0.1:34642" "host"="localhost" +timestamp="2026-10-20T10:29:51.441Z" level=info module="c2s" event="tls-established" connection="b4b03b00-cd7d-4614-8970-47dfe4c49d3d" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.441Z" level=info module="c2s" event="sasl-features" connection="b4b03b00-cd7d-4614-8970-47dfe4c49d3d" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.441Z" level=info module="c2s" event="tls-established" connection="1397200d-ad3e-4485-9f43-e7c432084b59" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.441Z" level=info module="c2s" event="sasl-features" connection="1397200d-ad3e-4485-9f43-e7c432084b59" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.441Z" level=info module="c2s" event="tls-established" connection="c558aa97-0b2c-4047-aea0-953b322366c8" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.441Z" level=info module="c2s" event="sasl-features" connection="c558aa97-0b2c-4047-aea0-953b322366c8" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.446Z" level=info module="c2s" event="connection-open" connection="f12da644-12c9-4623-ab98-fe8995b6b8ca" "transport"="tcp" "peer"="127.0.0.1:34682" "host"="localhost" +timestamp="2026-10-20T10:29:51.446Z" level=info module="c2s" event="connection-open" connection="71f41239-5e91-451d-b0f8-f6e4a9fa6092" "transport"="tcp" "peer"="127.0.0.1:34668" "host"="localhost" +timestamp="2026-10-20T10:29:51.446Z" level=info module="c2s" event="connection-open" connection="27a68312-ed40-491e-82bd-7a6dba82ab3c" "transport"="tcp" "peer"="127.0.0.1:34672" "host"="localhost" +timestamp="2026-10-20T10:29:51.446Z" level=info module="c2s" event="tls-established" connection="82a10652-b8e8-4f77-9481-c43b33164245" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.446Z" level=info module="c2s" event="sasl-features" connection="82a10652-b8e8-4f77-9481-c43b33164245" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.446Z" level=info module="c2s" event="sasl-attempt" connection="49449ec1-bd64-49eb-bc96-f8b2fc9b3fac" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.446Z" level=info module="c2s" event="auth-identity" connection="49449ec1-bd64-49eb-bc96-f8b2fc9b3fac" "user"="load-56" +timestamp="2026-10-20T10:29:51.446Z" level=info module="c2s" event="sasl-attempt" connection="b4b03b00-cd7d-4614-8970-47dfe4c49d3d" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.446Z" level=info module="c2s" event="auth-identity" connection="b4b03b00-cd7d-4614-8970-47dfe4c49d3d" "user"="load-58" +timestamp="2026-10-20T10:29:51.446Z" level=info module="c2s" event="sasl-attempt" connection="1397200d-ad3e-4485-9f43-e7c432084b59" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.446Z" level=info module="c2s" event="auth-identity" connection="1397200d-ad3e-4485-9f43-e7c432084b59" "user"="load-57" +timestamp="2026-10-20T10:29:51.446Z" level=info module="c2s" event="sasl-attempt" connection="c558aa97-0b2c-4047-aea0-953b322366c8" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.446Z" level=info module="c2s" event="auth-identity" connection="c558aa97-0b2c-4047-aea0-953b322366c8" "user"="load-59" +timestamp="2026-10-20T10:29:51.446Z" level=info module="c2s" event="tls-established" connection="489a13c8-0a97-43c5-b29e-54700aade28c" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.446Z" level=info module="c2s" event="sasl-features" connection="489a13c8-0a97-43c5-b29e-54700aade28c" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.446Z" level=info module="c2s" event="tls-established" connection="879e01ec-b63d-49f3-8e55-64d02e035c1a" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.446Z" level=info module="c2s" event="sasl-features" connection="879e01ec-b63d-49f3-8e55-64d02e035c1a" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.446Z" level=info module="c2s" event="tls-established" connection="fe00928e-4fbf-46e5-b591-9765027072d9" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.446Z" level=info module="c2s" event="sasl-features" connection="fe00928e-4fbf-46e5-b591-9765027072d9" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.446Z" level=info module="c2s" event="tls-established" connection="40e52c0b-9370-494d-8175-cd5f2bc0a4fe" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.446Z" level=info module="c2s" event="sasl-features" connection="40e52c0b-9370-494d-8175-cd5f2bc0a4fe" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.446Z" level=info module="c2s" event="sasl-attempt" connection="82a10652-b8e8-4f77-9481-c43b33164245" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.446Z" level=info module="c2s" event="auth-identity" connection="82a10652-b8e8-4f77-9481-c43b33164245" "user"="load-64" +timestamp="2026-10-20T10:29:51.451Z" level=info module="c2s" event="auth-success" connection="49449ec1-bd64-49eb-bc96-f8b2fc9b3fac" "user"="load-56" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.451Z" level=info module="c2s" event="auth-success" connection="b4b03b00-cd7d-4614-8970-47dfe4c49d3d" "user"="load-58" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.451Z" level=info module="c2s" event="auth-success" connection="1397200d-ad3e-4485-9f43-e7c432084b59" "user"="load-57" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.451Z" level=info module="c2s" event="auth-success" connection="c558aa97-0b2c-4047-aea0-953b322366c8" "user"="load-59" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.451Z" level=info module="c2s" event="auth-success" connection="82a10652-b8e8-4f77-9481-c43b33164245" "user"="load-64" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.451Z" level=info module="c2s" event="connection-open" connection="f8e7e653-fbee-48b2-b486-58890b7d3cca" "transport"="tcp" "peer"="127.0.0.1:34696" "host"="localhost" +timestamp="2026-10-20T10:29:51.452Z" level=info module="c2s" event="sasl-attempt" connection="489a13c8-0a97-43c5-b29e-54700aade28c" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.452Z" level=info module="c2s" event="auth-identity" connection="489a13c8-0a97-43c5-b29e-54700aade28c" "user"="load-65" +timestamp="2026-10-20T10:29:51.452Z" level=info module="c2s" event="tls-established" connection="0b727484-3910-43eb-ac22-b72f36be7df5" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.452Z" level=info module="c2s" event="sasl-features" connection="0b727484-3910-43eb-ac22-b72f36be7df5" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.452Z" level=info module="c2s" event="sasl-attempt" connection="879e01ec-b63d-49f3-8e55-64d02e035c1a" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.452Z" level=info module="c2s" event="auth-identity" connection="879e01ec-b63d-49f3-8e55-64d02e035c1a" "user"="load-61" +timestamp="2026-10-20T10:29:51.452Z" level=info module="c2s" event="sasl-attempt" connection="fe00928e-4fbf-46e5-b591-9765027072d9" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.452Z" level=info module="c2s" event="auth-identity" connection="fe00928e-4fbf-46e5-b591-9765027072d9" "user"="load-63" +timestamp="2026-10-20T10:29:51.453Z" level=info module="c2s" event="sasl-attempt" connection="40e52c0b-9370-494d-8175-cd5f2bc0a4fe" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.453Z" level=info module="c2s" event="auth-identity" connection="40e52c0b-9370-494d-8175-cd5f2bc0a4fe" "user"="load-62" +timestamp="2026-10-20T10:29:51.455Z" level=info module="c2s" event="auth-success" connection="40e52c0b-9370-494d-8175-cd5f2bc0a4fe" "user"="load-62" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.455Z" level=info module="c2s" event="auth-success" connection="489a13c8-0a97-43c5-b29e-54700aade28c" "user"="load-65" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.465Z" level=info module="c2s" event="auth-success" connection="fe00928e-4fbf-46e5-b591-9765027072d9" "user"="load-63" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.465Z" level=info module="c2s" event="auth-success" connection="879e01ec-b63d-49f3-8e55-64d02e035c1a" "user"="load-61" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.465Z" level=info module="c2s" event="connection-open" connection="2599dca7-3eb9-454d-be79-068b5a145eef" "transport"="tcp" "peer"="127.0.0.1:34724" "host"="localhost" +timestamp="2026-10-20T10:29:51.466Z" level=info module="c2s" event="tls-established" connection="08ad7b5f-25bf-483d-9679-85186810b75e" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.466Z" level=info module="c2s" event="sasl-features" connection="08ad7b5f-25bf-483d-9679-85186810b75e" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.466Z" level=info module="c2s" event="tls-established" connection="576056e5-5797-486b-885c-cf4225c22a0c" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.466Z" level=info module="c2s" event="sasl-features" connection="576056e5-5797-486b-885c-cf4225c22a0c" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.466Z" level=info module="c2s" event="sasl-attempt" connection="0b727484-3910-43eb-ac22-b72f36be7df5" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.466Z" level=info module="c2s" event="auth-identity" connection="0b727484-3910-43eb-ac22-b72f36be7df5" "user"="load-60" +timestamp="2026-10-20T10:29:51.466Z" level=info module="c2s" event="connection-open" connection="1896b448-e6b1-42f5-9ef9-2001d29e59a6" "transport"="tcp" "peer"="127.0.0.1:34704" "host"="localhost" +timestamp="2026-10-20T10:29:51.466Z" level=info module="c2s" event="connection-open" connection="e63e4267-d391-476f-b2a4-78694a9b005e" "transport"="tcp" "peer"="127.0.0.1:34712" "host"="localhost" +timestamp="2026-10-20T10:29:51.466Z" level=info module="c2s" event="resource-bound" connection="c558aa97-0b2c-4047-aea0-953b322366c8" "jid"="load-59@localhost/load-459" "mode"="legacy" +timestamp="2026-10-20T10:29:51.466Z" level=info module="c2s" event="sasl-attempt" connection="08ad7b5f-25bf-483d-9679-85186810b75e" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.466Z" level=info module="c2s" event="auth-identity" connection="08ad7b5f-25bf-483d-9679-85186810b75e" "user"="load-66" +timestamp="2026-10-20T10:29:51.467Z" level=info module="c2s" event="resource-bound" connection="b4b03b00-cd7d-4614-8970-47dfe4c49d3d" "jid"="load-58@localhost/load-458" "mode"="legacy" +timestamp="2026-10-20T10:29:51.467Z" level=info module="c2s" event="sasl-attempt" connection="576056e5-5797-486b-885c-cf4225c22a0c" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.467Z" level=info module="c2s" event="auth-identity" connection="576056e5-5797-486b-885c-cf4225c22a0c" "user"="load-67" +timestamp="2026-10-20T10:29:51.467Z" level=info module="c2s" event="resource-bound" connection="49449ec1-bd64-49eb-bc96-f8b2fc9b3fac" "jid"="load-56@localhost/load-456" "mode"="legacy" +timestamp="2026-10-20T10:29:51.467Z" level=info module="c2s" event="resource-bound" connection="1397200d-ad3e-4485-9f43-e7c432084b59" "jid"="load-57@localhost/load-457" "mode"="legacy" +timestamp="2026-10-20T10:29:51.467Z" level=info module="c2s" event="tls-established" connection="f12da644-12c9-4623-ab98-fe8995b6b8ca" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.467Z" level=info module="c2s" event="sasl-features" connection="f12da644-12c9-4623-ab98-fe8995b6b8ca" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.467Z" level=info module="c2s" event="resource-bound" connection="82a10652-b8e8-4f77-9481-c43b33164245" "jid"="load-64@localhost/load-464" "mode"="legacy" +timestamp="2026-10-20T10:29:51.467Z" level=info module="c2s" event="auth-success" connection="0b727484-3910-43eb-ac22-b72f36be7df5" "user"="load-60" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.468Z" level=info module="c2s" event="auth-success" connection="08ad7b5f-25bf-483d-9679-85186810b75e" "user"="load-66" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.468Z" level=info module="c2s" event="resource-bound" connection="489a13c8-0a97-43c5-b29e-54700aade28c" "jid"="load-65@localhost/load-465" "mode"="legacy" +timestamp="2026-10-20T10:29:51.468Z" level=info module="c2s" event="resource-bound" connection="40e52c0b-9370-494d-8175-cd5f2bc0a4fe" "jid"="load-62@localhost/load-462" "mode"="legacy" +timestamp="2026-10-20T10:29:51.468Z" level=info module="c2s" event="resource-bound" connection="879e01ec-b63d-49f3-8e55-64d02e035c1a" "jid"="load-61@localhost/load-461" "mode"="legacy" +timestamp="2026-10-20T10:29:51.468Z" level=info module="c2s" event="resource-bound" connection="fe00928e-4fbf-46e5-b591-9765027072d9" "jid"="load-63@localhost/load-463" "mode"="legacy" +timestamp="2026-10-20T10:29:51.474Z" level=info module="c2s" event="auth-success" connection="576056e5-5797-486b-885c-cf4225c22a0c" "user"="load-67" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.474Z" level=info module="c2s" event="connection-open" connection="38fdd6b0-ef4b-4b14-a996-66f3211a4500" "transport"="tcp" "peer"="127.0.0.1:34732" "host"="localhost" +timestamp="2026-10-20T10:29:51.474Z" level=info module="c2s" event="tls-established" connection="27a68312-ed40-491e-82bd-7a6dba82ab3c" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.474Z" level=info module="c2s" event="sasl-features" connection="27a68312-ed40-491e-82bd-7a6dba82ab3c" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.485Z" level=info module="c2s" event="tls-established" connection="f8e7e653-fbee-48b2-b486-58890b7d3cca" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.485Z" level=info module="c2s" event="sasl-features" connection="f8e7e653-fbee-48b2-b486-58890b7d3cca" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.485Z" level=info module="c2s" event="sasl-attempt" connection="27a68312-ed40-491e-82bd-7a6dba82ab3c" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.485Z" level=info module="c2s" event="auth-identity" connection="27a68312-ed40-491e-82bd-7a6dba82ab3c" "user"="load-69" +timestamp="2026-10-20T10:29:51.487Z" level=info module="c2s" event="auth-success" connection="27a68312-ed40-491e-82bd-7a6dba82ab3c" "user"="load-69" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.491Z" level=info module="c2s" event="tls-established" connection="71f41239-5e91-451d-b0f8-f6e4a9fa6092" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.491Z" level=info module="c2s" event="sasl-features" connection="71f41239-5e91-451d-b0f8-f6e4a9fa6092" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.495Z" level=info module="c2s" event="sasl-attempt" connection="f12da644-12c9-4623-ab98-fe8995b6b8ca" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.495Z" level=info module="c2s" event="auth-identity" connection="f12da644-12c9-4623-ab98-fe8995b6b8ca" "user"="load-70" +timestamp="2026-10-20T10:29:51.499Z" level=info module="c2s" event="auth-success" connection="f12da644-12c9-4623-ab98-fe8995b6b8ca" "user"="load-70" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.502Z" level=info module="c2s" event="tls-established" connection="e63e4267-d391-476f-b2a4-78694a9b005e" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.502Z" level=info module="c2s" event="sasl-features" connection="e63e4267-d391-476f-b2a4-78694a9b005e" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.502Z" level=info module="c2s" event="sasl-attempt" connection="f8e7e653-fbee-48b2-b486-58890b7d3cca" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.502Z" level=info module="c2s" event="auth-identity" connection="f8e7e653-fbee-48b2-b486-58890b7d3cca" "user"="load-71" +timestamp="2026-10-20T10:29:51.503Z" level=info module="c2s" event="resource-bound" connection="576056e5-5797-486b-885c-cf4225c22a0c" "jid"="load-67@localhost/load-467" "mode"="legacy" +timestamp="2026-10-20T10:29:51.507Z" level=info module="c2s" event="auth-success" connection="f8e7e653-fbee-48b2-b486-58890b7d3cca" "user"="load-71" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.507Z" level=info module="c2s" event="tls-established" connection="2599dca7-3eb9-454d-be79-068b5a145eef" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.507Z" level=info module="c2s" event="sasl-features" connection="2599dca7-3eb9-454d-be79-068b5a145eef" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.507Z" level=info module="c2s" event="resource-bound" connection="0b727484-3910-43eb-ac22-b72f36be7df5" "jid"="load-60@localhost/load-460" "mode"="legacy" +timestamp="2026-10-20T10:29:51.507Z" level=info module="c2s" event="tls-established" connection="1896b448-e6b1-42f5-9ef9-2001d29e59a6" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.507Z" level=info module="c2s" event="sasl-features" connection="1896b448-e6b1-42f5-9ef9-2001d29e59a6" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.507Z" level=info module="c2s" event="sasl-attempt" connection="71f41239-5e91-451d-b0f8-f6e4a9fa6092" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.507Z" level=info module="c2s" event="auth-identity" connection="71f41239-5e91-451d-b0f8-f6e4a9fa6092" "user"="load-68" +timestamp="2026-10-20T10:29:51.509Z" level=info module="c2s" event="connection-open" connection="b2c9d443-5407-453d-91d4-3b50ceb0e7c6" "transport"="tcp" "peer"="127.0.0.1:34746" "host"="localhost" +timestamp="2026-10-20T10:29:51.509Z" level=info module="c2s" event="resource-bound" connection="08ad7b5f-25bf-483d-9679-85186810b75e" "jid"="load-66@localhost/load-466" "mode"="legacy" +timestamp="2026-10-20T10:29:51.511Z" level=info module="c2s" event="auth-success" connection="71f41239-5e91-451d-b0f8-f6e4a9fa6092" "user"="load-68" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.511Z" level=info module="c2s" event="sasl-attempt" connection="e63e4267-d391-476f-b2a4-78694a9b005e" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.511Z" level=info module="c2s" event="auth-identity" connection="e63e4267-d391-476f-b2a4-78694a9b005e" "user"="load-73" +timestamp="2026-10-20T10:29:51.518Z" level=info module="c2s" event="auth-success" connection="e63e4267-d391-476f-b2a4-78694a9b005e" "user"="load-73" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.518Z" level=info module="c2s" event="resource-bound" connection="27a68312-ed40-491e-82bd-7a6dba82ab3c" "jid"="load-69@localhost/load-469" "mode"="legacy" +timestamp="2026-10-20T10:29:51.519Z" level=info module="c2s" event="sasl-attempt" connection="2599dca7-3eb9-454d-be79-068b5a145eef" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.519Z" level=info module="c2s" event="auth-identity" connection="2599dca7-3eb9-454d-be79-068b5a145eef" "user"="load-74" +timestamp="2026-10-20T10:29:51.523Z" level=info module="c2s" event="auth-success" connection="2599dca7-3eb9-454d-be79-068b5a145eef" "user"="load-74" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.523Z" level=info module="c2s" event="sasl-attempt" connection="1896b448-e6b1-42f5-9ef9-2001d29e59a6" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.523Z" level=info module="c2s" event="auth-identity" connection="1896b448-e6b1-42f5-9ef9-2001d29e59a6" "user"="load-72" +timestamp="2026-10-20T10:29:51.532Z" level=info module="c2s" event="auth-success" connection="1896b448-e6b1-42f5-9ef9-2001d29e59a6" "user"="load-72" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.533Z" level=info module="c2s" event="resource-bound" connection="f8e7e653-fbee-48b2-b486-58890b7d3cca" "jid"="load-71@localhost/load-471" "mode"="legacy" +timestamp="2026-10-20T10:29:51.538Z" level=info module="c2s" event="tls-established" connection="38fdd6b0-ef4b-4b14-a996-66f3211a4500" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.538Z" level=info module="c2s" event="sasl-features" connection="38fdd6b0-ef4b-4b14-a996-66f3211a4500" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.543Z" level=info module="c2s" event="sasl-attempt" connection="38fdd6b0-ef4b-4b14-a996-66f3211a4500" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.543Z" level=info module="c2s" event="auth-identity" connection="38fdd6b0-ef4b-4b14-a996-66f3211a4500" "user"="load-75" +timestamp="2026-10-20T10:29:51.558Z" level=info module="c2s" event="auth-success" connection="38fdd6b0-ef4b-4b14-a996-66f3211a4500" "user"="load-75" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.558Z" level=info module="c2s" event="resource-bound" connection="2599dca7-3eb9-454d-be79-068b5a145eef" "jid"="load-74@localhost/load-474" "mode"="legacy" +timestamp="2026-10-20T10:29:51.559Z" level=info module="c2s" event="connection-open" connection="695ad6f6-d466-4ed7-be87-f73d6169c14f" "transport"="tcp" "peer"="127.0.0.1:34782" "host"="localhost" +timestamp="2026-10-20T10:29:51.575Z" level=info module="c2s" event="connection-open" connection="c658f161-996b-46c4-9a5f-3a3f59486cfb" "transport"="tcp" "peer"="127.0.0.1:34752" "host"="localhost" +timestamp="2026-10-20T10:29:51.578Z" level=info module="c2s" event="connection-open" connection="5f2b2aa7-4b49-425f-b345-09ea2bb747f1" "transport"="tcp" "peer"="127.0.0.1:34756" "host"="localhost" +timestamp="2026-10-20T10:29:51.578Z" level=info module="c2s" event="connection-open" connection="d450851a-172b-423e-9907-1402eb3502f2" "transport"="tcp" "peer"="127.0.0.1:34754" "host"="localhost" +timestamp="2026-10-20T10:29:51.581Z" level=info module="c2s" event="resource-bound" connection="f12da644-12c9-4623-ab98-fe8995b6b8ca" "jid"="load-70@localhost/load-470" "mode"="legacy" +timestamp="2026-10-20T10:29:51.583Z" level=info module="c2s" event="connection-open" connection="936fdffe-d77d-4b20-8eb4-353c8729e5c8" "transport"="tcp" "peer"="127.0.0.1:34768" "host"="localhost" +timestamp="2026-10-20T10:29:51.583Z" level=info module="c2s" event="connection-open" connection="2bd5a40b-5b32-4bfb-9f2a-fb94085fd830" "transport"="tcp" "peer"="127.0.0.1:34772" "host"="localhost" +timestamp="2026-10-20T10:29:51.583Z" level=info module="c2s" event="resource-bound" connection="71f41239-5e91-451d-b0f8-f6e4a9fa6092" "jid"="load-68@localhost/load-468" "mode"="legacy" +timestamp="2026-10-20T10:29:51.583Z" level=info module="c2s" event="connection-open" connection="cdee97d4-a8af-4b09-9996-d1a4e692ab83" "transport"="tcp" "peer"="127.0.0.1:34798" "host"="localhost" +timestamp="2026-10-20T10:29:51.586Z" level=info module="c2s" event="connection-open" connection="3446e0a8-6642-4bc0-8c33-05b5786bc7c5" "transport"="tcp" "peer"="127.0.0.1:34784" "host"="localhost" +timestamp="2026-10-20T10:29:51.586Z" level=info module="c2s" event="resource-bound" connection="1896b448-e6b1-42f5-9ef9-2001d29e59a6" "jid"="load-72@localhost/load-472" "mode"="legacy" +timestamp="2026-10-20T10:29:51.598Z" level=info module="c2s" event="connection-open" connection="1e41cfe9-c56d-4591-9a9f-21040199aa77" "transport"="tcp" "peer"="127.0.0.1:34792" "host"="localhost" +timestamp="2026-10-20T10:29:51.599Z" level=info module="c2s" event="resource-bound" connection="e63e4267-d391-476f-b2a4-78694a9b005e" "jid"="load-73@localhost/load-473" "mode"="legacy" +timestamp="2026-10-20T10:29:51.604Z" level=info module="c2s" event="tls-established" connection="b2c9d443-5407-453d-91d4-3b50ceb0e7c6" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.604Z" level=info module="c2s" event="sasl-features" connection="b2c9d443-5407-453d-91d4-3b50ceb0e7c6" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.604Z" level=info module="c2s" event="resource-bound" connection="38fdd6b0-ef4b-4b14-a996-66f3211a4500" "jid"="load-75@localhost/load-475" "mode"="legacy" +timestamp="2026-10-20T10:29:51.616Z" level=info module="c2s" event="connection-open" connection="18fe9f66-537a-42ee-ba2b-86290d717c2c" "transport"="tcp" "peer"="127.0.0.1:34840" "host"="localhost" +timestamp="2026-10-20T10:29:51.617Z" level=info module="c2s" event="connection-open" connection="abb36700-d9f7-4246-aba4-d5c3efe463b6" "transport"="tcp" "peer"="127.0.0.1:34814" "host"="localhost" +timestamp="2026-10-20T10:29:51.617Z" level=info module="c2s" event="connection-open" connection="5f3ae8bd-9bf5-444b-9d17-ad69b0f4c0c2" "transport"="tcp" "peer"="127.0.0.1:34828" "host"="localhost" +timestamp="2026-10-20T10:29:51.627Z" level=info module="c2s" event="sasl-attempt" connection="b2c9d443-5407-453d-91d4-3b50ceb0e7c6" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.627Z" level=info module="c2s" event="auth-identity" connection="b2c9d443-5407-453d-91d4-3b50ceb0e7c6" "user"="load-76" +timestamp="2026-10-20T10:29:51.630Z" level=info module="c2s" event="auth-success" connection="b2c9d443-5407-453d-91d4-3b50ceb0e7c6" "user"="load-76" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.635Z" level=info module="c2s" event="tls-established" connection="936fdffe-d77d-4b20-8eb4-353c8729e5c8" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.635Z" level=info module="c2s" event="sasl-features" connection="936fdffe-d77d-4b20-8eb4-353c8729e5c8" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.635Z" level=info module="c2s" event="connection-open" connection="3c105951-532c-4bb6-b7b0-437049404728" "transport"="tcp" "peer"="127.0.0.1:34852" "host"="localhost" +timestamp="2026-10-20T10:29:51.636Z" level=info module="c2s" event="connection-open" connection="7e15774c-1dd5-409d-934d-978674b7c2e9" "transport"="tcp" "peer"="127.0.0.1:34842" "host"="localhost" +timestamp="2026-10-20T10:29:51.657Z" level=info module="c2s" event="tls-established" connection="c658f161-996b-46c4-9a5f-3a3f59486cfb" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.657Z" level=info module="c2s" event="sasl-features" connection="c658f161-996b-46c4-9a5f-3a3f59486cfb" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.657Z" level=info module="c2s" event="connection-open" connection="f793add7-7380-475d-ada6-20e9fd00312b" "transport"="tcp" "peer"="127.0.0.1:34860" "host"="localhost" +timestamp="2026-10-20T10:29:51.657Z" level=info module="c2s" event="tls-established" connection="2bd5a40b-5b32-4bfb-9f2a-fb94085fd830" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.657Z" level=info module="c2s" event="sasl-features" connection="2bd5a40b-5b32-4bfb-9f2a-fb94085fd830" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.657Z" level=info module="c2s" event="tls-established" connection="5f2b2aa7-4b49-425f-b345-09ea2bb747f1" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.657Z" level=info module="c2s" event="sasl-features" connection="5f2b2aa7-4b49-425f-b345-09ea2bb747f1" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.658Z" level=info module="c2s" event="tls-established" connection="d450851a-172b-423e-9907-1402eb3502f2" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.658Z" level=info module="c2s" event="sasl-features" connection="d450851a-172b-423e-9907-1402eb3502f2" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.658Z" level=info module="c2s" event="tls-established" connection="695ad6f6-d466-4ed7-be87-f73d6169c14f" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.658Z" level=info module="c2s" event="sasl-features" connection="695ad6f6-d466-4ed7-be87-f73d6169c14f" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.658Z" level=info module="c2s" event="tls-established" connection="cdee97d4-a8af-4b09-9996-d1a4e692ab83" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.658Z" level=info module="c2s" event="sasl-features" connection="cdee97d4-a8af-4b09-9996-d1a4e692ab83" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.658Z" level=info module="c2s" event="sasl-attempt" connection="936fdffe-d77d-4b20-8eb4-353c8729e5c8" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.658Z" level=info module="c2s" event="auth-identity" connection="936fdffe-d77d-4b20-8eb4-353c8729e5c8" "user"="load-80" +timestamp="2026-10-20T10:29:51.658Z" level=info module="c2s" event="tls-established" connection="1e41cfe9-c56d-4591-9a9f-21040199aa77" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.658Z" level=info module="c2s" event="sasl-features" connection="1e41cfe9-c56d-4591-9a9f-21040199aa77" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.667Z" level=info module="c2s" event="auth-success" connection="936fdffe-d77d-4b20-8eb4-353c8729e5c8" "user"="load-80" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.674Z" level=info module="c2s" event="sasl-attempt" connection="d450851a-172b-423e-9907-1402eb3502f2" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.674Z" level=info module="c2s" event="auth-identity" connection="d450851a-172b-423e-9907-1402eb3502f2" "user"="load-78" +timestamp="2026-10-20T10:29:51.674Z" level=info module="c2s" event="sasl-attempt" connection="c658f161-996b-46c4-9a5f-3a3f59486cfb" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.674Z" level=info module="c2s" event="auth-identity" connection="c658f161-996b-46c4-9a5f-3a3f59486cfb" "user"="load-77" +timestamp="2026-10-20T10:29:51.674Z" level=info module="c2s" event="resource-bound" connection="b2c9d443-5407-453d-91d4-3b50ceb0e7c6" "jid"="load-76@localhost/load-476" "mode"="legacy" +timestamp="2026-10-20T10:29:51.674Z" level=info module="c2s" event="sasl-attempt" connection="2bd5a40b-5b32-4bfb-9f2a-fb94085fd830" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.674Z" level=info module="c2s" event="auth-identity" connection="2bd5a40b-5b32-4bfb-9f2a-fb94085fd830" "user"="load-81" +timestamp="2026-10-20T10:29:51.674Z" level=info module="c2s" event="tls-established" connection="3446e0a8-6642-4bc0-8c33-05b5786bc7c5" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.674Z" level=info module="c2s" event="sasl-features" connection="3446e0a8-6642-4bc0-8c33-05b5786bc7c5" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.675Z" level=info module="c2s" event="tls-established" connection="18fe9f66-537a-42ee-ba2b-86290d717c2c" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.675Z" level=info module="c2s" event="sasl-features" connection="18fe9f66-537a-42ee-ba2b-86290d717c2c" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.675Z" level=info module="c2s" event="sasl-attempt" connection="5f2b2aa7-4b49-425f-b345-09ea2bb747f1" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.675Z" level=info module="c2s" event="auth-identity" connection="5f2b2aa7-4b49-425f-b345-09ea2bb747f1" "user"="load-79" +timestamp="2026-10-20T10:29:51.675Z" level=info module="c2s" event="sasl-attempt" connection="695ad6f6-d466-4ed7-be87-f73d6169c14f" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.675Z" level=info module="c2s" event="auth-identity" connection="695ad6f6-d466-4ed7-be87-f73d6169c14f" "user"="load-82" +timestamp="2026-10-20T10:29:51.675Z" level=info module="c2s" event="sasl-attempt" connection="cdee97d4-a8af-4b09-9996-d1a4e692ab83" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.675Z" level=info module="c2s" event="auth-identity" connection="cdee97d4-a8af-4b09-9996-d1a4e692ab83" "user"="load-85" +timestamp="2026-10-20T10:29:51.675Z" level=info module="c2s" event="sasl-attempt" connection="1e41cfe9-c56d-4591-9a9f-21040199aa77" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.675Z" level=info module="c2s" event="auth-identity" connection="1e41cfe9-c56d-4591-9a9f-21040199aa77" "user"="load-84" +timestamp="2026-10-20T10:29:51.675Z" level=info module="c2s" event="connection-open" connection="e94f5448-ee79-4428-8f07-1dc34475578d" "transport"="tcp" "peer"="127.0.0.1:34888" "host"="localhost" +timestamp="2026-10-20T10:29:51.675Z" level=info module="c2s" event="connection-open" connection="1557382f-d6d8-4dc4-ae61-c846236d645e" "transport"="tcp" "peer"="127.0.0.1:34866" "host"="localhost" +timestamp="2026-10-20T10:29:51.675Z" level=info module="c2s" event="connection-open" connection="146cdcad-015f-4635-8de8-d59cc0ad6c8c" "transport"="tcp" "peer"="127.0.0.1:34874" "host"="localhost" +timestamp="2026-10-20T10:29:51.675Z" level=info module="c2s" event="connection-open" connection="f765c64c-072f-446a-bda4-c142d8f5b127" "transport"="tcp" "peer"="127.0.0.1:34878" "host"="localhost" +timestamp="2026-10-20T10:29:51.678Z" level=info module="c2s" event="auth-success" connection="d450851a-172b-423e-9907-1402eb3502f2" "user"="load-78" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.678Z" level=info module="c2s" event="auth-success" connection="c658f161-996b-46c4-9a5f-3a3f59486cfb" "user"="load-77" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.678Z" level=info module="c2s" event="auth-success" connection="2bd5a40b-5b32-4bfb-9f2a-fb94085fd830" "user"="load-81" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.678Z" level=info module="c2s" event="auth-success" connection="695ad6f6-d466-4ed7-be87-f73d6169c14f" "user"="load-82" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.678Z" level=info module="c2s" event="auth-success" connection="5f2b2aa7-4b49-425f-b345-09ea2bb747f1" "user"="load-79" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.678Z" level=info module="c2s" event="auth-success" connection="1e41cfe9-c56d-4591-9a9f-21040199aa77" "user"="load-84" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.678Z" level=info module="c2s" event="auth-success" connection="cdee97d4-a8af-4b09-9996-d1a4e692ab83" "user"="load-85" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.678Z" level=info module="c2s" event="sasl-attempt" connection="18fe9f66-537a-42ee-ba2b-86290d717c2c" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.678Z" level=info module="c2s" event="auth-identity" connection="18fe9f66-537a-42ee-ba2b-86290d717c2c" "user"="load-88" +timestamp="2026-10-20T10:29:51.678Z" level=info module="c2s" event="sasl-attempt" connection="3446e0a8-6642-4bc0-8c33-05b5786bc7c5" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.678Z" level=info module="c2s" event="auth-identity" connection="3446e0a8-6642-4bc0-8c33-05b5786bc7c5" "user"="load-83" +timestamp="2026-10-20T10:29:51.678Z" level=info module="c2s" event="tls-established" connection="abb36700-d9f7-4246-aba4-d5c3efe463b6" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.678Z" level=info module="c2s" event="sasl-features" connection="abb36700-d9f7-4246-aba4-d5c3efe463b6" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.679Z" level=info module="c2s" event="tls-established" connection="5f3ae8bd-9bf5-444b-9d17-ad69b0f4c0c2" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.679Z" level=info module="c2s" event="sasl-features" connection="5f3ae8bd-9bf5-444b-9d17-ad69b0f4c0c2" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.679Z" level=info module="c2s" event="resource-bound" connection="936fdffe-d77d-4b20-8eb4-353c8729e5c8" "jid"="load-80@localhost/load-480" "mode"="legacy" +timestamp="2026-10-20T10:29:51.679Z" level=info module="c2s" event="sasl-attempt" connection="abb36700-d9f7-4246-aba4-d5c3efe463b6" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.679Z" level=info module="c2s" event="auth-identity" connection="abb36700-d9f7-4246-aba4-d5c3efe463b6" "user"="load-86" +timestamp="2026-10-20T10:29:51.679Z" level=info module="c2s" event="resource-bound" connection="695ad6f6-d466-4ed7-be87-f73d6169c14f" "jid"="load-82@localhost/load-482" "mode"="legacy" +timestamp="2026-10-20T10:29:51.679Z" level=info module="c2s" event="tls-established" connection="3c105951-532c-4bb6-b7b0-437049404728" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.679Z" level=info module="c2s" event="sasl-features" connection="3c105951-532c-4bb6-b7b0-437049404728" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.680Z" level=info module="c2s" event="auth-success" connection="18fe9f66-537a-42ee-ba2b-86290d717c2c" "user"="load-88" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.680Z" level=info module="c2s" event="sasl-attempt" connection="5f3ae8bd-9bf5-444b-9d17-ad69b0f4c0c2" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.680Z" level=info module="c2s" event="auth-identity" connection="5f3ae8bd-9bf5-444b-9d17-ad69b0f4c0c2" "user"="load-87" +timestamp="2026-10-20T10:29:51.680Z" level=info module="c2s" event="tls-established" connection="7e15774c-1dd5-409d-934d-978674b7c2e9" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.680Z" level=info module="c2s" event="sasl-features" connection="7e15774c-1dd5-409d-934d-978674b7c2e9" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.681Z" level=info module="c2s" event="tls-established" connection="f793add7-7380-475d-ada6-20e9fd00312b" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.681Z" level=info module="c2s" event="sasl-features" connection="f793add7-7380-475d-ada6-20e9fd00312b" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.681Z" level=info module="c2s" event="resource-bound" connection="cdee97d4-a8af-4b09-9996-d1a4e692ab83" "jid"="load-85@localhost/load-485" "mode"="legacy" +timestamp="2026-10-20T10:29:51.682Z" level=info module="c2s" event="auth-success" connection="3446e0a8-6642-4bc0-8c33-05b5786bc7c5" "user"="load-83" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.682Z" level=info module="c2s" event="auth-success" connection="abb36700-d9f7-4246-aba4-d5c3efe463b6" "user"="load-86" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.683Z" level=info module="c2s" event="resource-bound" connection="2bd5a40b-5b32-4bfb-9f2a-fb94085fd830" "jid"="load-81@localhost/load-481" "mode"="legacy" +timestamp="2026-10-20T10:29:51.683Z" level=info module="c2s" event="resource-bound" connection="d450851a-172b-423e-9907-1402eb3502f2" "jid"="load-78@localhost/load-478" "mode"="legacy" +timestamp="2026-10-20T10:29:51.683Z" level=info module="c2s" event="auth-success" connection="5f3ae8bd-9bf5-444b-9d17-ad69b0f4c0c2" "user"="load-87" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.683Z" level=info module="c2s" event="resource-bound" connection="c658f161-996b-46c4-9a5f-3a3f59486cfb" "jid"="load-77@localhost/load-477" "mode"="legacy" +timestamp="2026-10-20T10:29:51.683Z" level=info module="c2s" event="resource-bound" connection="1e41cfe9-c56d-4591-9a9f-21040199aa77" "jid"="load-84@localhost/load-484" "mode"="legacy" +timestamp="2026-10-20T10:29:51.683Z" level=info module="c2s" event="resource-bound" connection="5f2b2aa7-4b49-425f-b345-09ea2bb747f1" "jid"="load-79@localhost/load-479" "mode"="legacy" +timestamp="2026-10-20T10:29:51.685Z" level=info module="c2s" event="sasl-attempt" connection="7e15774c-1dd5-409d-934d-978674b7c2e9" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.685Z" level=info module="c2s" event="auth-identity" connection="7e15774c-1dd5-409d-934d-978674b7c2e9" "user"="load-89" +timestamp="2026-10-20T10:29:51.688Z" level=info module="c2s" event="auth-success" connection="7e15774c-1dd5-409d-934d-978674b7c2e9" "user"="load-89" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.688Z" level=info module="c2s" event="sasl-attempt" connection="3c105951-532c-4bb6-b7b0-437049404728" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.688Z" level=info module="c2s" event="auth-identity" connection="3c105951-532c-4bb6-b7b0-437049404728" "user"="load-90" +timestamp="2026-10-20T10:29:51.688Z" level=info module="c2s" event="sasl-attempt" connection="f793add7-7380-475d-ada6-20e9fd00312b" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.688Z" level=info module="c2s" event="auth-identity" connection="f793add7-7380-475d-ada6-20e9fd00312b" "user"="load-91" +timestamp="2026-10-20T10:29:51.692Z" level=info module="c2s" event="auth-success" connection="3c105951-532c-4bb6-b7b0-437049404728" "user"="load-90" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.692Z" level=info module="c2s" event="auth-success" connection="f793add7-7380-475d-ada6-20e9fd00312b" "user"="load-91" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.694Z" level=info module="c2s" event="resource-bound" connection="18fe9f66-537a-42ee-ba2b-86290d717c2c" "jid"="load-88@localhost/load-488" "mode"="legacy" +timestamp="2026-10-20T10:29:51.703Z" level=info module="c2s" event="resource-bound" connection="abb36700-d9f7-4246-aba4-d5c3efe463b6" "jid"="load-86@localhost/load-486" "mode"="legacy" +timestamp="2026-10-20T10:29:51.704Z" level=info module="c2s" event="tls-established" connection="e94f5448-ee79-4428-8f07-1dc34475578d" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.704Z" level=info module="c2s" event="sasl-features" connection="e94f5448-ee79-4428-8f07-1dc34475578d" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.704Z" level=info module="c2s" event="tls-established" connection="f765c64c-072f-446a-bda4-c142d8f5b127" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.704Z" level=info module="c2s" event="sasl-features" connection="f765c64c-072f-446a-bda4-c142d8f5b127" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.704Z" level=info module="c2s" event="tls-established" connection="1557382f-d6d8-4dc4-ae61-c846236d645e" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.704Z" level=info module="c2s" event="sasl-features" connection="1557382f-d6d8-4dc4-ae61-c846236d645e" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.704Z" level=info module="c2s" event="resource-bound" connection="3446e0a8-6642-4bc0-8c33-05b5786bc7c5" "jid"="load-83@localhost/load-483" "mode"="legacy" +timestamp="2026-10-20T10:29:51.705Z" level=info module="c2s" event="tls-established" connection="146cdcad-015f-4635-8de8-d59cc0ad6c8c" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.705Z" level=info module="c2s" event="sasl-features" connection="146cdcad-015f-4635-8de8-d59cc0ad6c8c" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.711Z" level=info module="c2s" event="sasl-attempt" connection="146cdcad-015f-4635-8de8-d59cc0ad6c8c" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.711Z" level=info module="c2s" event="auth-identity" connection="146cdcad-015f-4635-8de8-d59cc0ad6c8c" "user"="load-93" +timestamp="2026-10-20T10:29:51.718Z" level=info module="c2s" event="auth-success" connection="146cdcad-015f-4635-8de8-d59cc0ad6c8c" "user"="load-93" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.718Z" level=info module="c2s" event="sasl-attempt" connection="f765c64c-072f-446a-bda4-c142d8f5b127" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.718Z" level=info module="c2s" event="auth-identity" connection="f765c64c-072f-446a-bda4-c142d8f5b127" "user"="load-94" +timestamp="2026-10-20T10:29:51.723Z" level=info module="c2s" event="auth-success" connection="f765c64c-072f-446a-bda4-c142d8f5b127" "user"="load-94" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.723Z" level=info module="c2s" event="resource-bound" connection="5f3ae8bd-9bf5-444b-9d17-ad69b0f4c0c2" "jid"="load-87@localhost/load-487" "mode"="legacy" +timestamp="2026-10-20T10:29:51.723Z" level=info module="c2s" event="resource-bound" connection="7e15774c-1dd5-409d-934d-978674b7c2e9" "jid"="load-89@localhost/load-489" "mode"="legacy" +timestamp="2026-10-20T10:29:51.724Z" level=info module="c2s" event="sasl-attempt" connection="1557382f-d6d8-4dc4-ae61-c846236d645e" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.724Z" level=info module="c2s" event="auth-identity" connection="1557382f-d6d8-4dc4-ae61-c846236d645e" "user"="load-92" +timestamp="2026-10-20T10:29:51.724Z" level=info module="c2s" event="resource-bound" connection="3c105951-532c-4bb6-b7b0-437049404728" "jid"="load-90@localhost/load-490" "mode"="legacy" +timestamp="2026-10-20T10:29:51.724Z" level=info module="c2s" event="resource-bound" connection="f793add7-7380-475d-ada6-20e9fd00312b" "jid"="load-91@localhost/load-491" "mode"="legacy" +timestamp="2026-10-20T10:29:51.724Z" level=info module="c2s" event="connection-open" connection="a4526fb2-a767-4af9-a9d2-8a8e1c7738a1" "transport"="tcp" "peer"="127.0.0.1:34912" "host"="localhost" +timestamp="2026-10-20T10:29:51.743Z" level=info module="c2s" event="auth-success" connection="1557382f-d6d8-4dc4-ae61-c846236d645e" "user"="load-92" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.748Z" level=info module="c2s" event="connection-open" connection="401bddf6-a759-4e9f-b56a-f16a1206aa7d" "transport"="tcp" "peer"="127.0.0.1:34902" "host"="localhost" +timestamp="2026-10-20T10:29:51.748Z" level=info module="c2s" event="sasl-attempt" connection="e94f5448-ee79-4428-8f07-1dc34475578d" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.748Z" level=info module="c2s" event="auth-identity" connection="e94f5448-ee79-4428-8f07-1dc34475578d" "user"="load-95" +timestamp="2026-10-20T10:29:51.756Z" level=info module="c2s" event="auth-success" connection="e94f5448-ee79-4428-8f07-1dc34475578d" "user"="load-95" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.782Z" level=info module="c2s" event="resource-bound" connection="f765c64c-072f-446a-bda4-c142d8f5b127" "jid"="load-94@localhost/load-494" "mode"="legacy" +timestamp="2026-10-20T10:29:51.797Z" level=info module="c2s" event="resource-bound" connection="1557382f-d6d8-4dc4-ae61-c846236d645e" "jid"="load-92@localhost/load-492" "mode"="legacy" +timestamp="2026-10-20T10:29:51.822Z" level=info module="c2s" event="connection-open" connection="eae9d55d-453f-4498-96e0-10922c6f6bc6" "transport"="tcp" "peer"="127.0.0.1:34934" "host"="localhost" +timestamp="2026-10-20T10:29:51.822Z" level=info module="c2s" event="connection-open" connection="11b37066-affb-4ef9-ad85-4fc7de326253" "transport"="tcp" "peer"="127.0.0.1:34926" "host"="localhost" +timestamp="2026-10-20T10:29:51.829Z" level=info module="c2s" event="resource-bound" connection="146cdcad-015f-4635-8de8-d59cc0ad6c8c" "jid"="load-93@localhost/load-493" "mode"="legacy" +timestamp="2026-10-20T10:29:51.832Z" level=info module="c2s" event="resource-bound" connection="e94f5448-ee79-4428-8f07-1dc34475578d" "jid"="load-95@localhost/load-495" "mode"="legacy" +timestamp="2026-10-20T10:29:51.867Z" level=info module="c2s" event="tls-established" connection="a4526fb2-a767-4af9-a9d2-8a8e1c7738a1" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.867Z" level=info module="c2s" event="sasl-features" connection="a4526fb2-a767-4af9-a9d2-8a8e1c7738a1" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.867Z" level=info module="c2s" event="tls-established" connection="401bddf6-a759-4e9f-b56a-f16a1206aa7d" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.867Z" level=info module="c2s" event="sasl-features" connection="401bddf6-a759-4e9f-b56a-f16a1206aa7d" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.876Z" level=info module="c2s" event="sasl-attempt" connection="a4526fb2-a767-4af9-a9d2-8a8e1c7738a1" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.876Z" level=info module="c2s" event="auth-identity" connection="a4526fb2-a767-4af9-a9d2-8a8e1c7738a1" "user"="load-97" +timestamp="2026-10-20T10:29:51.876Z" level=info module="c2s" event="sasl-attempt" connection="401bddf6-a759-4e9f-b56a-f16a1206aa7d" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.876Z" level=info module="c2s" event="auth-identity" connection="401bddf6-a759-4e9f-b56a-f16a1206aa7d" "user"="load-96" +timestamp="2026-10-20T10:29:51.876Z" level=info module="c2s" event="tls-established" connection="eae9d55d-453f-4498-96e0-10922c6f6bc6" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.876Z" level=info module="c2s" event="sasl-features" connection="eae9d55d-453f-4498-96e0-10922c6f6bc6" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.876Z" level=info module="c2s" event="tls-established" connection="11b37066-affb-4ef9-ad85-4fc7de326253" "version"="Some(TLSv1_3)" "cipher"="Some(TLS13_AES_256_GCM_SHA384)" +timestamp="2026-10-20T10:29:51.876Z" level=info module="c2s" event="sasl-features" connection="11b37066-affb-4ef9-ad85-4fc7de326253" "mechanisms"="PLAIN,SCRAM-SHA-256,SCRAM-SHA-256-PLUS" "channel_bindings"="tls-server-end-point,tls-exporter" "account_hash"="SHA-256" "ssdp"="disabled" +timestamp="2026-10-20T10:29:51.878Z" level=info module="c2s" event="auth-success" connection="401bddf6-a759-4e9f-b56a-f16a1206aa7d" "user"="load-96" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.878Z" level=info module="c2s" event="sasl-attempt" connection="11b37066-affb-4ef9-ad85-4fc7de326253" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.878Z" level=info module="c2s" event="auth-identity" connection="11b37066-affb-4ef9-ad85-4fc7de326253" "user"="load-98" +timestamp="2026-10-20T10:29:51.878Z" level=info module="c2s" event="sasl-attempt" connection="eae9d55d-453f-4498-96e0-10922c6f6bc6" "attempt"="1" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.878Z" level=info module="c2s" event="auth-identity" connection="eae9d55d-453f-4498-96e0-10922c6f6bc6" "user"="load-99" +timestamp="2026-10-20T10:29:51.878Z" level=info module="c2s" event="resource-bound" connection="401bddf6-a759-4e9f-b56a-f16a1206aa7d" "jid"="load-96@localhost/load-496" "mode"="legacy" +timestamp="2026-10-20T10:29:51.883Z" level=info module="c2s" event="auth-success" connection="11b37066-affb-4ef9-ad85-4fc7de326253" "user"="load-98" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.883Z" level=info module="c2s" event="auth-success" connection="eae9d55d-453f-4498-96e0-10922c6f6bc6" "user"="load-99" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.883Z" level=info module="c2s" event="auth-success" connection="a4526fb2-a767-4af9-a9d2-8a8e1c7738a1" "user"="load-97" "mechanism"="PLAIN" "protocol"="sasl1" +timestamp="2026-10-20T10:29:51.884Z" level=info module="c2s" event="resource-bound" connection="11b37066-affb-4ef9-ad85-4fc7de326253" "jid"="load-98@localhost/load-498" "mode"="legacy" +timestamp="2026-10-20T10:29:51.884Z" level=info module="c2s" event="resource-bound" connection="a4526fb2-a767-4af9-a9d2-8a8e1c7738a1" "jid"="load-97@localhost/load-497" "mode"="legacy" +timestamp="2026-10-20T10:29:51.884Z" level=info module="c2s" event="resource-bound" connection="eae9d55d-453f-4498-96e0-10922c6f6bc6" "jid"="load-99@localhost/load-499" "mode"="legacy" +timestamp="2026-10-20T10:30:55.842Z" level=info module="server" event="starting" "version"="0.8.0" "host"="localhost" + +Traceback (most recent call last): + File "/workspace/scratch/362577cdf2e0/recovered/rust-xmpp/tests/muc_sm_load_network.py", line 395, in + config.write_text(json.dumps(cfg)) +^^^^^^ + File "/workspace/scratch/362577cdf2e0/recovered/rust-xmpp/tests/muc_sm_load_network.py", line 385, in main + port = probe.getsockname()[1] + ~~~~~~~~~~~~~^^^~ + File "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/asyncio/runners.py", line 195, in run + return runner.run(main) + ^^^^^^^^^^^^^^^^ + File "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/asyncio/runners.py", line 118, in run + return self._loop.run_until_complete(task) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/asyncio/base_events.py", line 691, in run_until_complete + return future.result() + ^^^^^^^^^^^^^^^ + File "/workspace/scratch/362577cdf2e0/recovered/rust-xmpp/tests/muc_sm_load_network.py", line 281, in exercise + for client in clients: + ^^^^^^^^^^^^^^ + File "/workspace/scratch/362577cdf2e0/recovered/rust-xmpp/tests/muc_restart_network.py", line 68, in start + raise AssertionError('server did not start') +AssertionError: server did not start diff --git a/docs/validation-logs-0.8.0/muc-crash.txt b/docs/validation-logs-0.8.0/muc-crash.txt new file mode 100644 index 0000000..ebad11e --- /dev/null +++ b/docs/validation-logs-0.8.0/muc-crash.txt @@ -0,0 +1,11 @@ +PASS: recovery-history +PASS: leave +PASS: kick +PASS: demotion +PASS: password +PASS: configuration +PASS: restart-grace +PASS: custom-grace +PASS: unknown-module +PASS: destroy-tombstone +PASS: actual STARTTLS SIGKILL MUC recovery, history, acknowledged barriers and fixed grace diff --git a/docs/validation-logs-0.8.0/muc-sm-load.json b/docs/validation-logs-0.8.0/muc-sm-load.json new file mode 100644 index 0000000..746b64d --- /dev/null +++ b/docs/validation-logs-0.8.0/muc-sm-load.json @@ -0,0 +1,62 @@ +{ + "clients": 500, + "accounts": 100, + "rooms": 10, + "message_rounds": 3, + "concurrency": 20, + "binary": "/tmp/xmpp-durable-muc-load-g0crm4ik/rust-xmpp", + "binary_sha256": "74882319fcb467dd1e1813ab61e85441ffd3dae2f9f7961b28fd98ec5da7c89a", + "before": { + "rss_kib": 9696, + "cpu_seconds": 0.0, + "fd_count": 12 + }, + "connect_seconds": 5.193, + "connect_latency": { + "samples": 500, + "median_ms": 204.391, + "p95_ms": 270.035, + "max_ms": 332.503 + }, + "phase": "completed", + "status": "pass", + "elapsed_seconds": 78.857, + "join_seconds": 46.703, + "joined": { + "rss_kib": 42248, + "cpu_seconds": 17.77, + "fd_count": 513 + }, + "join_presence_deliveries": 25000, + "slots_joined": { + "count": 500, + "bytes": 309790 + }, + "message_seconds": 10.861, + "room_messages_sent": 30, + "room_messages_delivered": 1500, + "before_kill": { + "rss_kib": 42128, + "cpu_seconds": 23.12, + "fd_count": 514 + }, + "slots_before_kill": { + "count": 500, + "bytes": 514030 + }, + "restart_seconds": 10.559, + "resumed_resources": 10, + "replayed_pending_room_messages": 10, + "membership_groupchat_deliveries_after_resume": 10, + "after_resume": { + "rss_kib": 21168, + "cpu_seconds": 5.03, + "fd_count": 23 + }, + "slots_after_resume": { + "count": 500, + "bytes": 671070 + }, + "total_seconds": 78.857, + "peak_rss_kib": 42252 +} diff --git a/docs/validation-logs-0.8.0/sm-restart.txt b/docs/validation-logs-0.8.0/sm-restart.txt new file mode 100644 index 0000000..0d2cf45 --- /dev/null +++ b/docs/validation-logs-0.8.0/sm-restart.txt @@ -0,0 +1 @@ +PASS: TLS legacy/SASL2 durable SM after SIGKILL/SIGTERM, counters, ack pruning, at-least-once pending replay, owner/token/h rejection, transport/resource conflict, MUC activation/offline fanout, grace expiry and account deletion/recreation revocation diff --git a/docs/validation-logs-0.8.0/verify.txt b/docs/validation-logs-0.8.0/verify.txt new file mode 100644 index 0000000..e226cda --- /dev/null +++ b/docs/validation-logs-0.8.0/verify.txt @@ -0,0 +1,846 @@ + Finished `test` profile [unoptimized] target(s) in 0.09s + Running unittests src/lib.rs (target/debug/deps/rust_xmpp-c18b5fae509f7258) + +running 46 tests +test federation::tests::federation_domains_are_dns_names_and_case_insensitive ... ok +test federation::tests::starttls_must_be_an_immediate_stream_feature ... ok +test federation::tests::external_must_be_in_the_advertised_mechanisms ... ok +test http_config::tests::external_prefix_and_standard_port ... ok +test http_config::tests::invalid_paths_types_urls_and_conflicts_are_errors ... ok +test federation::tests::stream_restarts_compare_canonical_domains ... ok +test http_config::tests::mounts_inherit_per_app_and_expand_virtual_host ... ok +test http_config::tests::literal_pchars_and_percent_encoding_are_supported ... ok +test http_config::tests::routes_hosts_and_default_without_overriding_known_hosts ... ok +test http_proxy::tests::config_validation_and_network_boundaries ... ok +test http_proxy::tests::empty_native_lua_table_disables_proxy_trust ... ok +test http_proxy::tests::legacy_chain_uses_rightmost_untrusted_and_tls_is_preserved ... ok +test http_proxy::tests::untrusted_socket_ignores_spoofed_headers ... ok +test http_proxy::tests::malformed_forwarded_and_unknown_identifiers_are_ignored ... ok +test http_proxy::tests::forwarded_mode_stops_at_first_untrusted_hop ... ok +test http_proxy::tests::forwarded_tls_termination_cannot_upgrade_a_plaintext_chain_hop ... ok +test http_transport::tests::bosh_processing_capacity_is_bounded ... ok +test http_transport::tests::independent_framing ... ok +test http_transport::tests::websocket_preserves_inherited_namespaces_and_spaced_declarations ... ok +test logging::tests::console_aliases_share_one_sink_with_combined_levels ... ok +test http_transport::tests::configured_mount_host_origin_and_secure_dispatch ... ok +test sasl::tests::reject_malformed_and_downgrade ... ok +test sasl::tests::rfc5802_sha1_vector ... ok +test server::authorization_tests::http_interfaces_follow_secure_override_wildcards_and_global_fallback ... ok +test server::authorization_tests::pep_diagnostics_count_only_first_item_devices_without_logging_ids ... ok +test server::authorization_tests::pep_diagnostics_exclude_payloads_and_identifiers ... ok +test http_service::tests::upload_claim_refreshes_completion_state_after_an_earlier_snapshot ... ok +test sessions::push_timeout_tests::first_important_push_shortens_extended_hibernation_once ... ok +test sessions::tests::acknowledgement_wraps ... ok +test sessions::tests::graceful_disconnect_is_not_resumable ... ok +test sessions::tests::resume_replays_only_unacked_and_checks_owner ... ok +test sessions::tests::traffic_before_sm_enable_is_not_counted ... ok +test upload_migration::tests::local_spool_checks_size_and_hash_and_preserves_source ... ok +test upload_migration::tests::pending_and_corrupt_journals_block_startup ... ok +test wire::tests::arbitrary_prefix_and_inherited_namespaces ... ok +test wire::tests::cdata_and_comments_frame_without_counting_brackets ... ok +test wire::tests::declarations_rejected ... ok +test wire::tests::fragmented_and_pipelined ... ok +test wire::tests::invalid_namespace_and_declarations_rejected ... ok +test http_service::tests::upload_internal_mount_is_independent_of_advertised_proxy_prefix ... ok +test sasl::tests::sha256_independent_python_vector ... ok +test http_service::tests::abandoned_slots_release_quota_without_pruning_existing_or_active_files ... ok +test sasl::tests::plus_channel_binding_and_ssdp_are_authenticated ... ok +test server::authorization_tests::upload_requires_registered_local_account_or_explicit_remote_access ... ok +test sasl::tests::wrong_proof_nonce_binding_and_duplicates ... ok +test admin::tests::real_admin_xml_protocol_over_duplex ... ok + +test result: ok. 46 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.59s + + Running unittests src/main.rs (target/debug/deps/rust_xmpp-c4e45dd69a11a11d) + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/admin_socket.rs (target/debug/deps/admin_socket-61170eb8eabf7ff1) + +running 1 test +test prosody_wire_commands_password_prompt_and_safe_errors ... ignored, requires AF_UNIX socket permission; run on target host with --ignored + +test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/archive_mam.rs (target/debug/deps/archive_mam-66e5d9709846757b) + +running 14 tests +test archive_larger_than_128mib_streams ... ignored, large-file scalability regression; run explicitly +test corrupt_archive_reports_server_error_and_namespace_stripping_is_precise ... ok +test mam_preferences_persist ... ok +test legacy_records_binary_cache_and_roundtrip ... ok +test append_is_incremental_and_recovers_torn_tail ... ok +test archive_roundtrip_preserves_default_namespace_resets ... ok +test equal_cursors_and_normalized_query_jids ... ok +test muc_archive_filters_stanza_kind_instead_of_sender_jid ... ok +test smart_enable_and_message_selection ... ok +test real_archive_sid_and_sender_privacy ... ok +test zero_page_dates_and_invalid_forms ... ok +test mam_paging_filters_and_forbidden ... ok +test extended_ids_ranges_flip_and_metadata ... ok +test namespaces_expiry_and_concurrent_append ... ok + +test result: ok. 13 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.04s + + Running tests/auth.rs (target/debug/deps/auth-3fecc5005dc5e6c7) + +running 3 tests +test traversal_and_malicious_account_records_rejected ... ok +test create_and_read_hashed_accounts ... ok +test authentication_prepares_names_without_relaxing_account_management ... ok + +test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.11s + + Running tests/cli.rs (target/debug/deps/cli-a1c004101734b0cf) + +running 2 tests +test server_cannot_be_mistaken_for_running_service ... ok +test conversion_preserves_source_and_refuses_overwrite ... ok + +test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s + + Running tests/config.rs (target/debug/deps/config-bb0cdd36fb8d5839) + +running 12 tests +test include_cycles_rejected ... ok +test component_can_explicitly_enable_global_modules ... ok +test storage_paths_encode_like_prosody ... ok +test include_has_own_global_scope_and_parent_scope_is_restored ... ok +test declarations_and_overrides ... ok +test tables_cannot_recurse_forever ... ok +test supplied_configuration_scopes_arithmetic_and_modules ... ok +test runtime_capabilities_are_unavailable ... ok +test all_formats_round_trip_actual_config ... ok +test supplied_config_matches_original_prosody_loader ... ok +test malformed_values_rejected ... ok +test loops_are_bounded ... ok + +test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s + + Running tests/csi.rs (target/debug/deps/csi-ef5a8b30cab0cbf7) + +running 2 tests +test bounded_queue_flush_delay_activity_and_grace ... ok +test native_importance_rules ... ok + +test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/csi_native.rs (target/debug/deps/csi_native-7a0bbbead7a19df9) + +running 1 test +test native_prosody_csi_importance_matches ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA + +test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/data_lock.rs (target/debug/deps/data_lock-897044c51991a534) + +running 2 tests +test child_process_probe ... ok +test excludes_another_process_and_releases_on_drop ... ok + +test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/debug_legacy.rs (target/debug/deps/debug_legacy-3c721d03a5eecf02) + +running 1 test +test debug_empty_legacy_bind ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s + + Running tests/federation_tls.rs (target/debug/deps/federation_tls-6dc128df24b929d8) + +running 3 tests +test native_prosody_tls_external_bidirectional ... ignored, requires native Prosody cafd74b9c5ea and Lua TLS dependencies +test mutual_tls_external_delivery_and_certificate_identity_rejection ... ok +test reuses_connections_serializes_writes_and_retires_idle_or_closed_peers ... ok + +test result: ok. 2 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 1.48s + + Running tests/gajim_features.rs (target/debug/deps/gajim_features-f6c3a49b9451f82c) + +running 6 tests +test policy_catalog_selects_default_policy_and_maps_display_and_explicit_label ... ok +test security_catalog_default_is_a_real_label_and_module_can_be_disabled ... ok +test actual_example_policy_configuration_exposes_classifications_as_catalog_labels ... ok +test unsupported_security_policy_configuration_returns_explicit_error ... ok +test security_catalogs_serve_both_versions_and_preserve_requested_target ... ok +test malformed_or_unknown_policy_catalog_schemas_are_rejected ... ok + +test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/http_altconnect.rs (target/debug/deps/http_altconnect-9136542484c4f432) + +running 3 tests +test native_link_order_schemes_and_loaded_module_gates ... ok +test public_prefix_and_host_paths_inherit_independently ... ok +test bad_advertisement_types_and_route_collisions_are_rejected ... ok + +test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/http_transport.rs (target/debug/deps/http_transport-ba31449c82cc1657) + +running 10 tests +test configured_origin_is_enforced ... ok +test bosh_preserves_namespace_inherited_from_body ... ok +test transport_paths_and_cors_preflight_match_prosody ... ok +test bosh_session_retries_restart_termination ... ok +test bosh_termination_waits_for_graceful_cleanup_before_reconnect ... ok +test bosh_reorders_two_requests_without_replaying_stanzas ... ok +test websocket_frames_are_independent_xml ... ok +test websocket_close_allows_graceful_engine_cleanup ... ok +test websocket_disconnect_delivers_eof_without_graceful_close ... ok +test bosh_retry_survives_aborted_http_request_without_replaying_stanzas ... ok + +test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s + + Running tests/http_upload.rs (target/debug/deps/http_upload-ff5554e98fd3b948) + +running 5 tests +test https_endpoint_uses_real_tls ... ok +test percent_escape_case_and_equivalent_url_spelling ... ok +test persisted_prosody_archive_and_hs256_slot_survive_without_sidecar ... ok +test expired_upload_releases_quota ... ok +test upload_authorization_streaming_ranges_and_restart ... ok + +test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s + + Running tests/iq_errors.rs (target/debug/deps/iq_errors-f6728f43bbee20cf) + +running 2 tests +test pep_errors_identify_the_account_and_echo_the_request ... ok +test server_errors_without_target_remain_unaddressed_and_escape_attributes ... ok + +test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/logging.rs (target/debug/deps/logging-49936a1290966f86) + +running 10 tests +test native_console_shorthands_are_accepted ... ok +test rejects_malformed_configuration ... ok +test json_records_and_bounded_ranges ... ok +test failed_reopen_keeps_all_original_handles ... ok +test filters_appends_escapes_and_redacts ... ok +test reopen_rotated_files_updates_clones ... ok +test explicit_sink_levels_select_exactly_and_deduplicate ... ok +test shared_sink_unions_levels_and_preserves_distinct_destinations ... ok +test overlapping_shorthand_destinations_receive_each_record_once ... ok +test cloned_loggers_serialize_records ... ok + +test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s + + Running tests/message_routing.rs (target/debug/deps/message_routing-e8cb56e9c75084cc) + +running 2 tests +test unknown_resource_falls_back_to_available_bare_jid ... ok +test headline_uses_all_nonnegative_available_resources_and_errors_never_fallback ... ok + +test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/muc_access.rs (target/debug/deps/muc_access-3d45cfc19a946c63) + +running 3 tests +test binary_occupant_id_salt_survives_saves_and_restarts ... ok +test moderators_cannot_kick_or_demote_other_moderators ... ok +test nested_affiliations_do_not_fall_back_to_obsolete_flat_entries ... ok + +test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s + + Running tests/muc_crash_state.rs (target/debug/deps/muc_crash_state-f6de95e841b62f79) + +running 7 tests +test safe_presence_checkpoint_sanitization_is_idempotent ... ok +test foreign_stanzas_do_not_initialize_or_rewrite_muc_checkpoint ... ok +test durable_disconnect_removes_last_temporary_room_without_shutdown_export ... ok +test journal_failure_returns_no_routing_and_rolls_back_role_mutation ... ok +test acknowledged_kick_and_room_destruction_cannot_resurrect_membership ... ok +test dormant_deadline_stays_fixed_when_another_occupant_recovers_and_sends ... ok +test temporary_membership_and_full_bounded_history_survive_ungraceful_loss ... ok + +test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s + + Running tests/muc_domain_bans.rs (target/debug/deps/muc_domain_bans-bf16a8c751b147a4) + +running 2 tests +test native_domain_bans_block_remote_users_but_allow_explicit_members ... ok +test applying_domain_ban_removes_remote_occupants_and_blocks_rejoin ... ok + +test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s + + Running tests/muc_extensions.rs (target/debug/deps/muc_extensions-8aa1a3ac3d2930b2) + +running 10 tests +test disabled_optional_vcard_and_occupant_ids_are_not_advertised_or_emitted ... ok +test broadcast_roles_hide_visitors_and_configuration_announces_transition ... ok +test messages_cannot_spoof_room_identity_hats_or_occupant_identifiers ... ok +test mam_all_rooms_presence_logging_public_queries_and_optional_totals ... ok +test large_optional_history_does_not_prevent_checkpointing_membership ... ok +test restricted_private_messages_allow_self_and_optional_moderators ... ok +test offline_reserved_affiliates_follow_anonymity_and_roominfo_counts_nicknames ... ok +test language_config_sections_discovery_and_native_affiliation_hats ... ok +test recovery_claim_is_durable_and_unrelated_disconnect_keeps_temporary_claims ... ok +test explicit_new_nickname_consumes_old_proof_and_pending_nicks_are_reserved ... ok + +test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s + + Running tests/muc_flow.rs (target/debug/deps/muc_flow-358a28db146dbe13) + +running 18 tests +test configured_lock_timeout_expires_without_owner_submission ... ok +test iq_response_requires_expected_sender ... ok +test multiple_resources_share_nick_and_private_delivery ... ok +test join_lock_chat_leave ... ok +test authorization_and_conflict ... ok +test nick_invite_destroy_and_local_creation ... ok +test occupant_id_is_stable_and_spoofed_ids_removed ... ok +test preserves_unknown_binary_mixed_room_fields ... ok +test restored_temporary_room_is_deleted_after_last_disconnect ... ok +test native_muc_archive_type_and_anonymity_are_preserved ... ok +test persistence_roundtrip ... ok +test maintenance_expires_idle_archives_and_tombstones ... ok +test persistent_destroy_creates_prosody_tombstone ... ok +test switching_to_members_only_removes_unaffiliated_users ... ok +test archive_history_and_permissions ... ok +test room_vcard_owner_only_and_avatar_presence ... ok +test visitor_voice_request_cannot_spoof_identity_or_grant_itself_voice ... ok +test reserved_nickname_blocks_other_users ... ok + +test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s + + Running tests/muc_history.rs (target/debug/deps/muc_history-f67a7a69e0bfd957) + +running 10 tests +test capacity_changes_trim_and_zero_disables_history ... ok +test only_direct_history_children_are_parsed ... ok +test maxchars_counts_transmitted_utf8_bytes_including_address_and_delay ... ok +test explicit_count_and_zero_limit ... ok +test snapshot_restores_last_message_without_adding_another_delay ... ok +test replay_carries_room_delay_and_recipient ... ok +test ordinary_history_is_bounded_and_returns_oldest_first ... ok +test subjects_and_hints_follow_native_history_eligibility ... ok +test since_and_seconds_use_stricter_cutoff_inclusive ... ok +test default_count_applies_only_without_valid_explicit_constraints ... ok + +test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/muc_native.rs (target/debug/deps/muc_native-f792fb43c05f2836) + +running 1 test +test actual_prosody_muc_mam_reads_rust_and_writes_native_archive ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA + +test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/muc_optional_admin.rs (target/debug/deps/muc_optional_admin-cda5bde07d3a924e) + +running 4 tests +test default_registration_denies_unaffiliated_users ... ok +test configured_tombstone_expiry_allows_immediate_recreation ... ok +test optional_registration_grants_membership_and_enforces_reserved_nickname ... ok +test administration_commands_recheck_authority_bind_sessions_and_update_live_rooms ... ok + +test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s + + Running tests/muc_protocol.rs (target/debug/deps/muc_protocol-5f42030bfe1d6522) + +running 5 tests +test ordinary_presence_extensions_survive_but_client_identity_is_filtered ... ok +test subject_with_body_remains_an_ordinary_groupchat_message ... ok +test probes_and_invalid_presence_cannot_join_or_rename ... ok +test error_messages_kick_only_on_delivery_failure_and_presence_errors_kick ... ok +test room_creation_policies_apply_only_to_new_rooms ... ok + +test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s + + Running tests/muc_recovery.rs (target/debug/deps/muc_recovery-226d89017c6b58d8) + +running 7 tests +test claim_is_one_time_and_does_not_change_untrusted_role ... ok +test pending_snapshot_keeps_original_checkpoint_time ... ok +test recovery_claim_requires_exact_authenticated_resource_and_expires ... ok +test native_last_message_roundtrip_preserves_namespaces_and_rejects_other_rooms ... ok +test native_checkpoint_roundtrip_filters_sensitive_extensions ... ok +test oversized_status_never_prevents_membership_checkpoint ... ok +test configuration_fingerprint_is_independent_of_lua_table_iteration_order ... ok + +test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s + + Running tests/muc_restart_state.rs (target/debug/deps/muc_restart_state-5cb216a0bea9ced1) + +running 3 tests +test unrelated_disconnect_does_not_delete_dormant_temporary_room ... ok +test changed_configuration_invalidates_auto_recovery_without_disclosing_password ... ok +test repeated_restart_keeps_dormant_claim_and_deadline_without_ghost_routing ... ok + +test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s + + Running tests/muc_state_native.rs (target/debug/deps/muc_state_native-e120e43e0108ea7f) + +running 1 test +test actual_prosody_restores_rust_checkpoint_and_rust_reads_native_freeze ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA + +test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/pep_client_interop.rs (target/debug/deps/pep_client_interop-1553fc66a4e090e1) + +running 7 tests +test native_component_notification_type_applies_to_events_and_subscription_replay ... ok +test missing_own_omemo_bundle_returns_recoverable_item_not_found ... ok +test publish_options_match_implicit_notification_defaults_on_old_nodes ... ok +test migrated_native_configuration_can_roundtrip_access_model_edit ... ok +test avatar_and_omemo_publish_options_support_readback_and_caps_notifications ... ok +test native_itemreply_controls_publisher_visibility_in_reads_and_replays ... ok +test native_open_and_subscriber_publish_models_preserve_outcast_and_blocking_checks ... ok + +test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.24s + + Running tests/pep_diagnostics.rs (target/debug/deps/pep_diagnostics-98b92a168aa66315) + +running 6 tests +test nonempty_xml_can_be_an_empty_android_device_list ... ok +test avatar_classification_does_not_inspect_or_expose_avatar_data ... ok +test arbitrary_node_payload_and_wrong_namespace_do_not_leak ... ok +test only_first_direct_item_is_parsed_and_protocols_are_distinct ... ok +test payloadless_notification_is_visible_without_identifiers ... ok +test signed_integer_limits_and_duplicates_match_java_parser ... ok + +test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/pep_discovery.rs (target/debug/deps/pep_discovery-3e3fb8c04ba0a062) + +running 4 tests +test standalone_component_does_not_claim_pep_automatic_subscriptions ... ok +test account_disco_advertises_pep_without_requiring_a_node ... ok +test account_discovery_does_not_intercept_server_or_resource_caps ... ok +test node_discovery_keeps_node_identity_errors_and_access_checks ... ok + +test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s + + Running tests/pep_item_order.rs (target/debug/deps/pep_item_order-77f6b485fd7811b4) + +running 2 tests +test native_prosody_orders_retained_pep_items_newest_first ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA +test first_pep_item_is_current_device_list_even_with_retained_old_items ... ok + +test result: ok. 1 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.10s + + Running tests/preauth.rs (target/debug/deps/preauth-4dd44275632445e0) + +running 10 tests +test duplicate_or_wrong_namespace_tokens_do_not_qualify ... ok +test standard_adhoc_command_returns_contact_uri ... ok +test unknown_tokens_do_not_create_invite_stores_and_disabled_accounts_cannot_issue ... ok +test prosody_numeric_expiry_is_consumed_and_other_entries_preserved ... ok +test concurrent_redemption_has_exactly_one_winner ... ok +test unknown_client_token_is_preserved_on_remote_and_pending_delivery ... ok +test identity_scope_does_not_burn_on_wrong_sender_or_leak_to_prosody ... ok +test invitations_expire_are_single_use_and_owner_scoped ... ok +test valid_token_autoapproves_and_sends_reciprocal_request ... ok +test local_invitation_updates_both_rosters_without_granting_reverse_subscription ... ok + +test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s + + Running tests/preauth_native.rs (target/debug/deps/preauth_native-36f66c5afb8f3b7f) + +running 1 test +test native_prosody_invitation_tokens_roundtrip ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA + +test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/pubsub_native.rs (target/debug/deps/pubsub_native-5bfe7997d9ab4681) + +running 1 test +test native_prosody_pep_reads_rust_and_rust_reads_native ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA + +test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/pubsub_persistence.rs (target/debug/deps/pubsub_persistence-96d57930ef04b71a) + +running 18 tests +test modern_bookmarks_notify_legacy_capability ... ok +test native_string_max_items_satisfies_numeric_publish_precondition ... ok +test configurable_limits_component_creation_and_publisher ... ok +test configure_requires_owner ... ok +test capability_discovery_replays_and_filters_notifications ... ok +test nonpersistent_items_stay_in_memory_and_can_be_made_persistent ... ok +test open_model_and_notifications ... ok +test reads_prosody_legacy_fixture ... ok +test full_jid_block_applies_to_reads_subscription_replays_and_events ... ok +test pep_persists_namespaces_and_enforces_owner ... ok +test publish_options_conflict_is_recoverable_and_preserves_item ... ok +test remote_unavailable_is_scoped_to_addressed_owner_and_cancels_pending ... ok +test roster_presence_access_and_foreign_subscription_denied ... ok +test remote_caps_replay_and_open_node_privacy_revoke ... ok +test subscription_options_disable_events_and_require_subscriber ... ok +test payload_policy_applies_to_subscription_and_caps_replays ... ok +test native_notification_fields_and_retract_policy_are_independent ... ok +test component_default_retention_matches_prosody_twenty_items ... ok + +test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.24s + + Running tests/push.rs (target/debug/deps/push-e74594c0e96b1321) + +running 7 tests +test native_push_body_lookup_excludes_extensions ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA +test foreign_account_cannot_register ... ok +test queue_coalesces_and_importance_matches_native ... ok +test push_summary_never_copies_foreign_namespace_body ... ok +test reenable_cancels_old_errors_and_failure_counts_are_per_account ... ok +test stable_client_registration_and_targeted_notification ... ok +test registrations_notifications_and_authenticated_errors ... ok + +test result: ok. 6 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.12s + + Running tests/reference_prosody.rs (target/debug/deps/reference_prosody-fe62c7cdfcb258f2) + +running 1 test +test real_prosody_storage_and_auth_roundtrip ... ignored, requires native supplied Prosody source; run scripts/prosody_compat/verify.sh + +test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/resource_sessions.rs (target/debug/deps/resource_sessions-c00bb0104e05dfa7) + +running 7 tests +test increment_skips_occupied_suffixes_and_preserves_sessions ... ok +test invalid_resume_owner_or_ack_does_not_evict_active_session ... ok +test kick_new_leaves_existing_session_unchanged ... ok +test replacement_revokes_hibernating_resume_and_survives_old_cleanup ... ok +test random_conflicts_get_distinct_resources_for_same_owner ... ok +test concurrent_default_binds_replace_atomically ... ok +test active_resume_preserves_state_and_replaces_transport_notifier ... ok + +test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s + + Running tests/sasl_accounts.rs (target/debug/deps/sasl_accounts-c2c6690c56d78954) + +running 1 test +test disabled_legacy_and_unicode_accounts ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.63s + + Running tests/sm_durable_slots.rs (target/debug/deps/sm_durable_slots-cf591ebfb421691b) + +running 11 tests +test corrupt_committed_slot_fails_recovery_closed ... ok +test durable_tokens_and_private_pending_output_have_owner_only_permissions ... ok +test recovery_discards_owned_crash_temps_and_keeps_last_committed_slot ... ok +test session_reference_does_not_keep_store_locked_or_allow_unpersisted_writes ... ok +test disconnected_deadline_is_fixed_across_recovery ... ok +test durable_counters_wrap_without_accepting_stale_acknowledgements ... ok +test shutdown_freeze_retires_old_transport_before_cleanup ... ok +test independent_hubs_with_identical_connection_names_keep_their_own_slots ... ok +test restart_restores_owner_presence_and_only_unacknowledged_output ... ok +test graceful_close_conflict_account_purge_and_expiration_remove_tokens ... ok +test store_has_one_process_owner_and_enforces_output_byte_bound ... ok + +test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.26s + + Running tests/storage_accounts.rs (target/debug/deps/storage_accounts-1d75e90b4e9212f9) + +running 20 tests +test account_purge_refuses_symlink_store_without_touching_other_files ... ok +test broken_roster_is_not_overwritten ... ok +test inbound_subscription_requires_pending_to_grant_to ... ok +test blocklist_enforcement_api ... ok +test domain_roster_and_block_jid_normalization ... ok +test malformed_roster_iq_never_mutates ... ok +test malformed_legacy_vcard_and_private_bookmarks_rejected ... ok +test private_and_vcard_authorization ... ok +test privacy_migration_only_default_deny_jids ... ok +test reads_timestamp_blocklist_and_keeps_metadata ... ok +test roster_empty_name_and_foreign_group_ignored ... ok +test roster_preserves_subscription_and_metadata ... ok +test purge_account_exact_files_preserves_others_and_extras ... ok +test subscription_handshake_and_cancel ... ok +test legacy_bookmarks_respect_host_limit_and_read_over_256 ... ok +test bookmarks_private_pep_bidirectional_and_private ... ok +test legacy_migration_clears_source_after_success ... ok +test vcard_pep_conversion_and_avatar ... ok +test password_change_after_purge_never_recreates_account ... ok +test creation_and_purge_are_serialized ... ok + +test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.36s + + Running tests/storage_compat.rs (target/debug/deps/storage_compat-147836efd1c208ca) + +running 6 tests +test empty_namespace_preserved ... ok +test mixed_binary_roundtrip ... ok +test stanza_roundtrip ... ok +test path_and_atomic_update ... ok +test rejects_cycles_code_and_bad_files ... ok +test concurrent_updates_do_not_lose_entries ... ok + +test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s + + Running tests/tls_binding.rs (target/debug/deps/tls_binding-5e699c7900a4d099) + +running 4 tests +test malformed_der_and_pss_parameters_fail_closed ... ok +test unknown_and_eddsa_algorithms_fail_closed ... ok +test ecdsa_uses_certificate_signature_hash ... ok +test rsa_signature_digest_and_weak_hash_upgrade ... ok + +test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.30s + + Running tests/tls_plus_network.rs (target/debug/deps/tls_plus_network-b82a1b9340e268e4) + +running 2 tests +test disabling_plus_hides_bindings_and_accepts_scram_y_with_mechanisms_only_ssdp ... ok +test starttls_scram_plus_binds_real_tls_and_authenticates_ssdp_sasl1_and_sasl2 ... ok + +test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.37s + + Doc-tests rust_xmpp + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Finished `dev` profile [unoptimized] target(s) in 0.10s + Finished `release` profile [optimized] target(s) in 0.11s +PASS: integrated TCP roster/subscriptions, client IQ routing, CSI buffering/keepalive flush, MAM, blocking, OMEMO PEP, MUC, offline replay and SM resumption +PASS: graceful SIGTERM shutdown +PASS: independent SCRAM-SHA-1 over TLS, SASL1/SASL2, SSDP verification, server signatures and wrong-password rejection +PASS: independent SCRAM-SHA-256 over TLS, SASL1/SASL2, SSDP verification, server signatures and wrong-password rejection +PASS: Android TLS1.2 selector, TLS1.2/1.3 SCRAM SHA1/256 PLUS, SASL1/2, SSDP on/off and invalid binding rejection +PASS: JSON file logging, TLS/auth/bind correlation, rejection reasons, secret redaction and SIGHUP rotation +PASS: 20 TLS1.2/1.3 SASL1/2 cases: prepared PLAIN identities and canonical binds, invalid authz rejection, SCRAM abort/retry and active exchange restart +PASS: WSS SCRAM-SHA-256 SASL1/SASL2 with GS2 y, absent CB/PLUS, SSDP without CB separator, server signatures, bind and ping +PASS: HTTPS-only configured interfaces (127.0.0.1,::1), verified TLS, reproduced original Origin 403 then allowed Converse Origin 101, xmpp subprotocol, both WS paths, RFC 7395 open/features/close and private HTTP diagnostics +PASS: custom WS/BOSH routes, default-route 404, exact Origin policy, verified TLS proxy rewrite, trusted HTTPS metadata, untrusted/spoofed metadata denial, IPv6 when available, authenticated WS/BOSH bind/ping in legacy and RFC7239 modes and cached BOSH RID retry +PASS: XEP-0156 XRD/JRD parity, CORS, safe methods, ignored JSONP, host checks, secure URL preference, custom mounts/public prefixes, module and advertisement gates, HTTP fallback and verified WSS framing +PASS: SASL2 Bind2 TLS flow, inline SM/CSI/Carbons, private random resource, malformed requests, authentication failure and fallback +PASS: bind2-disabled, SSDP=False, SCRAM-SHA-1/PLAIN success and wrong-password rejection +PASS: bind2-disabled, SSDP=True, SCRAM-SHA-1/PLAIN success and wrong-password rejection +PASS: bind2-enabled, SSDP=False, SCRAM-SHA-1/PLAIN success and wrong-password rejection +PASS: bind2-enabled, SSDP=True, SCRAM-SHA-1/PLAIN success and wrong-password rejection +PASS: sm-disabled, SSDP=False, SCRAM-SHA-1/PLAIN success and wrong-password rejection +PASS: sm-disabled, SSDP=True, SCRAM-SHA-1/PLAIN success and wrong-password rejection +PASS: enabled-False-registration-False +PASS: enabled-False-registration-True +PASS: enabled-True-registration-False +PASS: enabled-True-registration-True +PASS: Gajim domain/account discovery, both label catalogs, authenticated password changes, IBR registration gates and fresh logins +PASS: SASL2 inline SM active/EOF resume, authenticated owner/id/h checks, replay ordering, full JID, Bind2 fallback and malformed requests +PASS: TLS account/domain discovery with PEP and push enabled/disabled; real push enable, publish options, per-node and service-wide disable +PASS: TLS Monocles/Conversations PEP first-run, no-to publishing, owner config recovery, migrated metadata, device item selectors and restart persistence +PASS: Android first-item device-list parsing sees latest publish and replacement before and after restart +PASS: STARTTLS PEP replay/live diagnostics, legacy/OMEMO2, payloadless notifications with intact IQ payloads, and private values excluded +PASS: TLS invitation command discovery, preapproval, single-use mutual roster, replay denial, unknown preauth forwarding/offline pending, account isolation +PASS: STARTTLS MUC SIGTERM restart restores live temporary/persistent rooms, exact full-JID membership, roles, presence and groupchat routing; rejects automatic cross-resource/account claims and nickname theft +PASS: recovery-history +PASS: leave +PASS: kick +PASS: demotion +PASS: password +PASS: configuration +PASS: restart-grace +PASS: custom-grace +PASS: unknown-module +PASS: actual STARTTLS SIGKILL MUC recovery, history, acknowledged barriers and fixed grace +PASS: TLS legacy/SASL2 durable SM after SIGKILL/SIGTERM, counters, ack pruning, at-least-once pending replay, owner/token/h rejection, transport/resource conflict, MUC activation/offline fanout, grace expiry and account deletion/recreation revocation +PASS: TLS conflict_resolve=default, live and hibernating SM resources +PASS: TLS conflict_resolve=kick_old, live and hibernating SM resources +PASS: TLS conflict_resolve=kick_new, live and hibernating SM resources +PASS: TLS conflict_resolve=increment, live and hibernating SM resources +PASS: TLS conflict_resolve=random, live and hibernating SM resources +PASS: integrated WSS + HTTPS BOSH SASL/bind, CSI, inherited BOSH namespaces, roster, bidirectional chat, upload IQ/PUT/GET/reuse, graceful SM close and same-resource relogin under kick_new +PASS: integrated WSS + HTTPS BOSH SASL/bind, CSI, inherited BOSH namespaces, roster, bidirectional chat, upload IQ/PUT/GET/reuse, graceful SM close and same-resource relogin under kick_new +PASS: configured upload HTTP path with $host through integrated listener +PASS: multiple upload hosts/shared-host paths, discovery, quotas, JWT isolation, persistence, transport composition and conflict validation +PASS upload S3 protocol fixture: SigV4, multipart, abort, range, restart, expiry and backend isolation +PASS upload migration: local -> S3 -> S3 -> local, hashes, original URLs/JWT/HEAD, lock, dry-run, fail-closed resume +{ + "total_load_wall_seconds": 6.57, + "requested_resources": 500, + "authenticated_bound_resources": 500, + "connection_setup_concurrency": 50, + "setup_wall_seconds": 0.617, + "setup_latency": { + "samples": 500, + "median_ms": 57.355, + "p95_ms": 75.79, + "max_ms": 93.594 + }, + "ping_rounds": 10, + "ping_round_trip": { + "samples": 5000, + "median_ms": 12.184, + "p95_ms": 25.508, + "max_ms": 28.647 + }, + "accounts": 100, + "message_rounds": 10, + "messages_sent": 5000, + "messages_received": 5000, + "message_batch_seconds": 3.668, + "metrics_before": { + "rss_kib": 8532, + "cpu_seconds": 0.0, + "fd_count": 11 + }, + "metrics_connected": { + "rss_kib": 27360, + "cpu_seconds": 1.06, + "fd_count": 511 + }, + "metrics_after_workload": { + "rss_kib": 28192, + "cpu_seconds": 8.11, + "fd_count": 511 + }, + "metrics_two_seconds_after_disconnect": { + "rss_kib": 28192, + "cpu_seconds": 8.13, + "fd_count": 11 + }, + "sampled_peak_rss_kib": 28192, + "fd_delta_after_disconnect": 0, + "failures": [], + "scope": "One loopback host, 100 accounts with distinct resources, TLS+PLAIN, ping and directed messages; not a production benchmark or proof of no memory leaks.", + "mam": { + "archive_files": 100, + "records": 10000, + "expected_records": 10000 + } +} + +# Repeated MUC+SM load after correcting test readiness timeout (same release binary) +MUC+SM load: connected (5.193s) +MUC+SM load: joined (51.901s) +MUC+SM load: fanout_verified (62.762s) +MUC+SM load: before_sigkill (67.577s) +{ + "clients": 500, + "accounts": 100, + "rooms": 10, + "message_rounds": 3, + "concurrency": 20, + "binary": "/tmp/xmpp-durable-muc-load-g0crm4ik/rust-xmpp", + "binary_sha256": "74882319fcb467dd1e1813ab61e85441ffd3dae2f9f7961b28fd98ec5da7c89a", + "before": { + "rss_kib": 9696, + "cpu_seconds": 0.0, + "fd_count": 12 + }, + "connect_seconds": 5.193, + "connect_latency": { + "samples": 500, + "median_ms": 204.391, + "p95_ms": 270.035, + "max_ms": 332.503 + }, + "phase": "completed", + "status": "pass", + "elapsed_seconds": 67.577, + "join_seconds": 46.703, + "joined": { + "rss_kib": 42248, + "cpu_seconds": 17.77, + "fd_count": 513 + }, + "join_presence_deliveries": 25000, + "slots_joined": { + "count": 500, + "bytes": 309790 + }, + "message_seconds": 10.861, + "room_messages_sent": 30, + "room_messages_delivered": 1500, + "before_kill": { + "rss_kib": 42128, + "cpu_seconds": 23.12, + "fd_count": 514 + }, + "slots_before_kill": { + "count": 500, + "bytes": 514030 + }, + "restart_seconds": 10.559, + "resumed_resources": 10, + "replayed_pending_room_messages": 10, + "membership_groupchat_deliveries_after_resume": 10, + "after_resume": { + "rss_kib": 21168, + "cpu_seconds": 5.03, + "fd_count": 23 + }, + "slots_after_resume": { + "count": 500, + "bytes": 671070 + }, + "total_seconds": 78.857, + "peak_rss_kib": 42252 +} + +# Native reference checks + Finished `test` profile [unoptimized] target(s) in 0.09s + Running tests/csi_native.rs (target/debug/deps/csi_native-7a0bbbead7a19df9) + +running 1 test +test native_prosody_csi_importance_matches ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s + + Running tests/muc_native.rs (target/debug/deps/muc_native-f792fb43c05f2836) + +running 1 test +test actual_prosody_muc_mam_reads_rust_and_writes_native_archive ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s + + Running tests/muc_state_native.rs (target/debug/deps/muc_state_native-e120e43e0108ea7f) + +running 1 test +test actual_prosody_restores_rust_checkpoint_and_rust_reads_native_freeze ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s + + Running tests/pep_item_order.rs (target/debug/deps/pep_item_order-77f6b485fd7811b4) + +running 1 test +test native_prosody_orders_retained_pep_items_newest_first ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.13s + + Running tests/preauth_native.rs (target/debug/deps/preauth_native-36f66c5afb8f3b7f) + +running 1 test +test native_prosody_invitation_tokens_roundtrip ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s + + Running tests/pubsub_native.rs (target/debug/deps/pubsub_native-5bfe7997d9ab4681) + +running 1 test +test native_prosody_pep_reads_rust_and_rust_reads_native ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s + + Running tests/push.rs (target/debug/deps/push-e74594c0e96b1321) + +running 1 test +test native_push_body_lookup_excludes_extensions ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 0.01s + + Running tests/reference_prosody.rs (target/debug/deps/reference_prosody-fe62c7cdfcb258f2) + +running 1 test +PROSODY_NATIVE_ROUNDTRIP_OK SHA-1 +PROSODY_NATIVE_FINAL_OK SHA-1 +PROSODY_NATIVE_ROUNDTRIP_OK SHA-256 +PROSODY_NATIVE_FINAL_OK SHA-256 +test real_prosody_storage_and_auth_roundtrip ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.03s + + Finished `test` profile [unoptimized] target(s) in 0.09s + Running tests/federation_tls.rs (target/debug/deps/federation_tls-6dc128df24b929d8) + +running 1 test +test native_prosody_tls_external_bidirectional ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 2 filtered out; finished in 0.88s + diff --git a/docs/validation-results-0.7.9.json b/docs/validation-results-0.7.9.json new file mode 100644 index 0000000..7823d9e --- /dev/null +++ b/docs/validation-results-0.7.9.json @@ -0,0 +1,133 @@ +{ + "version": "0.7.9", + "date_utc": "2026-10-20", + "ordinary_tests": { + "passed": 265, + "failed": 0, + "ignored": 11 + }, + "fmt": "passed", + "clippy": "passed", + "release": "passed", + "native_module_tests": 8, + "native_federation_tests": 1, + "release_binary_sha256": "24c0dca637e7ce4e238ef6becad16bb5a18a33546554b0eecf310fd8927f021c", + "upload": { + "minio_10gib": { + "ok": true, + "minio_version": "minio-sandbox-compat version DEVELOPMENT.GOGET (commit-id=DEVELOPMENT.GOGET)\nRuntime: go1.24.3 linux/amd64\nLicense: GNU AGPLv3 - https://www.gnu.org/licenses/agpl-3.0.html\nCopyright: 2015-0000 MinIO, Inc.", + "minio_binary_sha256": "8bbb9bccfbac69869ab499c39cfd8731b2b770b86ccf37cca1c8267556ad9bf0", + "binary": "/workspace/scratch/362577cdf2e0/recovered/rust-xmpp/target/release/rust-xmpp", + "binary_version": "rust-xmpp 0.7.9 — experimental XMPP runtime", + "binary_sha256": "24c0dca637e7ce4e238ef6becad16bb5a18a33546554b0eecf310fd8927f021c", + "size": 10737418240, + "qualifies_over_5gib": true, + "minio_test_only_compatibility_patch": { + "sha256": "e60592a65273f28a1375eb6ecbc0966f7fbd2ba7567d2ffedc13ffd95ed224f5", + "diff": "--- a/cmd/net.go\n+++ b/cmd/net.go\n@@ -24,6 +24,7 @@\n \t\"runtime\"\n \t\"sort\"\n \t\"strings\"\n+\t\"syscall\"\n \n \t\"github.com/minio/minio-go/v7/pkg/set\"\n \t\"github.com/minio/minio/internal/config\"\n@@ -54,6 +55,10 @@\n // mustGetLocalIPs returns IPs of local interface\n func mustGetLocalIPs() (ipList []net.IP) {\n \tifs, err := net.Interfaces()\n+\t// TEST ONLY: the sandbox denies netlink enumeration; all listeners bind loopback.\n+\tif errors.Is(err, syscall.EPERM) {\n+\t\treturn []net.IP{net.ParseIP(\"127.0.0.1\")}\n+\t}\n \tlogger.FatalIf(err, \"Unable to get IP addresses of this host\")\n \n \tfor _, interf := range ifs {\n", + "limitation": "Modified upstream MinIO: EPERM interface enumeration uses loopback; all S3/auth/storage code remains upstream." + }, + "max_rss_bytes": { + "server": 106057728, + "client": 24338432, + "minio": 498958336 + }, + "put_bytes": 10737418240, + "put_seconds": 48.45253416699961, + "sha256": "e4c296c41d3a9605f0348961e41ed835b5f42c220751ed2269a726951546c935", + "minio_etag": "958f42d583ac40ff209eb865c5eb4bd6-1280", + "multipart_parts": 1280, + "minio_allocated_bytes": 10747953152, + "free_disk_after_put_bytes": 15180328960, + "get_bytes": 10737418240, + "get_sha256": "e4c296c41d3a9605f0348961e41ed835b5f42c220751ed2269a726951546c935", + "get_seconds": 13.709708632000911, + "range_offsets": [ + 0, + 4294967289, + 5368709113, + 10737418208 + ], + "restart_range_ok": true, + "restart_reuse_status": 409, + "crash_multipart_cleanup_ok": true, + "minio_upstream_provenance": { + "source_url": "https://github.com/minio/minio/archive/refs/tags/RELEASE.2025-04-22T22-12-26Z.tar.gz", + "upstream_release": "RELEASE.2025-04-22T22-12-26Z", + "build": "Go1.24.3 go build -p4; no dependency changes", + "sha256": { + "/tmp/minio-source.tar.gz": "1a63209927b9d1fb239b2a776b7b01d1902eff19379a108f4bc7005edcc0968c", + "/tmp/minio-genuine": "3dd5d6756ad17c599fbc1c6f6a2f5b590242c049522e848c700949dbf8e60ad9", + "/tmp/minio-sandbox-compat": "8bbb9bccfbac69869ab499c39cfd8731b2b770b86ccf37cca1c8267556ad9bf0", + "/tmp/minio-sandbox-compat.patch": "e60592a65273f28a1375eb6ecbc0966f7fbd2ba7567d2ffedc13ffd95ed224f5" + }, + "compatibility_limitation": "Only net.Interfaces EPERM becomes loopback127.0.0.1; all S3/auth/multipart/storage source unchanged." + } + }, + "migration_network": "passed: local -> S3 A -> S3 B -> local, dry-run, lock, native metadata/source preservation, interrupted copy/resume, native final file with incomplete cache", + "s3_fault_network": "passed: SigV4, paginated exact-key orphan cleanup, foreign prefix safety, missing UploadId crash recovery, conditional Complete, ambiguous completion quarantine and late recovery", + "claim_race_regression": "passed: atomic fresh snapshot and active claim retains latest completion/quarantine flags" + }, + "load": { + "total_load_wall_seconds": 7.094, + "requested_resources": 500, + "authenticated_bound_resources": 500, + "connection_setup_concurrency": 50, + "setup_wall_seconds": 0.671, + "setup_latency": { + "samples": 500, + "median_ms": 62.192, + "p95_ms": 83.883, + "max_ms": 114.563 + }, + "ping_rounds": 10, + "ping_round_trip": { + "samples": 5000, + "median_ms": 13.502, + "p95_ms": 19.31, + "max_ms": 24.054 + }, + "accounts": 100, + "message_rounds": 10, + "messages_sent": 5000, + "messages_received": 5000, + "message_batch_seconds": 4.134, + "metrics_before": { + "rss_kib": 8048, + "cpu_seconds": 0.0, + "fd_count": 11 + }, + "metrics_connected": { + "rss_kib": 26804, + "cpu_seconds": 1.02, + "fd_count": 511 + }, + "metrics_after_workload": { + "rss_kib": 27400, + "cpu_seconds": 8.85, + "fd_count": 511 + }, + "metrics_two_seconds_after_disconnect": { + "rss_kib": 27464, + "cpu_seconds": 8.9, + "fd_count": 11 + }, + "sampled_peak_rss_kib": 27464, + "fd_delta_after_disconnect": 0, + "failures": [], + "scope": "One loopback host, 100 accounts with distinct resources, TLS+PLAIN, ping and directed messages; not a production benchmark or proof of no memory leaks.", + "mam": { + "archive_files": 100, + "records": 10000, + "expected_records": 10000 + } + }, + "limitations": [ + "MinIO upstream RELEASE.2025-04-22T22-12-26Z with disclosed five-line EPERM loopback interface enumeration adapter; S3/auth/storage/multipart code unchanged", + "Single-node loopback MinIO, HTTP gateway-to-store and verified HTTPS client-to-gateway; no AWS account or distributed/production storage qualification", + "Missing/corrupt ownership metadata cannot identify arbitrary bucket orphans; lifecycle remains defense in depth", + "Ambiguous completion with HEAD404 quarantines slot until a trustworthy remote outcome; no automatic destructive reset", + "Migration is offline, source preserving, requires temporary disk up to one largest file; no live migration", + "Previous full Prosody parity / production client / DNSSEC limits unchanged" + ] +} diff --git a/docs/validation-results.json b/docs/validation-results.json index 7823d9e..76873a5 100644 --- a/docs/validation-results.json +++ b/docs/validation-results.json @@ -1,133 +1,88 @@ { - "version": "0.7.9", + "version": "0.8.0", "date_utc": "2026-10-20", "ordinary_tests": { - "passed": 265, + "passed": 293, "failed": 0, "ignored": 11 }, "fmt": "passed", "clippy": "passed", "release": "passed", + "release_binary_sha256": "74882319fcb467dd1e1813ab61e85441ffd3dae2f9f7961b28fd98ec5da7c89a", "native_module_tests": 8, "native_federation_tests": 1, - "release_binary_sha256": "24c0dca637e7ce4e238ef6becad16bb5a18a33546554b0eecf310fd8927f021c", - "upload": { - "minio_10gib": { - "ok": true, - "minio_version": "minio-sandbox-compat version DEVELOPMENT.GOGET (commit-id=DEVELOPMENT.GOGET)\nRuntime: go1.24.3 linux/amd64\nLicense: GNU AGPLv3 - https://www.gnu.org/licenses/agpl-3.0.html\nCopyright: 2015-0000 MinIO, Inc.", - "minio_binary_sha256": "8bbb9bccfbac69869ab499c39cfd8731b2b770b86ccf37cca1c8267556ad9bf0", - "binary": "/workspace/scratch/362577cdf2e0/recovered/rust-xmpp/target/release/rust-xmpp", - "binary_version": "rust-xmpp 0.7.9 — experimental XMPP runtime", - "binary_sha256": "24c0dca637e7ce4e238ef6becad16bb5a18a33546554b0eecf310fd8927f021c", - "size": 10737418240, - "qualifies_over_5gib": true, - "minio_test_only_compatibility_patch": { - "sha256": "e60592a65273f28a1375eb6ecbc0966f7fbd2ba7567d2ffedc13ffd95ed224f5", - "diff": "--- a/cmd/net.go\n+++ b/cmd/net.go\n@@ -24,6 +24,7 @@\n \t\"runtime\"\n \t\"sort\"\n \t\"strings\"\n+\t\"syscall\"\n \n \t\"github.com/minio/minio-go/v7/pkg/set\"\n \t\"github.com/minio/minio/internal/config\"\n@@ -54,6 +55,10 @@\n // mustGetLocalIPs returns IPs of local interface\n func mustGetLocalIPs() (ipList []net.IP) {\n \tifs, err := net.Interfaces()\n+\t// TEST ONLY: the sandbox denies netlink enumeration; all listeners bind loopback.\n+\tif errors.Is(err, syscall.EPERM) {\n+\t\treturn []net.IP{net.ParseIP(\"127.0.0.1\")}\n+\t}\n \tlogger.FatalIf(err, \"Unable to get IP addresses of this host\")\n \n \tfor _, interf := range ifs {\n", - "limitation": "Modified upstream MinIO: EPERM interface enumeration uses loopback; all S3/auth/storage code remains upstream." - }, - "max_rss_bytes": { - "server": 106057728, - "client": 24338432, - "minio": 498958336 - }, - "put_bytes": 10737418240, - "put_seconds": 48.45253416699961, - "sha256": "e4c296c41d3a9605f0348961e41ed835b5f42c220751ed2269a726951546c935", - "minio_etag": "958f42d583ac40ff209eb865c5eb4bd6-1280", - "multipart_parts": 1280, - "minio_allocated_bytes": 10747953152, - "free_disk_after_put_bytes": 15180328960, - "get_bytes": 10737418240, - "get_sha256": "e4c296c41d3a9605f0348961e41ed835b5f42c220751ed2269a726951546c935", - "get_seconds": 13.709708632000911, - "range_offsets": [ - 0, - 4294967289, - 5368709113, - 10737418208 - ], - "restart_range_ok": true, - "restart_reuse_status": 409, - "crash_multipart_cleanup_ok": true, - "minio_upstream_provenance": { - "source_url": "https://github.com/minio/minio/archive/refs/tags/RELEASE.2025-04-22T22-12-26Z.tar.gz", - "upstream_release": "RELEASE.2025-04-22T22-12-26Z", - "build": "Go1.24.3 go build -p4; no dependency changes", - "sha256": { - "/tmp/minio-source.tar.gz": "1a63209927b9d1fb239b2a776b7b01d1902eff19379a108f4bc7005edcc0968c", - "/tmp/minio-genuine": "3dd5d6756ad17c599fbc1c6f6a2f5b590242c049522e848c700949dbf8e60ad9", - "/tmp/minio-sandbox-compat": "8bbb9bccfbac69869ab499c39cfd8731b2b770b86ccf37cca1c8267556ad9bf0", - "/tmp/minio-sandbox-compat.patch": "e60592a65273f28a1375eb6ecbc0966f7fbd2ba7567d2ffedc13ffd95ed224f5" - }, - "compatibility_limitation": "Only net.Interfaces EPERM becomes loopback127.0.0.1; all S3/auth/multipart/storage source unchanged." - } - }, - "migration_network": "passed: local -> S3 A -> S3 B -> local, dry-run, lock, native metadata/source preservation, interrupted copy/resume, native final file with incomplete cache", - "s3_fault_network": "passed: SigV4, paginated exact-key orphan cleanup, foreign prefix safety, missing UploadId crash recovery, conditional Complete, ambiguous completion quarantine and late recovery", - "claim_race_regression": "passed: atomic fresh snapshot and active claim retains latest completion/quarantine flags" - }, - "load": { - "total_load_wall_seconds": 7.094, - "requested_resources": 500, - "authenticated_bound_resources": 500, - "connection_setup_concurrency": 50, - "setup_wall_seconds": 0.671, - "setup_latency": { - "samples": 500, - "median_ms": 62.192, - "p95_ms": 83.883, - "max_ms": 114.563 - }, - "ping_rounds": 10, - "ping_round_trip": { - "samples": 5000, - "median_ms": 13.502, - "p95_ms": 19.31, - "max_ms": 24.054 - }, + "muc_crash_network": "passed: real TLS, SIGKILL, temporary/persistent rooms, multiple resources, saved presence/roles, ordered history, acknowledged leave/kick/demotion/password/config, fixed grace, unsupported module rejection; destroy/tombstone separate log", + "sm_restart_network": "passed: SIGKILL/SIGTERM, legacy/SASL2, counter/replay/ack pruning, owner/token/h isolation, resource conflict, account deletion/recreation revocation, MUC offline fanout durable before recipient authentication", + "muc_sm_load": { + "clients": 500, "accounts": 100, - "message_rounds": 10, - "messages_sent": 5000, - "messages_received": 5000, - "message_batch_seconds": 4.134, - "metrics_before": { - "rss_kib": 8048, + "rooms": 10, + "message_rounds": 3, + "concurrency": 20, + "binary": "/tmp/xmpp-durable-muc-load-g0crm4ik/rust-xmpp", + "binary_sha256": "74882319fcb467dd1e1813ab61e85441ffd3dae2f9f7961b28fd98ec5da7c89a", + "before": { + "rss_kib": 9696, "cpu_seconds": 0.0, - "fd_count": 11 + "fd_count": 12 }, - "metrics_connected": { - "rss_kib": 26804, - "cpu_seconds": 1.02, - "fd_count": 511 + "connect_seconds": 5.193, + "connect_latency": { + "samples": 500, + "median_ms": 204.391, + "p95_ms": 270.035, + "max_ms": 332.503 }, - "metrics_after_workload": { - "rss_kib": 27400, - "cpu_seconds": 8.85, - "fd_count": 511 + "phase": "completed", + "status": "pass", + "elapsed_seconds": 78.857, + "join_seconds": 46.703, + "joined": { + "rss_kib": 42248, + "cpu_seconds": 17.77, + "fd_count": 513 }, - "metrics_two_seconds_after_disconnect": { - "rss_kib": 27464, - "cpu_seconds": 8.9, - "fd_count": 11 + "join_presence_deliveries": 25000, + "slots_joined": { + "count": 500, + "bytes": 309790 }, - "sampled_peak_rss_kib": 27464, - "fd_delta_after_disconnect": 0, - "failures": [], - "scope": "One loopback host, 100 accounts with distinct resources, TLS+PLAIN, ping and directed messages; not a production benchmark or proof of no memory leaks.", - "mam": { - "archive_files": 100, - "records": 10000, - "expected_records": 10000 - } + "message_seconds": 10.861, + "room_messages_sent": 30, + "room_messages_delivered": 1500, + "before_kill": { + "rss_kib": 42128, + "cpu_seconds": 23.12, + "fd_count": 514 + }, + "slots_before_kill": { + "count": 500, + "bytes": 514030 + }, + "restart_seconds": 10.559, + "resumed_resources": 10, + "replayed_pending_room_messages": 10, + "membership_groupchat_deliveries_after_resume": 10, + "after_resume": { + "rss_kib": 21168, + "cpu_seconds": 5.03, + "fd_count": 23 + }, + "slots_after_resume": { + "count": 500, + "bytes": 671070 + }, + "total_seconds": 78.857, + "peak_rss_kib": 42252 }, + "upload": "S3 fixture/migration/network regression passed; large 10GiB transfer retained as historical0.7.9 validation, not repeated0.8.0", "limitations": [ - "MinIO upstream RELEASE.2025-04-22T22-12-26Z with disclosed five-line EPERM loopback interface enumeration adapter; S3/auth/storage/multipart code unchanged", - "Single-node loopback MinIO, HTTP gateway-to-store and verified HTTPS client-to-gateway; no AWS account or distributed/production storage qualification", - "Missing/corrupt ownership metadata cannot identify arbitrary bucket orphans; lifecycle remains defense in depth", - "Ambiguous completion with HEAD404 quarantines slot until a trustworthy remote outcome; no automatic destructive reset", - "Migration is offline, source preserving, requires temporary disk up to one largest file; no live migration", - "Previous full Prosody parity / production client / DNSSEC limits unchanged" + "New TLS/SASL connection required; TCP/TLS sockets cannot survive process exit", + "At-least-once SM replay, not cross-store/network exactly-once transaction", + "Known builtin MUC features ported; arbitrary community Lua modules not executed", + "Private durable SM format is Rust-specific, bounded queues and component checkpoint; see MUC-RECOVERY.md", + "Loopback smoke tests, not production capacity or real client qualification", + "Full Prosody parity remains subject to COMPATIBILITY.md" ] } diff --git a/scripts/verify-local.sh b/scripts/verify-local.sh index b365742..d618361 100755 --- a/scripts/verify-local.sh +++ b/scripts/verify-local.sh @@ -27,6 +27,8 @@ python3 tests/pep_order_network.py target/release/rust-xmpp python3 tests/pep_notifications_network.py target/release/rust-xmpp python3 tests/preauth_network.py target/release/rust-xmpp python3 tests/muc_restart_network.py target/release/rust-xmpp +python3 tests/muc_crash_network.py target/release/rust-xmpp +python3 tests/sm_restart_network.py target/release/rust-xmpp python3 tests/resource_rebind.py target/release/rust-xmpp python3 scripts/integration_http.py python3 scripts/integration_http.py --custom-upload-path @@ -39,6 +41,7 @@ if [[ -n ${MINIO_BINARY:-} ]]; then fi if [[ ${XMPP_LOAD_CHECK:-0} == 1 ]]; then python3 scripts/load_smoke.py --clients 500 --accounts 100 --rounds 10 --message-rounds 10 --archive + python3 tests/muc_sm_load_network.py --binary target/release/rust-xmpp --clients 500 fi if [[ -n ${PROSODY_REFERENCE_SOURCE:-} ]]; then RUSTUP_TOOLCHAIN=${RUSTUP_TOOLCHAIN:-1.99.1} scripts/prosody_compat/verify.sh \ diff --git a/src/csi.rs b/src/csi.rs index b598ccc..8afa477 100644 --- a/src/csi.rs +++ b/src/csi.rs @@ -11,7 +11,36 @@ pub struct Buffer { pub resume_delay: Duration, pub important_payloads: Vec, } +#[derive(Clone, Debug, serde::Serialize, serde::Deserialize)] +pub(crate) struct DurableBuffer { + inactive: bool, + queue: Vec, + limit: usize, + resume_delay_ms: u64, + important_payloads: Vec, +} impl Buffer { + pub(crate) fn durable(&self) -> DurableBuffer { + DurableBuffer { + inactive: self.inactive, + queue: self.queue.clone(), + limit: self.limit, + resume_delay_ms: self.resume_delay.as_millis().min(u64::MAX as u128) as u64, + important_payloads: self.important_payloads.clone(), + } + } + pub(crate) fn from_durable(value: DurableBuffer) -> Self { + Self { + inactive: value.inactive, + flushing_until: None, + bytes: value.queue.iter().map(String::len).sum(), + queue: value.queue, + limit: value.limit, + resume_delay: Duration::from_millis(value.resume_delay_ms), + important_payloads: value.important_payloads, + } + } + pub fn configure(&mut self, limit: usize, delay: Duration, payloads: Vec) { self.limit = limit.max(1); self.resume_delay = delay; diff --git a/src/lib.rs b/src/lib.rs index 07f49dc..65d4e6b 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -51,3 +51,5 @@ pub mod http_altconnect; pub mod object_store; pub mod upload_migration; + +pub mod session_store; diff --git a/src/muc.rs b/src/muc.rs index b0d2d5d..bb48c59 100644 --- a/src/muc.rs +++ b/src/muc.rs @@ -10,6 +10,8 @@ const MUC: &str = "http://jabber.org/protocol/muc"; const USER: &str = "http://jabber.org/protocol/muc#user"; const OWNER: &str = "http://jabber.org/protocol/muc#owner"; const ADMIN: &str = "http://jabber.org/protocol/muc#admin"; +#[path = "muc_admin.rs"] +mod component_admin; #[derive(Clone)] struct Occupant { jid: String, @@ -17,6 +19,7 @@ struct Occupant { role: String, presence_payload: String, } +#[derive(Clone)] struct Room { frozen: Value, original: crate::storage::LuaValue, @@ -280,11 +283,21 @@ pub struct Muc { defaults: Value, pending_occupants: crate::muc_recovery::PendingOccupants, recovering_role: Option, + journal_ready: bool, + native_deferred: bool, local_domain: Option, tombstones: bool, + tombstone_expiry: f64, + allow_unaffiliated_register: bool, + enforce_registered_nickname: bool, + registration_include_form: bool, + command_sessions: BTreeMap, room_locking: bool, log_all_rooms: bool, log_presences: bool, + max_rooms: Option, + restrict_room_creation: Value, + component_admins: Vec, max_history_messages: usize, log_include_total: bool, occupant_id_enabled: bool, @@ -302,9 +315,17 @@ impl Muc { rooms: BTreeMap::new(), local_domain: None, tombstones: true, + tombstone_expiry: 31.0 * 86400.0, + allow_unaffiliated_register: false, + enforce_registered_nickname: false, + registration_include_form: false, + command_sessions: BTreeMap::new(), room_locking: true, log_all_rooms: false, log_presences: false, + max_rooms: None, + restrict_room_creation: Value::Bool(false), + component_admins: Vec::new(), max_history_messages: 100, log_include_total: true, occupant_id_enabled: true, @@ -315,6 +336,8 @@ impl Muc { pending_iq: BTreeMap::new(), pending_occupants: Default::default(), recovering_role: None, + journal_ready: false, + native_deferred: false, defaults: json!({"hidden":true,"persistent":false,"whois":"moderators"}), } } @@ -326,6 +349,28 @@ impl Muc { .and_then(Value::as_bool) .unwrap_or(default) }; + self.max_rooms = options + .get("muc_max_rooms") + .and_then(Value::as_u64) + .map(|n| n as usize); + self.restrict_room_creation = options + .get("restrict_room_creation") + .cloned() + .unwrap_or(Value::Bool(false)); + self.component_admins = options + .get("admins") + .and_then(Value::as_array) + .into_iter() + .flatten() + .filter_map(Value::as_str) + .map(str::to_owned) + .collect(); + self.pending_occupants.set_grace_seconds( + options + .get("muc_recovery_grace_period") + .and_then(Value::as_u64) + .unwrap_or(crate::muc_recovery::RECOVERY_SECONDS), + ); self.max_history_messages = options .get("max_history_messages") .and_then(Value::as_u64) @@ -333,6 +378,11 @@ impl Muc { .min(4096) as usize; self.occupant_id_enabled = flag("muc_occupant_id", true); self.vcard_enabled = flag("muc_vcard", true); + self.allow_unaffiliated_register = flag("allow_unaffiliated_register", false); + self.enforce_registered_nickname = flag("enforce_registered_nickname", false); + self.registration_include_form = flag("muc_registration_include_form", false); + self.tombstone_expiry = + component_admin::period(options.get("muc_tombstone_expiry")).unwrap_or(31.0 * 86400.0); self.log_all_rooms = mam_enabled && flag("muc_log_all_rooms", false); self.log_presences = mam_enabled && flag("muc_log_presences", false); self.log_include_total = flag("muc_log_include_total", true); @@ -369,11 +419,275 @@ impl Muc { merge_value(&mut value, &room.frozen); value } - /// Read dormant native checkpoints without activating any routing targets. - pub fn prepare_recovery(&mut self) -> Result<()> { + /// A single fsync/rename is the commit point for room metadata, membership + /// and bounded discussion history. Native stores remain interoperability + /// exports; Rust recovery always starts from this complete generation. + fn commit_rooms(&mut self) -> Result<()> { + use crate::storage::LuaValue as V; let now = std::time::SystemTime::now() .duration_since(std::time::UNIX_EPOCH)? .as_secs(); + self.pending_occupants.expire(now); + let mut journal = V::table(); + journal.set("version", V::Integer(1)); + let mut rooms = V::table(); + for (name, room) in &self.rooms { + let mut item = V::table(); + let config = Self::frozen_room(room); + item.set("config", config); + if (room.data("persistent").as_bool() == Some(true) + || self.pending_occupants.has_room(name)) + && let Some(native) = crate::storage::load( + &self.root, + &self.domain, + Some(name.split('@').next().unwrap()), + "config", + )? + { + item.set( + "native_hash", + crate::muc_recovery::configuration_fingerprint(&native)?.into(), + ); + } + item.set("history", room.history.checkpoint()); + let mut members = V::table(); + let mut snapshots = self.pending_occupants.checkpoint_members(name, now); + snapshots.retain(|(_, o)| !room.occupants.contains_key(&o.jid)); + snapshots.extend(room.occupants.values().map(|o| { + ( + now, + crate::muc_recovery::OccupantSnapshot { + jid: o.jid.clone(), + nick: o.nick.clone(), + role: o.role.clone(), + presence_payload: o.presence_payload.clone(), + }, + ) + })); + let saved_at = snapshots.iter().map(|(at, _)| *at).min().unwrap_or(now); + anyhow::ensure!( + snapshots.len() <= crate::muc_recovery::MAX_OCCUPANTS, + "occupant recovery limit" + ); + for (at, o) in snapshots { + let mut member = V::table(); + member.set("nick", o.nick.into()); + member.set("role", o.role.into()); + member.set( + "presence", + crate::muc_recovery::sanitize_presence_payload(&o.presence_payload).into(), + ); + member.set( + "saved_offset", + V::Integer(at.saturating_sub(saved_at) as i64), + ); + members.set(&o.jid, member); + } + item.set("saved_at", V::Integer(saved_at as i64)); + item.set( + "grace_seconds", + V::Integer(self.pending_occupants.grace_seconds() as i64), + ); + item.set("occupants", members); + rooms.set(name, item); + } + journal.set("rooms", rooms); + let path = crate::storage::path(&self.root, &self.domain, None, "rust_muc_checkpoint"); + // Shared native serializer rejects a component-wide image above 16MiB. + let encoded = crate::storage::serialize(&journal)?; + anyhow::ensure!( + encoded.len() <= 16 * 1024 * 1024, + "MUC checkpoint byte limit" + ); + crate::storage::atomic_write(&path, encoded.as_bytes()) + } + fn recover_journal(&mut self, journal: crate::storage::LuaValue, now: u64) -> Result<()> { + use crate::storage::LuaValue as V; + anyhow::ensure!( + journal.get("version").and_then(V::as_i64) == Some(1), + "unsupported MUC checkpoint" + ); + let rooms = journal + .get("rooms") + .ok_or_else(|| anyhow::anyhow!("invalid MUC checkpoint"))?; + for (key, item) in rooms.entries() { + let name = key + .as_str() + .ok_or_else(|| anyhow::anyhow!("invalid checkpoint room"))?; + anyhow::ensure!( + name.ends_with(&format!("@{}", self.domain)) + && !name.contains('/') + && name.len() <= 3072, + "invalid checkpoint room" + ); + let mut config = item + .get("config") + .ok_or_else(|| anyhow::anyhow!("missing checkpoint config"))? + .clone(); + // Honor an administrator's native-store edits conservatively: a + // changed policy invalidates every saved admission proof/history. + let mut policy_changed = false; + if let Some(native) = crate::storage::load( + &self.root, + &self.domain, + Some(name.split('@').next().unwrap()), + "config", + )? { + let actual = crate::muc_recovery::configuration_fingerprint(&native)?; + let committed = crate::muc_recovery::configuration_fingerprint(&config)?; + let expected = item.get("native_hash").and_then(V::as_str); + let persistent = config.get("_data").and_then(|data| data.get("persistent")) + == Some(&V::Bool(true)); + if (persistent || expected.is_some()) + && actual != committed + && expected != Some(actual.as_str()) + { + config = native; + policy_changed = true; + } + } else if item.get("native_hash").is_some() { + // Removing an exported native room is an explicit revocation. + continue; + } + self.insert_loaded_room(name, config)?; + let room = self.rooms.get_mut(name).unwrap(); + if !policy_changed && let Some(history) = item.get("history") { + room.history.restore_checkpoint(history); + } + if policy_changed || room.data("destroyed").as_bool() == Some(true) { + continue; + } + let saved_at = item + .get("saved_at") + .and_then(V::as_i64) + .and_then(|t| u64::try_from(t).ok()) + .unwrap_or(0); + let mut occupants = Vec::new(); + if let Some(members) = item.get("occupants") { + anyhow::ensure!( + members.entries().len() <= crate::muc_recovery::MAX_OCCUPANTS, + "occupant recovery limit" + ); + for (jid, member) in members.entries() { + let Some(jid) = jid.as_str().filter(|s| { + s.contains('/') && s.len() <= 3072 && !s.chars().any(char::is_control) + }) else { + continue; + }; + let Some(nick) = member.get("nick").and_then(V::as_str).filter(|s| { + !s.is_empty() && s.len() <= 3072 && !s.chars().any(char::is_control) + }) else { + continue; + }; + let Some(role) = member + .get("role") + .and_then(V::as_str) + .filter(|r| matches!(*r, "moderator" | "participant" | "visitor")) + else { + continue; + }; + let presence_payload = member + .get("presence") + .and_then(V::as_str) + .filter(|s| s.len() <= 16 * 1024) + .unwrap_or(""); + let offset = member + .get("saved_offset") + .and_then(V::as_i64) + .and_then(|t| u64::try_from(t).ok()) + .unwrap_or(0); + occupants.push(( + saved_at.saturating_add(offset), + crate::muc_recovery::OccupantSnapshot { + jid: jid.into(), + nick: nick.into(), + role: role.into(), + presence_payload: crate::muc_recovery::sanitize_presence_payload( + presence_payload, + ), + }, + )); + } + } + let configured_grace = self.pending_occupants.grace_seconds(); + let saved_grace = item + .get("grace_seconds") + .and_then(V::as_i64) + .and_then(|n| u64::try_from(n).ok()) + .unwrap_or(crate::muc_recovery::RECOVERY_SECONDS); + self.pending_occupants.set_grace_seconds(saved_grace); + let inserted = + self.pending_occupants + .insert_checkpoint_members(name.into(), occupants, now); + self.pending_occupants.set_grace_seconds(configured_grace); + inserted?; + } + Ok(()) + } + /// Read dormant native checkpoints without activating any routing targets. + pub fn prepare_recovery(&mut self) -> Result<()> { + if self.journal_ready { + return Ok(()); + } + let now = std::time::SystemTime::now() + .duration_since(std::time::UNIX_EPOCH)? + .as_secs(); + if let Some(journal) = + crate::storage::load(&self.root, &self.domain, None, "rust_muc_checkpoint")? + { + self.journal_ready = true; + if let Err(error) = self.recover_journal(journal, now) { + self.journal_ready = false; + self.rooms.clear(); + self.pending_occupants = Default::default(); + return Err(error); + } + return Ok(()); + } + // Native operators may write a room config before updating the room + // index. Import those configurations before establishing journal authority. + let directory = self + .root + .join(crate::storage::encode_name(&self.domain)) + .join("config"); + if directory.exists() { + for entry in std::fs::read_dir(directory)? { + let entry = entry?; + let filename = entry.file_name(); + let Some(stem) = filename.to_str().and_then(|s| s.strip_suffix(".dat")) else { + continue; + }; + let mut decoded = Vec::new(); + let mut chars = stem.as_bytes().iter().copied(); + let mut valid = true; + while let Some(byte) = chars.next() { + if byte == b'%' { + let hex = chars.next().zip(chars.next()).and_then(|(a, b)| { + Some(((a as char).to_digit(16)? * 16 + (b as char).to_digit(16)?) as u8) + }); + if let Some(byte) = hex { + decoded.push(byte); + } else { + valid = false; + break; + } + } else { + decoded.push(byte); + } + } + let Ok(node) = String::from_utf8(decoded) else { + continue; + }; + if valid + && !node.is_empty() + && !node.contains(['/', '@']) + && !node.chars().any(char::is_control) + && crate::storage::encode_name(&node) == stem + { + self.load(&format!("{node}@{}", self.domain))?; + } + } + } if let Some(index) = crate::storage::load(&self.root, &self.domain, None, "persistent")? { for (key, _) in index.entries() { let Some(name) = key @@ -399,7 +713,7 @@ impl Muc { let saved_at = crate::muc_recovery::load_checkpoint_time(&self.root, &self.domain, name)? .unwrap_or(0); - if now.saturating_sub(saved_at) >= crate::muc_recovery::RECOVERY_SECONDS { + if now.saturating_sub(saved_at) >= self.pending_occupants.grace_seconds() { continue; } let occupants = crate::muc_recovery::load_room(&self.root, &self.domain, name)?; @@ -407,10 +721,20 @@ impl Muc { .insert_checkpoint(name.into(), occupants, saved_at, now)?; } } + self.commit_rooms()?; + self.journal_ready = true; Ok(()) } + /// Refresh only the authoritative crash image. Live identities receive the + /// configured recovery window; dormant identities keep their fixed deadline. + pub fn checkpoint_durable(&mut self) -> Result<()> { + self.prepare_recovery()?; + self.commit_rooms() + } /// Freeze room metadata and live occupants before transport teardown. pub fn checkpoint_live(&mut self) -> Result<()> { + self.prepare_recovery()?; + self.commit_rooms()?; let now = std::time::SystemTime::now() .duration_since(std::time::UNIX_EPOCH)? .as_secs(); @@ -471,9 +795,13 @@ impl Muc { .filter(|(packet, _)| packet.len() <= 16 * 1024), )?; } + self.commit_rooms()?; Ok(()) } fn consume_recovery_checkpoint(&self, room: &str, jid: &str) -> Result<()> { + if self.journal_ready { + return Ok(()); + } let mut remaining = crate::muc_recovery::load_room(&self.root, &self.domain, room)?; remaining.retain(|o| o.jid != jid); let fingerprint = crate::muc_recovery::load_fingerprint(&self.root, &self.domain, room)?; @@ -498,6 +826,19 @@ impl Muc { } /// Called only for an authenticated full JID's initial available presence. pub fn restore_for_session(&mut self, jid: &str) -> Result { + self.prepare_recovery()?; + let rooms = self.rooms.clone(); + let pending = self.pending_occupants.clone(); + let result = self.restore_session_uncommitted(jid); + if result.is_err() { + self.rooms = rooms; + self.pending_occupants = pending; + } else { + self.export_committed(&rooms); + } + result + } + fn restore_session_uncommitted(&mut self, jid: &str) -> Result { let now = std::time::SystemTime::now() .duration_since(std::time::UNIX_EPOCH)? .as_secs(); @@ -508,8 +849,10 @@ impl Muc { }; let fingerprint = crate::muc_recovery::configuration_fingerprint(&Self::frozen_room(room))?; - if crate::muc_recovery::load_fingerprint(&self.root, &self.domain, &name)?.as_deref() - != Some(fingerprint.as_str()) + if !self.journal_ready + && crate::muc_recovery::load_fingerprint(&self.root, &self.domain, &name)? + .as_deref() + != Some(fingerprint.as_str()) { continue; } @@ -524,9 +867,9 @@ impl Muc { .as_str() .filter(|p| !p.is_empty()) .map(|p| format!("{}", escape(p))) - .unwrap_or_default(); + .unwrap_or_else(|| format!("")); let packet = format!( - "{}{password}", + "{}{password}", escape(&name), escape(&snapshot.nick), snapshot.presence_payload @@ -555,6 +898,7 @@ impl Muc { } } } + self.commit_rooms()?; Ok(out) } pub fn set_tombstones(&mut self, enabled: bool) { @@ -582,53 +926,64 @@ impl Muc { if self.rooms.contains_key(room) { return Ok(()); } + if self.journal_ready { + return Ok(()); + } let p = self.path(room); if p.exists() { let original = crate::storage::parse(&std::fs::read(&p)?)?; - let mut value = view_value(&original); - if value["_data"]["archiving"].is_null() { - value["_data"]["archiving"] = self.defaults["archiving"].clone(); - } - if !matches!( - original - .get("_data") - .and_then(|d| d.get("occupant_id_salt")), - Some(crate::storage::LuaValue::String(_)) - ) { - value["_data"]["occupant_id_salt"] = json!(uuid::Uuid::new_v4().to_string()); - } - let mut history = crate::muc_history::RoomHistory::new( - value["_data"]["history_length"].as_u64().unwrap_or(20) as usize, - ); - if let Some((packet, when)) = - crate::muc_recovery::load_last_message(&self.root, &self.domain, room)? - { - history.restore_last_message(&packet, when); - } - self.rooms.insert( - room.into(), - Room { - frozen: value.clone(), - original, - occupants: BTreeMap::new(), - history, - occupant_id_enabled: self.occupant_id_enabled, - force_archiving: self.log_all_rooms, - hats_compat: self.hats_compat, - locked: value["_data"]["locked"].as_bool() == Some(true) - || value["_data"]["locked"].as_f64().is_some_and(|v| { - v > std::time::SystemTime::now() - .duration_since(std::time::UNIX_EPOCH) - .unwrap_or_default() - .as_secs_f64() - }), - }, - ); + self.insert_loaded_room(room, original)?; } Ok(()) } + fn insert_loaded_room(&mut self, room: &str, original: crate::storage::LuaValue) -> Result<()> { + let mut value = view_value(&original); + if value["_data"]["archiving"].is_null() { + value["_data"]["archiving"] = self.defaults["archiving"].clone(); + } + if !matches!( + original + .get("_data") + .and_then(|d| d.get("occupant_id_salt")), + Some(crate::storage::LuaValue::String(_)) + ) { + value["_data"]["occupant_id_salt"] = json!(uuid::Uuid::new_v4().to_string()); + } + let mut history = crate::muc_history::RoomHistory::new( + value["_data"]["history_length"] + .as_u64() + .unwrap_or(20) + .min(self.max_history_messages as u64) as usize, + ); + if !self.journal_ready + && let Some((packet, when)) = + crate::muc_recovery::load_last_message(&self.root, &self.domain, room)? + { + history.restore_last_message(&packet, when); + } + self.rooms.insert( + room.into(), + Room { + frozen: value.clone(), + original, + occupants: BTreeMap::new(), + history, + occupant_id_enabled: self.occupant_id_enabled, + force_archiving: self.log_all_rooms, + hats_compat: self.hats_compat, + locked: value["_data"]["locked"].as_bool() == Some(true) + || value["_data"]["locked"].as_f64().is_some_and(|v| { + v > std::time::SystemTime::now() + .duration_since(std::time::UNIX_EPOCH) + .unwrap_or_default() + .as_secs_f64() + }), + }, + ); + Ok(()) + } fn save(&self, room: &str) -> Result<()> { - if self.recovering_role.is_some() { + if self.native_deferred || self.recovering_role.is_some() { return Ok(()); } let r = &self.rooms[room]; @@ -659,7 +1014,27 @@ impl Muc { } Ok(()) } + fn export_committed(&self, previous: &BTreeMap) { + // Native files are compatibility exports after the authoritative commit. + // An export failure cannot undo a durably accepted room mutation. + for name in previous + .keys() + .filter(|name| !self.rooms.contains_key(*name)) + { + if let Err(error) = self.delete_saved_room(name) { + eprintln!("MUC native deletion export failed: {error}"); + } + } + for name in self.rooms.keys() { + if let Err(error) = self.save(name) { + eprintln!("MUC native room export failed: {error}"); + } + } + } fn delete_saved_room(&self, room: &str) -> Result<()> { + if self.native_deferred { + return Ok(()); + } let node = room.split('@').next().unwrap(); for store in ["config", "state"] { let path = crate::storage::path(&self.root, &self.domain, Some(node), store); @@ -680,6 +1055,21 @@ impl Muc { /// Periodic maintenance, including rooms which have not received traffic. /// Caller may invoke once a minute; `now` is UTC Unix seconds. pub fn maintenance(&mut self, now: f64) -> Result<()> { + self.prepare_recovery()?; + let rooms = self.rooms.clone(); + let pending = self.pending_occupants.clone(); + self.native_deferred = true; + let result = self.maintenance_uncommitted(now); + self.native_deferred = false; + if result.is_err() { + self.rooms = rooms; + self.pending_occupants = pending; + } else { + self.export_committed(&rooms); + } + result + } + fn maintenance_uncommitted(&mut self, now: f64) -> Result<()> { anyhow::ensure!( now.is_finite() && now >= 0.0, "invalid maintenance timestamp" @@ -737,9 +1127,36 @@ impl Muc { self.save(&name)?; } } + self.commit_rooms()?; Ok(()) } pub fn disconnect(&mut self, jid: &str) -> ModuleResult { + match self.disconnect_durable(jid) { + Ok(out) => out, + Err(error) => { + eprintln!("MUC durable disconnect failed: {error}"); + ModuleResult::default() + } + } + } + pub fn disconnect_durable(&mut self, jid: &str) -> Result { + self.prepare_recovery()?; + let rooms = self.rooms.clone(); + let pending = self.pending_occupants.clone(); + self.native_deferred = true; + self.pending_occupants.remove_jid(jid); + let out = self.disconnect_uncommitted(jid); + let committed = self.commit_rooms(); + self.native_deferred = false; + if let Err(error) = committed { + self.rooms = rooms; + self.pending_occupants = pending; + return Err(error); + } + self.export_committed(&rooms); + Ok(out) + } + fn disconnect_uncommitted(&mut self, jid: &str) -> ModuleResult { let mut out = ModuleResult::default(); for (name, r) in &mut self.rooms { if let Some(o) = r.occupants.remove(jid) { @@ -784,6 +1201,65 @@ impl Muc { out } pub fn handle(&mut self, jid: &str, stanza: roxmltree::Node) -> Result> { + let target = bare(stanza.attribute("to").unwrap_or("")); + if target != self.domain && !target.ends_with(&format!("@{}", self.domain)) { + return Ok(None); + } + self.prepare_recovery()?; + let rooms = self.rooms.clone(); + let pending = self.pending_occupants.clone(); + let was_deferred = self.native_deferred; + self.native_deferred = true; + let outcome = (|| { + let now = std::time::SystemTime::now() + .duration_since(std::time::UNIX_EPOCH)? + .as_secs(); + self.pending_occupants.expire(now); + let expired = self + .rooms + .iter() + .filter(|(name, room)| { + room.occupants.is_empty() + && room.data("persistent").as_bool() != Some(true) + && room.data("destroyed").as_bool() != Some(true) + && !self.pending_occupants.has_room(name) + }) + .map(|(name, _)| name.clone()) + .collect::>(); + for name in expired { + self.delete_saved_room(&name)?; + self.rooms.remove(&name); + } + let out = self.handle_uncommitted(jid, stanza)?; + // A changed configuration invalidates old dormant authorization. + for (name, before) in &rooms { + if self + .rooms + .get(name) + .is_none_or(|after| Self::frozen_room(before) != Self::frozen_room(after)) + { + self.pending_occupants.remove_room(name); + } + } + if self.recovering_role.is_none() { + self.commit_rooms()?; + } + Ok(out) + })(); + self.native_deferred = was_deferred; + if outcome.is_err() { + self.rooms = rooms; + self.pending_occupants = pending; + } else if !was_deferred && self.recovering_role.is_none() { + self.export_committed(&rooms); + } + outcome + } + fn handle_uncommitted( + &mut self, + jid: &str, + stanza: roxmltree::Node, + ) -> Result> { let target = bare(stanza.attribute("to").unwrap_or("")); let was_occupant = self .rooms @@ -832,6 +1308,14 @@ impl Muc { Ok(result) } fn handle_inner(&mut self, jid: &str, stanza: roxmltree::Node) -> Result> { + self.handle_inner_authorized(jid, stanza, false) + } + fn handle_inner_authorized( + &mut self, + jid: &str, + stanza: roxmltree::Node, + component_authority: bool, + ) -> Result> { let to = stanza.attribute("to").unwrap_or(""); let room = bare(to); if room != self.domain && !room.ends_with(&format!("@{}", self.domain)) { @@ -840,12 +1324,13 @@ impl Muc { let kind = stanza.tag_name().name(); let typ = stanza.attribute("type").unwrap_or(""); let mut out = ModuleResult::default(); - if kind == "message" && typ == "error" - || kind == "iq" && matches!(typ, "result" | "error") && !to.contains('/') - { + if kind == "iq" && matches!(typ, "result" | "error") && !to.contains('/') { return Ok(Some(out)); } if room == self.domain { + if let Some(result) = component_admin::handle(self, jid, stanza)? { + return Ok(Some(result)); + } if let Some(index) = crate::storage::load(&self.root, &self.domain, None, "persistent")? { for (k, _) in index.entries() { @@ -868,7 +1353,7 @@ impl Muc { ), )))); } - match q.tag_name().namespace().unwrap_or("") {"http://jabber.org/protocol/disco#info"=>out.replies.push(iq_result(stanza,&format!(""))),"http://jabber.org/protocol/disco#items"=>{let mut items=String::new();for (n,r) in &self.rooms {if r.data("hidden").as_bool()!=Some(true){items.push_str(&format!("",escape(n),escape(r.data("name").as_str().unwrap_or(n))));}}out.replies.push(iq_result(stanza,&format!("{items}")));},_=>out.replies.push(iq_error(stanza,"feature-not-implemented"))} + match q.tag_name().namespace().unwrap_or("") {"http://jabber.org/protocol/disco#info"=>out.replies.push(iq_result(stanza,&format!(""))),"http://jabber.org/protocol/disco#items"=>{let mut items=String::new();for (n,r) in &self.rooms {if r.data("hidden").as_bool()!=Some(true){items.push_str(&format!("",escape(n),escape(r.data("name").as_str().unwrap_or(n))));}}out.replies.push(iq_result(stanza,&format!("{items}")));},_=>out.replies.push(iq_error(stanza,"feature-not-implemented"))} } } else { out.replies.push(error(stanza, "service-unavailable")); @@ -901,7 +1386,46 @@ impl Muc { r.locked = false; r.clear_data("locked"); } - if kind == "presence" && typ != "unavailable" && typ != "error" { + if kind == "presence" && !matches!(typ, "" | "unavailable" | "error" | "probe") { + if !matches!(typ, "result" | "visible" | "invisible") { + out.replies.push(error(stanza, "bad-request")); + } + return Ok(Some(out)); + } + if kind == "presence" && typ == "probe" { + let Some(r) = self.rooms.get(room) else { + return Ok(Some(ModuleResult::reply(error(stanza, "item-not-found")))); + }; + let Some(prober) = r.occupants.get(jid) else { + return Ok(Some(ModuleResult::reply(error(stanza, "not-acceptable")))); + }; + let nick = to.split_once('/').map(|(_, n)| n).unwrap_or(&prober.nick); + if let Some(occupant) = r.occupants.values().find(|o| o.nick == nick) { + out.replies + .push(r.presence(room, occupant, prober, false, "")); + } else if let Some(owner) = r.reserved_by(nick) { + let public = r.data("whois").as_str() == Some("anyone") + || prober.role == "moderator" + || bare(jid) == owner + || r.privileged(jid); + let real = if public { + format!(" jid='{}'", escape(owner)) + } else { + String::new() + }; + out.replies.push(format!("", escape(room), escape(nick), escape(jid), escape(&r.affiliation(owner)), escape(nick))); + } + return Ok(Some(out)); + } + if kind == "presence" && typ.is_empty() { + if !self + .rooms + .get(room) + .is_some_and(|r| r.occupants.contains_key(jid)) + && !stanza.children().any(|n| n.has_tag_name((MUC, "x"))) + { + return Ok(Some(ModuleResult::reply(error(stanza, "item-not-found")))); + } let nick_owned = to .split_once('/') .map(|(_, n)| n.to_owned()) @@ -921,15 +1445,61 @@ impl Muc { Ok(v) => v, Err(_) => return Ok(Some(ModuleResult::reply(error(stanza, "jid-malformed")))), }; - let nick = prepared.as_ref(); - let created = !self.rooms.contains_key(room); - if created - && self - .local_domain - .as_ref() - .is_some_and(|d| bare(jid).split_once('@').map(|(_, h)| h) != Some(d.as_str())) + if self + .rooms + .get(room) + .and_then(|r| r.reserved_by(prepared.as_ref())) + .is_some_and(|owner| owner != bare(jid)) { - return Ok(Some(ModuleResult::reply(error(stanza, "forbidden")))); + return Ok(Some(ModuleResult::reply(error(stanza, "conflict")))); + } + let registered = self.rooms.get(room).and_then(|r| { + r.frozen["_affiliation_data"][bare(jid)]["reserved_nickname"] + .as_str() + .map(str::to_owned) + }); + let enforced = if self.enforce_registered_nickname { + if let Some(registered) = registered { + if self + .rooms + .get(room) + .is_some_and(|r| r.occupants.contains_key(jid)) + && prepared.as_ref() != registered + { + return Ok(Some(ModuleResult::reply(error(stanza, "not-acceptable")))); + } + Some(registered) + } else { + None + } + } else { + None + }; + let nick = enforced.as_deref().unwrap_or(prepared.as_ref()); + let created = !self.rooms.contains_key(room); + if created { + let admin = self + .component_admins + .iter() + .any(|admin| bare(admin) == bare(jid)); + let restricted = self.restrict_room_creation == Value::Bool(true) && !admin + || self.restrict_room_creation.as_str() == Some("local") + && !admin + && self.local_domain.as_ref().is_none_or(|d| { + bare(jid).split_once('@').map(|(_, h)| h) != Some(d.as_str()) + }); + if restricted { + return Ok(Some(ModuleResult::reply(error(stanza, "not-allowed")))); + } + if self + .max_rooms + .is_some_and(|limit| self.rooms.len() >= limit) + { + return Ok(Some(ModuleResult::reply( + error(stanza, "resource-constraint") + .replace("type='cancel'", "type='wait'"), + ))); + } } if created { let mut frozen = @@ -1089,8 +1659,15 @@ impl Muc { .children() .filter(|n| { n.is_element() - && matches!(n.tag_name().namespace(), None | Some("jabber:client")) - && matches!(n.tag_name().name(), "show" | "status" | "priority") + && !matches!( + n.tag_name().namespace(), + Some( + MUC | USER + | "urn:xmpp:occupant-id:0" + | "urn:xmpp:hats:0" + | "xmpp:prosody.im/protocol/hats:1" + ) + ) }) .map(xml) .collect(), @@ -1111,7 +1688,7 @@ impl Muc { } r.occupants.insert(jid.into(), o.clone()); for target in r.occupants.values() { - let p = r.presence( + let mut p = r.presence( room, &o, target, @@ -1122,6 +1699,12 @@ impl Muc { "" }, ); + if target.jid == jid && nick != prepared.as_ref() { + p = p.replace( + "", + "", + ); + } if target.jid == jid { out.replies.push(p); } else { @@ -1247,10 +1830,52 @@ impl Muc { out.replies.push(error(stanza, "item-not-found")); return Ok(Some(out)); }; - if kind == "presence" && (typ == "unavailable" || typ == "error") { - if let Some(o) = r.occupants.remove(jid) { - out.replies.push(r.presence(room, &o, &o, true, "")); + let kicked = + typ == "error" && (kind == "presence" || kind == "message" && kickable_error(stanza)); + if kind == "message" && typ == "error" && !kicked { + if let Some((_, nick)) = to.split_once('/') + && let Some(sender) = r.occupants.get(jid) + { + let payload = stanza + .children() + .filter(|n| { + n.is_element() && !matches!(n.tag_name().namespace(), Some(MUC | USER)) + }) + .map(xml) + .collect::(); + for target in r.occupants.values().filter(|o| o.nick == nick) { + out.deliveries.push((target.jid.clone(), format!("{payload}", escape(room), escape(&sender.nick), escape(&target.jid), escape(stanza.attribute("id").unwrap_or(""))))); + } + } + return Ok(Some(out)); + } + if kind == "presence" && typ == "unavailable" || kicked { + if let Some(mut o) = r.occupants.remove(jid) { let remains = r.occupants.values().any(|other| other.nick == o.nick); + let code = if kicked && !remains { "333" } else { "" }; + if kicked { + let condition = stanza + .children() + .find(|n| n.has_tag_name("error")) + .and_then(|n| { + n.children().find(|n| { + n.is_element() + && n.tag_name().namespace() + == Some("urn:ietf:params:xml:ns:xmpp-stanzas") + && n.tag_name().name() != "text" + }) + }) + .map(|n| n.tag_name().name()); + o.presence_payload = format!( + "Kicked: {}", + escape( + &condition + .map(|c| c.replace('-', " ")) + .unwrap_or_else(|| "presence error".into()) + ) + ); + } + out.replies.push(r.presence(room, &o, &o, true, code)); if !remains && self.log_presences && r.archiving() { archive_presence(&self.root, &self.domain, room, &o.nick, true)?; } @@ -1259,7 +1884,7 @@ impl Muc { continue; } out.deliveries - .push((target.jid.clone(), r.presence(room, &o, target, true, ""))); + .push((target.jid.clone(), r.presence(room, &o, target, true, code))); } } let now = std::time::SystemTime::now() @@ -1355,7 +1980,21 @@ impl Muc { } else { let subject = stanza .children() - .find(|n| n.is_element() && n.tag_name().name() == "subject"); + .find(|n| { + n.is_element() + && matches!(n.tag_name().namespace(), None | Some("jabber:client")) + && n.tag_name().name() == "subject" + }) + .filter(|_| { + !stanza.children().any(|n| { + n.is_element() + && matches!( + n.tag_name().namespace(), + None | Some("jabber:client") + ) + && matches!(n.tag_name().name(), "body" | "thread") + }) + }); if let Some(s) = subject { if o.role != "moderator" && r.data("changesubject").as_bool() != Some(true) { @@ -1593,7 +2232,7 @@ impl Muc { if affiliation == "outcast" { return Ok(Some(ModuleResult::reply(iq_error(stanza, "forbidden")))); } - if affiliation == "none" { + if affiliation == "none" && !self.allow_unaffiliated_register { return Ok(Some(ModuleResult::reply(iq_error( stanza, "registration-required", @@ -1602,7 +2241,19 @@ impl Muc { if typ == "get" { let registered = r.frozen["_affiliation_data"][bare(jid)]["reserved_nickname"].as_str(); - let content=registered.map(|nick|format!("{}",escape(nick))).unwrap_or_else(||"http://jabber.org/protocol/muc#register".into()); + let content = registered + .map(|nick| { + format!( + "{}{}", + escape(nick), + if self.registration_include_form { + component_admin::registration_form(Some(nick)) + } else { + String::new() + } + ) + }) + .unwrap_or_else(|| component_admin::registration_form(None)); return Ok(Some(ModuleResult::reply(iq_result( stanza, &format!("{content}"), @@ -1679,6 +2330,26 @@ impl Muc { { return Ok(Some(ModuleResult::reply(iq_error(stanza, "conflict")))); } + if self.enforce_registered_nickname { + let affected = r + .occupants + .values() + .filter(|o| bare(&o.jid) == bare(jid) && o.nick != nick) + .cloned() + .collect::>(); + for o in affected { + for target in r.occupants.values() { + out.deliveries.push(( + target.jid.clone(), + r.presence_force(room, &o, target, true, "307"), + )); + } + r.occupants.remove(&o.jid); + } + } + if affiliation == "none" { + r.set_affiliation(bare(jid), "member"); + } r.frozen["_affiliation_data"][bare(jid)]["reserved_nickname"] = json!(nick.as_ref()); } @@ -1775,7 +2446,7 @@ impl Muc { && typ == "set" && q.children().any(|n| n.tag_name().name() == "destroy") { - if r.affiliation(jid) != "owner" { + if !component_authority && r.affiliation(jid) != "owner" { return Ok(Some(ModuleResult::reply(iq_error(stanza, "forbidden")))); } let destroy = q @@ -1807,7 +2478,7 @@ impl Muc { } let tombstone = self.tombstones && r.data("persistent").as_bool() == Some(true); if tombstone { - r.frozen = json!({"_jid":room,"_data":{"destroyed":true,"hidden":true,"persistent":true,"locked":std::time::SystemTime::now().duration_since(std::time::UNIX_EPOCH)?.as_secs()+31*86400,"reason":destroy.children().find(|n|n.tag_name().name()=="reason").and_then(|n|n.text()).unwrap_or(""),"newjid":destroy.attribute("jid").unwrap_or("")}}); + r.frozen = json!({"_jid":room,"_data":{"destroyed":true,"hidden":true,"persistent":true,"locked":std::time::SystemTime::now().duration_since(std::time::UNIX_EPOCH)?.as_secs_f64()+self.tombstone_expiry,"reason":destroy.children().find(|n|n.tag_name().name()=="reason").and_then(|n|n.text()).unwrap_or(""),"newjid":destroy.attribute("jid").unwrap_or("")}}); r.original = crate::storage::LuaValue::table(); r.occupants.clear(); self.save(room)?; @@ -1956,9 +2627,20 @@ fn admin( iq: roxmltree::Node, q: roxmltree::Node, out: &mut ModuleResult, +) { + admin_with_authority(r, room, jid, iq, q, out, false) +} +fn admin_with_authority( + r: &mut Room, + room: &str, + jid: &str, + iq: roxmltree::Node, + q: roxmltree::Node, + out: &mut ModuleResult, + component_authority: bool, ) { let moderator = r.occupants.get(jid).is_some_and(|o| o.role == "moderator"); - if !r.privileged(jid) && !moderator { + if !component_authority && !r.privileged(jid) && !moderator { out.replies.push(iq_error(iq, "forbidden")); return; } @@ -1972,7 +2654,10 @@ fn admin( } let item = items[0]; let aff = item.attribute("affiliation"); - if !r.privileged(jid) && (aff.is_some() || item.attribute("role") == Some("moderator")) { + if !component_authority + && !r.privileged(jid) + && (aff.is_some() || item.attribute("role") == Some("moderator")) + { out.replies.push(iq_error(iq, "forbidden")); return; } @@ -2026,13 +2711,14 @@ fn admin( return; } let old = r.affiliation(target); - if r.affiliation(jid) != "owner" + if !component_authority + && r.affiliation(jid) != "owner" && (matches!(old.as_str(), "owner" | "admin") || matches!(aff, "owner" | "admin")) { out.replies.push(iq_error(iq, "forbidden")); return; } - if old == "owner" && aff != "owner" { + if !component_authority && old == "owner" && aff != "owner" { let map = r.frozen.get("_affiliations").unwrap_or(&r.frozen); if map .as_object() @@ -2504,3 +3190,31 @@ fn archive_presence( )?; Ok(()) } + +fn kickable_error(stanza: roxmltree::Node) -> bool { + let condition = stanza + .children() + .find(|n| n.has_tag_name("error")) + .and_then(|n| { + n.children().find(|n| { + n.is_element() + && n.tag_name().namespace() == Some("urn:ietf:params:xml:ns:xmpp-stanzas") + && n.tag_name().name() != "text" + }) + }) + .map(|n| n.tag_name().name()); + matches!( + condition, + None | Some( + "gone" + | "internal-server-error" + | "item-not-found" + | "jid-malformed" + | "recipient-unavailable" + | "redirect" + | "remote-server-not-found" + | "remote-server-timeout" + | "service-unavailable" + ) + ) +} diff --git a/src/muc_admin.rs b/src/muc_admin.rs new file mode 100644 index 0000000..1637b79 --- /dev/null +++ b/src/muc_admin.rs @@ -0,0 +1,319 @@ +//! The two native MUC component administration commands. Authority belongs to +//! configured component administrators and is checked again on every step. +use super::*; +const COMMANDS: &str = "http://jabber.org/protocol/commands"; +const DESTROY: &str = "http://prosody.im/protocol/muc#destroy"; +const AFFILIATION: &str = "http://prosody.im/protocol/muc#set-affiliation"; +const INFO: &str = "http://jabber.org/protocol/disco#info"; +const ITEMS: &str = "http://jabber.org/protocol/disco#items"; + +pub(super) fn period(value: Option<&Value>) -> Option { + let seconds = if let Some(number) = value.and_then(Value::as_f64) { + number + } else { + let text = value?.as_str()?.trim(); + let split = text + .find(|c: char| !(c.is_ascii_digit() || c == '.' || c == '+' || c == '-')) + .unwrap_or(text.len()); + let number: f64 = text[..split].trim().parse().ok()?; + let unit = text[split..].trim(); + number + * match unit { + "" | "s" | "second" | "seconds" => 1.0, + "m" | "minute" | "minutes" => 60.0, + "h" | "hour" | "hours" => 3600.0, + "d" | "day" | "days" => 86400.0, + "w" | "week" | "weeks" => 604800.0, + _ => return None, + } + }; + (seconds.is_finite() && seconds >= 0.0).then_some(seconds) +} +pub(super) fn registration_form(nick: Option<&str>) -> String { + format!( + "http://jabber.org/protocol/muc#register{}", + if nick.is_some() { "result" } else { "form" }, + nick.map(|v| format!("{}", escape(v))) + .unwrap_or_default() + ) +} +fn command_reply( + stanza: roxmltree::Node, + node: &str, + session: &str, + status: &str, + body: &str, +) -> ModuleResult { + ModuleResult::reply(iq_result( + stanza, + &format!( + "{body}", + escape(node), + escape(session) + ), + )) +} +fn form(muc: &Muc, node: &str) -> String { + let fields = if node == DESTROY { + let rooms = muc + .rooms + .keys() + .map(|room| { + format!( + "", + escape(room), + escape(room) + ) + }) + .collect::(); + format!( + "{rooms}" + ) + } else { + "".to_owned() + }; + format!( + "{}{node}{fields}", + if node == DESTROY { + "Destroy rooms" + } else { + "Set affiliation" + } + ) +} +pub(super) fn handle( + muc: &mut Muc, + jid: &str, + stanza: roxmltree::Node, +) -> Result> { + if stanza.tag_name().name() != "iq" { + return Ok(None); + } + let Some(query) = stanza.children().find(|n| n.is_element()) else { + return Ok(None); + }; + let ns = query.tag_name().namespace().unwrap_or(""); + let node = query.attribute("node").unwrap_or(""); + let is_admin = muc + .component_admins + .iter() + .any(|admin| bare(admin) == bare(jid)); + if matches!(ns, INFO | ITEMS) + && (node == COMMANDS || matches!(node, DESTROY | AFFILIATION)) + && stanza.attribute("type") == Some("get") + { + let body = if ns == ITEMS && node == COMMANDS { + if is_admin { + format!( + "", + escape(&muc.domain), + escape(&muc.domain) + ) + } else { + String::new() + } + } else if !is_admin && node != COMMANDS { + return Ok(Some(ModuleResult::reply(iq_error(stanza, "forbidden")))); + } else if ns == INFO { + format!( + "", + if node == COMMANDS { + "command-list" + } else { + "command-node" + } + ) + } else { + String::new() + }; + return Ok(Some(ModuleResult::reply(iq_result( + stanza, + &format!("{body}", escape(node)), + )))); + } + if ns != COMMANDS || query.tag_name().name() != "command" { + return Ok(None); + } + if !is_admin { + return Ok(Some(ModuleResult::reply(iq_error(stanza, "forbidden")))); + } + if stanza.attribute("type") != Some("set") { + return Ok(Some(ModuleResult::reply(iq_error(stanza, "bad-request")))); + } + if !matches!(node, DESTROY | AFFILIATION) { + return Ok(Some(ModuleResult::reply(iq_error( + stanza, + "item-not-found", + )))); + } + muc.command_sessions + .retain(|_, (_, _, started)| started.elapsed() < std::time::Duration::from_secs(600)); + let session = query.attribute("sessionid"); + let action = query.attribute("action").unwrap_or("execute"); + if session.is_none() { + if action != "execute" + || query + .children() + .any(|n| n.has_tag_name(("jabber:x:data", "x"))) + { + return Ok(Some(ModuleResult::reply(iq_error(stanza, "bad-request")))); + } + if muc.command_sessions.len() >= 1000 { + return Ok(Some(ModuleResult::reply(iq_error( + stanza, + "resource-constraint", + )))); + } + let id = uuid::Uuid::new_v4().to_string(); + muc.command_sessions.insert( + id.clone(), + ( + bare(jid).to_owned(), + node.to_owned(), + std::time::Instant::now(), + ), + ); + return Ok(Some(command_reply( + stanza, + node, + &id, + "executing", + &form(muc, node), + ))); + } + let session = session.unwrap(); + if !muc + .command_sessions + .get(session) + .is_some_and(|(owner, command, _)| owner == bare(jid) && command == node) + { + return Ok(Some(ModuleResult::reply(iq_error(stanza, "bad-request")))); + } + if action == "cancel" { + muc.command_sessions.remove(session); + return Ok(Some(command_reply(stanza, node, session, "canceled", ""))); + } + if !matches!(action, "execute" | "complete") { + return Ok(Some(ModuleResult::reply(iq_error(stanza, "bad-request")))); + } + let Some(data) = query + .children() + .find(|n| n.has_tag_name(("jabber:x:data", "x")) && n.attribute("type") == Some("submit")) + else { + return Ok(Some(ModuleResult::reply(iq_error(stanza, "bad-request")))); + }; + let values = |name: &str| { + data.children() + .filter(|f| { + f.has_tag_name(("jabber:x:data", "field")) && f.attribute("var") == Some(name) + }) + .flat_map(|f| { + f.children() + .filter(|v| v.has_tag_name(("jabber:x:data", "value"))) + .filter_map(|v| v.text()) + }) + .collect::>() + }; + if values("FORM_TYPE") != vec![node] { + return Ok(Some(ModuleResult::reply(iq_error(stanza, "bad-request")))); + } + let mut out = ModuleResult::default(); + if node == DESTROY { + let rooms = values("rooms"); + if rooms.is_empty() + || rooms + .iter() + .any(|room| bare(room) != *room || !room.ends_with(&format!("@{}", muc.domain))) + { + return Ok(Some(ModuleResult::reply(iq_error(stanza, "bad-request")))); + } + for name in rooms { + muc.load(name)?; + if !muc.rooms.contains_key(name) { + continue; + } + // Only this internal, ACL-checked command bypasses room ownership. + let packet = format!( + "", + escape(name) + ); + let doc = roxmltree::Document::parse(&packet)?; + if let Some(mut destroyed) = + muc.handle_inner_authorized(jid, doc.root_element(), true)? + { + out.deliveries.append(&mut destroyed.deliveries); + } + } + } else { + let rooms = values("room"); + let targets = values("jid"); + let affiliations = values("affiliation"); + if rooms.len() != 1 || targets.len() != 1 || affiliations.len() != 1 { + return Ok(Some(ModuleResult::reply(iq_error(stanza, "bad-request")))); + } + let name = rooms[0]; + let target = targets[0]; + let affiliation = affiliations[0]; + if bare(name) != name + || !name.ends_with(&format!("@{}", muc.domain)) + || crate::account_modules::normalize_bare_jid(bare(target)).is_err() + || !matches!( + affiliation, + "none" | "member" | "admin" | "owner" | "outcast" + ) + { + return Ok(Some(ModuleResult::reply(iq_error(stanza, "bad-request")))); + } + muc.load(name)?; + let Some(room) = muc.rooms.get_mut(name) else { + return Ok(Some(command_reply( + stanza, + node, + session, + "canceled", + "No such room", + ))); + }; + let reason = values("reason").first().copied().unwrap_or(""); + let packet = format!( + "{}", + escape(&crate::account_modules::normalize_bare_jid(bare(target))?), + escape(reason) + ); + let doc = roxmltree::Document::parse(&packet)?; + let iq = doc.root_element(); + let mut applied = ModuleResult::default(); + admin_with_authority( + room, + name, + jid, + iq, + iq.children().find(|n| n.is_element()).unwrap(), + &mut applied, + true, + ); + if applied.replies.iter().any(|p| p.contains("type='error'")) { + return Ok(Some(command_reply( + stanza, + node, + session, + "canceled", + "Affiliation change failed", + ))); + } + out.deliveries.append(&mut applied.deliveries); + muc.save(name)?; + } + muc.command_sessions.remove(session); + out.replies.append( + &mut command_reply( + stanza, + node, + session, + "completed", + "Command completed", + ) + .replies, + ); + Ok(Some(out)) +} diff --git a/src/muc_history.rs b/src/muc_history.rs index 378416c..791b639 100644 --- a/src/muc_history.rs +++ b/src/muc_history.rs @@ -66,14 +66,14 @@ pub struct RoomHistory { impl RoomHistory { pub fn new(capacity: usize) -> Self { Self { - capacity, + capacity: capacity.min(4096), default_messages: 20, entries: VecDeque::new(), } } pub fn set_capacity(&mut self, capacity: usize) { - self.capacity = capacity; - while self.entries.len() > capacity { + self.capacity = capacity.min(4096); + while self.entries.len() > self.capacity { self.entries.pop_front(); } } @@ -90,7 +90,7 @@ impl RoomHistory { /// Add one room broadcast, before per-recipient routing. Subject-only changes /// are sent separately on join and do not consume discussion history slots. pub fn push(&mut self, stanza: &str, timestamp: i64) { - if self.capacity == 0 { + if self.capacity == 0 || stanza.len() > 16 * 1024 { return; } let Ok(doc) = roxmltree::Document::parse(stanza) else { @@ -132,7 +132,7 @@ impl RoomHistory { } /// Restore a snapshot stanza that already carries its original delay. pub fn restore_last_message(&mut self, stanza: &str, timestamp: i64) { - if self.capacity == 0 { + if self.capacity == 0 || stanza.len() > 16 * 1024 { return; } let Ok(doc) = roxmltree::Document::parse(stanza) else { @@ -148,6 +148,60 @@ impl RoomHistory { }); } + /// Lossless bounded crash snapshot, including original delay stamps. + pub fn checkpoint(&self) -> crate::storage::LuaValue { + use crate::storage::LuaValue as V; + let mut value = V::table(); + for (i, entry) in self.entries.iter().enumerate() { + let mut item = V::table(); + item.set("stanza", entry.stanza.clone().into()); + item.set("timestamp", V::Integer(entry.timestamp)); + value.set_key(V::Integer(i as i64 + 1), item); + } + value + } + pub fn restore_checkpoint(&mut self, value: &crate::storage::LuaValue) { + self.entries.clear(); + // Lua pairs iteration is not sequence order, including numeric keys. + let mut ordered = value + .entries() + .iter() + .filter_map(|(key, item)| { + key.as_i64() + .filter(|index| *index > 0) + .map(|index| (index, item)) + }) + .collect::>(); + ordered.sort_by_key(|(index, _)| *index); + for (_, item) in ordered.into_iter().take(4096) { + let Some(stanza) = item + .get("stanza") + .and_then(crate::storage::LuaValue::as_str) + else { + continue; + }; + let Some(timestamp) = item + .get("timestamp") + .and_then(crate::storage::LuaValue::as_i64) + else { + continue; + }; + if stanza.len() > 16 * 1024 { + continue; + } + let Ok(doc) = roxmltree::Document::parse(stanza) else { + continue; + }; + if is_historic(doc.root_element()) { + self.entries.push_back(Entry { + stanza: stanza.into(), + timestamp, + }); + } + } + self.set_capacity(self.capacity); + } + pub fn replay(&self, _room: &str, to: &str, presence: &str, now: i64) -> Vec { let request = HistoryRequest::parse(presence, now); let max = request.maxstanzas.unwrap_or_else(|| { diff --git a/src/muc_recovery.rs b/src/muc_recovery.rs index d6b4a7c..e425448 100644 --- a/src/muc_recovery.rs +++ b/src/muc_recovery.rs @@ -57,7 +57,7 @@ fn safe_payload(v: &V) -> String { if child .get("attr") .and_then(|a| field(a, "xmlns")) - .is_some_and(|ns| ns != "jabber:client") + .is_some_and(|ns| !matches!(ns, "" | "jabber:client")) { continue; } @@ -71,6 +71,17 @@ fn safe_payload(v: &V) -> String { } out } +/// Keep the crash image transport-independent and exclude passwords/extensions. +pub fn sanitize_presence_payload(payload: &str) -> String { + if payload.len() > MAX_PRESENCE { + return String::new(); + } + let packet = format!("{payload}"); + let Ok(doc) = roxmltree::Document::parse(&packet) else { + return String::new(); + }; + safe_payload(&crate::storage::stanza_value(doc.root_element())) +} /// Decode Prosody's state store (and old frozen room maps) without trusting roles, /// primary-session pointers, or unvalidated stanza extensions. pub fn decode_room(room: &str, value: &V) -> Result> { @@ -235,11 +246,29 @@ pub fn save_room_checkpoint( } /// Dormant claims have a fixed restart deadline; probes never extend it. -#[derive(Default)] +#[derive(Clone)] pub struct PendingOccupants { rooms: BTreeMap)>, + deadlines: BTreeMap<(String, String), u64>, + grace_seconds: u64, +} +impl Default for PendingOccupants { + fn default() -> Self { + Self { + rooms: BTreeMap::new(), + deadlines: BTreeMap::new(), + grace_seconds: RECOVERY_SECONDS, + } + } } impl PendingOccupants { + pub fn set_grace_seconds(&mut self, seconds: u64) { + self.grace_seconds = seconds.clamp(1, 7 * 86400); + } + pub fn grace_seconds(&self) -> u64 { + self.grace_seconds + } + pub fn insert( &mut self, room: String, @@ -252,8 +281,15 @@ impl PendingOccupants { <= MAX_OCCUPANTS, "pending recovery limit" ); + self.deadlines.retain(|(name, _), _| name != &room); + for occupant in &occupants { + self.deadlines.insert( + (room.clone(), occupant.jid.clone()), + now.saturating_add(self.grace_seconds), + ); + } self.rooms - .insert(room, (now.saturating_add(RECOVERY_SECONDS), occupants)); + .insert(room, (now.saturating_add(self.grace_seconds), occupants)); Ok(()) } /// Preserve a checkpoint's original deadline over repeated process restarts. @@ -264,7 +300,7 @@ impl PendingOccupants { saved_at: u64, now: u64, ) -> Result<()> { - if saved_at > now || saved_at.saturating_add(RECOVERY_SECONDS) <= now { + if saved_at > now || saved_at.saturating_add(self.grace_seconds) <= now { return Ok(()); } self.insert(room, occupants, saved_at) @@ -285,6 +321,8 @@ impl PendingOccupants { .iter() .position(|o| o.jid == authenticated_jid && o.nick == nick)?; let mut claim = occupants.remove(i); + self.deadlines + .remove(&(room.into(), authenticated_jid.into())); claim.jid = authenticated_jid.into(); Some(claim) } @@ -306,10 +344,61 @@ impl PendingOccupants { }) .collect() } + pub fn checkpoint_members(&mut self, room: &str, now: u64) -> Vec<(u64, OccupantSnapshot)> { + self.expire(now); + self.rooms + .get(room) + .map(|(_, occupants)| { + occupants + .iter() + .map(|o| { + ( + self.deadlines + .get(&(room.into(), o.jid.clone())) + .copied() + .unwrap_or(now) + .saturating_sub(self.grace_seconds), + o.clone(), + ) + }) + .collect() + }) + .unwrap_or_default() + } + pub fn insert_checkpoint_members( + &mut self, + room: String, + members: Vec<(u64, OccupantSnapshot)>, + now: u64, + ) -> Result<()> { + let members = members + .into_iter() + .filter(|(at, _)| { + at.saturating_add(self.grace_seconds) > now + && at.saturating_add(self.grace_seconds) <= now.saturating_add(7 * 86400) + }) + .collect::>(); + let Some(saved_at) = members.iter().map(|(at, _)| *at).min() else { + return Ok(()); + }; + self.insert( + room.clone(), + members.iter().map(|(_, o)| o.clone()).collect(), + saved_at, + )?; + for (at, o) in members { + self.deadlines + .insert((room.clone(), o.jid), at.saturating_add(self.grace_seconds)); + } + Ok(()) + } pub fn room_snapshot(&mut self, room: &str, now: u64) -> Option<(u64, Vec)> { self.expire(now); self.rooms.get(room).map(|(deadline, occupants)| { - (deadline.saturating_sub(RECOVERY_SECONDS), occupants.clone()) + ( + deadline.saturating_sub(self.grace_seconds), + occupants.clone(), + ) }) } /// Read-only membership probe; deadline-sensitive callers use contains_room. @@ -322,22 +411,31 @@ impl PendingOccupants { pub fn identities(&self, now: u64) -> Vec<(String, String)> { self.rooms .iter() - .filter(|(_, (deadline, _))| *deadline > now) .flat_map(|(room, (_, occupants))| { - occupants.iter().map(|o| (room.clone(), o.jid.clone())) + occupants + .iter() + .filter(|o| { + self.deadlines + .get(&(room.clone(), o.jid.clone())) + .is_some_and(|deadline| *deadline > now) + }) + .map(|o| (room.clone(), o.jid.clone())) }) .collect() } /// A dormant nickname remains owned by its authenticated bare account until /// claim expiry; a reused resource belonging to another account cannot take it. pub fn reserved_by(&self, room: &str, nick: &str, now: u64) -> Option { - let (deadline, occupants) = self.rooms.get(room)?; - if *deadline <= now { - return None; - } + let (_, occupants) = self.rooms.get(room)?; occupants .iter() - .find(|o| o.nick == nick) + .find(|o| { + o.nick == nick + && self + .deadlines + .get(&(room.into(), o.jid.clone())) + .is_some_and(|deadline| *deadline > now) + }) .map(|o| bare(&o.jid).to_owned()) } pub fn contains_room(&mut self, room: &str, now: u64) -> bool { @@ -346,17 +444,36 @@ impl PendingOccupants { .get(room) .is_some_and(|(_, occupants)| !occupants.is_empty()) } + pub fn remove_room(&mut self, room: &str) { + self.rooms.remove(room); + self.deadlines.retain(|(name, _), _| name != room); + } + pub fn remove_jid(&mut self, jid: &str) { + self.deadlines.retain(|(_, identity), _| identity != jid); + for (_, occupants) in self.rooms.values_mut() { + occupants.retain(|o| o.jid != jid); + } + } pub fn expire(&mut self, now: u64) -> usize { - let mut removed = 0; - self.rooms.retain(|_, (deadline, occupants)| { - if *deadline <= now { - removed += occupants.len(); - false - } else { - true + let before = self.len(); + let deadlines = &self.deadlines; + self.rooms.retain(|room, (deadline, occupants)| { + occupants.retain(|o| { + deadlines + .get(&(room.clone(), o.jid.clone())) + .is_some_and(|until| *until > now) + }); + if let Some(first) = occupants + .iter() + .filter_map(|o| deadlines.get(&(room.clone(), o.jid.clone()))) + .min() + { + *deadline = *first; } + !occupants.is_empty() }); - removed + self.deadlines.retain(|_, until| *until > now); + before - self.len() } pub fn len(&self) -> usize { self.rooms.values().map(|(_, v)| v.len()).sum() diff --git a/src/protocol.rs b/src/protocol.rs index 1f4fa85..2e51ddd 100644 --- a/src/protocol.rs +++ b/src/protocol.rs @@ -2,6 +2,8 @@ use crate::wire::escape; #[derive(Default, Debug)] pub struct ModuleResult { pub replies: Vec, + /// A final response after durable session revocation; never retained for resume. + pub terminal_reply: bool, /// (destination full or bare JID, serialized stanza) pub deliveries: Vec<(String, String)>, } @@ -9,6 +11,7 @@ impl ModuleResult { pub fn reply(xml: String) -> Self { Self { replies: vec![xml], + terminal_reply: false, deliveries: vec![], } } diff --git a/src/pubsub.rs b/src/pubsub.rs index 20f610d..8728afe 100644 --- a/src/pubsub.rs +++ b/src/pubsub.rs @@ -1253,6 +1253,7 @@ pub fn on_presence( escape(&id) ); Ok(ModuleResult { + terminal_reply: false, replies: vec![], deliveries: vec![(jid.into(), query)], }) @@ -1594,6 +1595,7 @@ pub fn on_remote_presence( vec![owner.into()], ); Ok(ModuleResult { + terminal_reply: false, replies: vec![], deliveries: vec![( verified_from.into(), diff --git a/src/server.rs b/src/server.rs index e4787e1..42c7d08 100644 --- a/src/server.rs +++ b/src/server.rs @@ -368,7 +368,19 @@ impl Runtime { } let mut rooms = self.mucs.lock().unwrap(); for muc in rooms.values_mut() { - let result = muc.disconnect(jid); + let result = match muc.disconnect_durable(jid) { + Ok(result) => result, + Err(_) => { + self.logger.event( + Level::Error, + "muc", + None, + "checkpoint-failed", + &[("reason", "durable-disconnect-failed")], + ); + continue; + } + }; for (to, xml) in result.deliveries { self.hub.deliver(&to, &xml); } @@ -499,6 +511,7 @@ fn refresh_push_session(rt: &Runtime, session: &SharedSession) -> Result<()> { s.push_identifier = identifier; s.first_push_sent = false; s.timeout = Duration::from_secs(timeout); + s.checkpoint()?; Ok(()) } fn message_pushes( @@ -556,6 +569,17 @@ fn reset_push_watchdog(rt: &Runtime, user: &str, identifier: &str) { let mut s = session.lock().unwrap(); if s.owner == owner && s.push_identifier.as_deref() == Some(identifier) { s.first_important_push(timeout); + if s.checkpoint().is_err() { + s.closed = true; + s.cancel.notify_one(); + rt.logger.event( + Level::Error, + "smacks", + None, + "checkpoint-failed", + &[("reason", "push-watchdog-state")], + ); + } } } } @@ -581,6 +605,17 @@ fn remove_push_sessions(rt: &Runtime) { if s.expires.is_some() { s.expires = Some(Instant::now() + timeout); } + if s.checkpoint().is_err() { + s.closed = true; + s.cancel.notify_one(); + rt.logger.event( + Level::Error, + "smacks", + None, + "checkpoint-failed", + &[("reason", "push-removal-state")], + ); + } } } } @@ -730,9 +765,44 @@ pub async fn serve(path: &Path) -> Result<()> { for (name, host) in &c.hosts { match host.component.as_deref() { Some("muc") => { + let component_modules = c.modules(name)?; + let unsupported = component_modules + .iter() + .filter(|module| { + !implemented.contains(&module.as_str()) + && !["muc", "muc_mam", "muc_vcard", "muc_occupant_id", "adhoc"] + .contains(&module.as_str()) + }) + .cloned() + .collect::>(); + ensure!( + unsupported.is_empty(), + "MUC modules not integrated for {}: {}", + name, + unsupported.join(", ") + ); let mut muc = crate::muc::Muc::new(data.clone(), name.clone()); let mut options = c.global.clone(); options.extend(host.options.clone()); + for module in ["muc_vcard", "muc_occupant_id"] { + let disabled = c + .global + .get("modules_disabled") + .and_then(serde_json::Value::as_array) + .into_iter() + .flatten() + .chain( + host.options + .get("modules_disabled") + .and_then(serde_json::Value::as_array) + .into_iter() + .flatten(), + ) + .any(|value| value.as_str() == Some(module)); + if disabled { + options.insert(module.into(), serde_json::Value::Bool(false)); + } + } muc.set_component_options( serde_json::Value::Object(options), c.modules(name)?.contains("muc_mam"), @@ -822,6 +892,46 @@ pub async fn serve(path: &Path) -> Result<()> { } } let upload_routes = upload_routes(&c, &uploads)?; + let hub = if c.modules(&domain)?.contains("smacks") { + Hub::persistent( + data.join(crate::storage::encode_name(&domain)) + .join("rust_smacks"), + )? + } else { + Hub::default() + }; + // A persisted, unexpired SM session is still a logical room occupant while + // its transport is offline. Restore routing before accepting any clients so + // room traffic queues durably even before that occupant reauthenticates. + // Ordinary MUC recovery claims never establish a trusted session themselves. + for session in hub.all() { + let (full, owner) = { + let state = session.lock().unwrap(); + (state.jid.clone(), state.owner.clone()) + }; + let user = owner + .strip_suffix(&format!("@{domain}")) + .context("durable session belongs to another host")?; + let account = crate::storage::load(&data, &domain, Some(user), "accounts")?; + if !account.as_ref().is_some_and(|account| { + account.get("disabled") != Some(&crate::storage::LuaValue::Bool(true)) + }) { + hub.kick_owner_checked(&owner)?; + continue; + } + for muc in mucs.values_mut() { + // Membership continued across the process boundary: synthetic join + // presence and history must not be replayed as new room activity. + let _ = muc.restore_for_session(&full)?; + } + } + logger.event( + Level::Info, + "smacks", + None, + "durable-sessions-loaded", + &[("count", &hub.all().len().to_string())], + ); let runtime = Runtime { _data_guard: data_guard, domain: domain.clone(), @@ -848,7 +958,7 @@ pub async fn serve(path: &Path) -> Result<()> { } }), config: Arc::new(c.clone()), - hub: Hub::default(), + hub, mucs: Arc::new(Mutex::new(mucs)), uploads: Arc::new(uploads), started: Instant::now(), @@ -928,7 +1038,7 @@ pub async fn serve(path: &Path) -> Result<()> { (s.owner == jid).then(|| s.jid.clone()) }) .collect::>(); - rt.hub.kick_owner(jid); + rt.hub.kick_owner_checked(jid)?; for j in old { rt.disconnected(&j); } @@ -1131,6 +1241,9 @@ pub async fn serve(path: &Path) -> Result<()> { let mut maintenance = tokio::time::interval(Duration::from_secs(300)); let mut maintenance_task: Option> = None; let mut tick = tokio::time::interval(Duration::from_secs(1)); + let heartbeat_seconds = (number(&c, &domain, "smacks_hibernation_time", 300) / 4).clamp(1, 10); + let mut heartbeat = tokio::time::interval(Duration::from_secs(heartbeat_seconds)); + let mut heartbeat_task: Option> = None; let mut terminate = tokio::signal::unix::signal(tokio::signal::unix::SignalKind::terminate())?; let mut hangup = tokio::signal::unix::signal(tokio::signal::unix::SignalKind::hangup())?; loop { @@ -1154,6 +1267,18 @@ pub async fn serve(path: &Path) -> Result<()> { })); } }, + _ = heartbeat.tick() => { + if heartbeat_task.as_ref().is_none_or(|task| task.is_finished()) { + let rt = runtime.clone(); + heartbeat_task = Some(tokio::task::spawn_blocking(move || { + let result = rt.hub.checkpoint_live().and_then(|_| { + for muc in rt.mucs.lock().unwrap().values_mut() { muc.checkpoint_durable()?; } + Ok(()) + }); + if result.is_err() { rt.logger.event(Level::Error, "recovery", None, "heartbeat-checkpoint-failed", &[]); } + })); + } + }, _ = tick.tick() => { for jid in runtime.hub.expired() { logger.event(Level::Info, "smacks", None, "session-expired", &[("jid", &jid)]); @@ -1180,6 +1305,7 @@ pub async fn serve(path: &Path) -> Result<()> { runtime .stopping .store(true, std::sync::atomic::Ordering::Release); + runtime.hub.freeze()?; for (domain, muc) in runtime.mucs.lock().unwrap().iter_mut() { muc.checkpoint_live()?; logger.event( @@ -1224,7 +1350,9 @@ async fn csi_send( let output = if let Some(session) = session { let mut s = session.lock().unwrap(); let owner = s.owner.clone(); - s.csi.output(xml.into(), &owner, Instant::now()) + let output = s.csi.output(xml.into(), &owner, Instant::now()); + s.checkpoint()?; + output } else { vec![xml.into()] }; @@ -1237,9 +1365,14 @@ async fn csi_activity( stream: &mut S, session: Option<&SharedSession>, ) -> Result<()> { - let output = session - .map(|s| s.lock().unwrap().csi.activity(Instant::now())) - .unwrap_or_default(); + let output = if let Some(s) = session { + let mut s = s.lock().unwrap(); + let output = s.csi.activity(Instant::now()); + s.checkpoint()?; + output + } else { + Vec::new() + }; for xml in output { send(stream, &xml).await?; } @@ -1252,11 +1385,7 @@ async fn emit( ) -> Result<()> { if let Some(session) = session { let mut session = session.lock().unwrap(); - if session.sm { - ensure!(session.pending.len() < 4096, "unacknowledged stanza limit"); - session.sent = session.sent.wrapping_add(1); - session.pending.push_back(xml.into()); - } + session.track_outbound(xml)?; } csi_send(s, session, xml).await?; if session.is_some_and(|s| s.lock().unwrap().request_ack()) { @@ -2058,7 +2187,11 @@ async fn apply( result: ModuleResult, ) -> Result<()> { for xml in result.replies { - emit(stream, session, &xml).await?; + if result.terminal_reply { + send(stream, &xml).await?; + } else { + emit(stream, session, &xml).await?; + } } for (to, xml) in result.deliveries { if let Ok(doc) = roxmltree::Document::parse(&xml) @@ -2555,12 +2688,14 @@ fn dispatch_iq( (s.owner == protocol::bare(jid)).then(|| s.jid.clone()) }) .collect::>(); - rt.hub.kick_owner(protocol::bare(jid)); + rt.hub.kick_owner_checked(protocol::bare(jid))?; for j in resources { rt.disconnected(&j); } crate::account_modules::remove_account(&rt.data, &rt.domain, &user)?; - return Ok(Some(ModuleResult::reply(protocol::iq_result(iq, "")))); + let mut result = ModuleResult::reply(protocol::iq_result(iq, "")); + result.terminal_reply = true; + return Ok(Some(result)); } let password = q .children() @@ -2745,7 +2880,7 @@ fn configure_bound_session( s: &SharedSession, client_id: Option, csi_inactive: bool, -) { +) -> Result<()> { s.lock().unwrap().ack_limit = number(&rt.config, &rt.domain, "smacks_max_unacked", 100) as usize; s.lock().unwrap().client_id = client_id.clone(); @@ -2772,7 +2907,10 @@ fn configure_bound_session( .csi .configure(limit, Duration::from_secs_f64(delay), payloads); } - s.lock().unwrap().csi.set_inactive(csi_inactive); + let mut session = s.lock().unwrap(); + session.csi.set_inactive(csi_inactive); + session.checkpoint()?; + Ok(()) } fn bind2_client_uuid(id: &str) -> Option { uuid::Uuid::parse_str(id) @@ -2834,6 +2972,32 @@ async fn close_retired_transport( } Ok(false) } +async fn restore_muc_after_resume( + stream: &mut S, + session: &SharedSession, + rt: &Runtime, + ctx: &ConnectionLog, +) -> Result<()> { + let full = session.lock().unwrap().jid.clone(); + let results = { + let mut rooms = rt.mucs.lock().unwrap(); + rooms + .values_mut() + .map(|muc| muc.restore_for_session(&full)) + .collect::>>()? + }; + for result in results { + if !result.replies.is_empty() || !result.deliveries.is_empty() { + ctx.event( + Level::Info, + "muc-membership-restored", + &[("jid", &full), ("mode", "sm-resume")], + ); + } + apply(stream, Some(session), rt, result).await?; + } + Ok(()) +} async fn authenticated_transport( stream: &mut S, rt: Runtime, @@ -2906,7 +3070,7 @@ async fn authenticated_transport( "resource-bound", &[("jid", &full), ("mode", "bind2")], ); - configure_bound_session(&rt, &s, client_id.clone(), request.inactive); + configure_bound_session(&rt, &s, client_id.clone(), request.inactive)?; csi_inactive = request.inactive; let mut bound = String::new(); { @@ -2996,6 +3160,15 @@ async fn authenticated_transport( } else { open(stream, &mut f, &rt.domain, &features).await?; } + if resumed_inline { + restore_muc_after_resume( + stream, + session.as_ref().context("resumed session missing")?, + &rt, + ctx, + ) + .await?; + } if let Some(full) = &jid && !resumed_inline && (rt.enabled("vcard_legacy") || rt.enabled("bookmarks")) @@ -3047,6 +3220,7 @@ async fn authenticated_transport( send(stream, &xml).await?; } session = Some(resumed); + restore_muc_after_resume(stream, session.as_ref().unwrap(), &rt, ctx).await?; ctx.phase = "session"; ctx.event(Level::Info, "session-resumed", &[("mode", "sm")]); continue; @@ -3082,10 +3256,14 @@ async fn authenticated_transport( && matches!(kind, "active" | "inactive") { csi_inactive = kind == "inactive"; - let output = session - .as_ref() - .map(|s| s.lock().unwrap().csi.set_inactive(csi_inactive)) - .unwrap_or_default(); + let output = if let Some(s) = &session { + let mut s = s.lock().unwrap(); + let output = s.csi.set_inactive(csi_inactive); + s.checkpoint()?; + output + } else { + Vec::new() + }; for xml in output { send(stream, &xml).await?; } @@ -3096,12 +3274,8 @@ async fn authenticated_transport( "invalid stanza" ); ctx.event(Level::Debug, "stanza-received", &[("kind", kind)]); - if let Some(s) = &session { - let mut s = s.lock().unwrap(); - if s.sm { - s.handled = s.handled.wrapping_add(1); - } - } + let handled_session = session.clone(); + async { if kind == "iq" { let typ = n.attribute("type").unwrap_or(""); if matches!(typ, "result" | "error") { @@ -3111,14 +3285,14 @@ async fn authenticated_transport( crate::pubsub::on_disco_result(&rt.data, &rt.domain, full, n)? { apply(stream, session.as_ref(), &rt, result).await?; - continue; + return Ok::<(), anyhow::Error>(()); } if let Some(to) = n.attribute("to") && !blocked(&rt, &user, full, to)? { let _ = route_delivery(&rt, to, &routed(n, full, to)).await; } - continue; + return Ok::<(), anyhow::Error>(()); } let q = n.first_element_child().context("IQ payload missing")?; let ns = q.tag_name().namespace().unwrap_or(""); @@ -3164,7 +3338,7 @@ async fn authenticated_transport( ), ) .await?; - configure_bound_session(&rt, &s, client_id.clone(), csi_inactive); + configure_bound_session(&rt, &s, client_id.clone(), csi_inactive)?; refresh_push_session(&rt, &s)?; jid = Some(full); session = Some(s); @@ -3186,7 +3360,7 @@ async fn authenticated_transport( emit(stream, None, &protocol::iq_error(n, "conflict")).await?; } } - continue; + return Ok::<(), anyhow::Error>(()); } let full = jid.as_deref().context("binding required")?; if let Some(to) = n.attribute("to") { @@ -3197,12 +3371,12 @@ async fn authenticated_transport( &protocol::iq_error(n, "service-unavailable"), ) .await?; - continue; + return Ok::<(), anyhow::Error>(()); } if to.contains('/') && to != full { if rt.hub.get(to).is_some() { rt.hub.deliver(to, &routed(n, full, to)); - continue; + return Ok::<(), anyhow::Error>(()); } else if rt.owner(to).is_some() { emit( stream, @@ -3210,7 +3384,7 @@ async fn authenticated_transport( &protocol::iq_error(n, "recipient-unavailable"), ) .await?; - continue; + return Ok::<(), anyhow::Error>(()); } } } @@ -3221,7 +3395,7 @@ async fn authenticated_transport( { session.as_ref().unwrap().lock().unwrap().carbons = q.tag_name().name() == "enable"; emit(stream, session.as_ref(), &protocol::iq_result(n, "")).await?; - continue; + return Ok::<(), anyhow::Error>(()); } if ns == "jabber:iq:roster" && typ == "get" { session.as_ref().unwrap().lock().unwrap().roster_interested = true; @@ -3239,7 +3413,7 @@ async fn authenticated_transport( ) .await?; } - continue; + return Ok::<(), anyhow::Error>(()); } let result = match dispatch_iq(&rt, full, n) { Ok(Some(r)) => r, @@ -3273,7 +3447,7 @@ async fn authenticated_transport( }; if let Some(result) = muc_result { apply(stream, session.as_ref(), &rt, result).await?; - continue; + return Ok::<(), anyhow::Error>(()); } if kind == "presence" { if rt.enabled("roster") @@ -3281,7 +3455,7 @@ async fn authenticated_transport( crate::account_modules::subscription(&rt.data, &rt.domain, full, n)? { apply(stream, session.as_ref(), &rt, result).await?; - continue; + return Ok::<(), anyhow::Error>(()); } if n.attribute("to").is_none() { let avatar_xml = if rt.enabled("vcard_legacy") { @@ -3379,26 +3553,26 @@ async fn authenticated_transport( )?; } } - continue; + return Ok::<(), anyhow::Error>(()); } } let Some(to) = n.attribute("to") else { - continue; + return Ok::<(), anyhow::Error>(()); }; let local = rt.owner(to); if crate::account_modules::is_blocked(&rt.data, &rt.domain, &user, to)? { - continue; + return Ok::<(), anyhow::Error>(()); } if let Some(target_user) = &local && crate::account_modules::is_blocked(&rt.data, &rt.domain, target_user, full)? { - continue; + return Ok::<(), anyhow::Error>(()); } let mut xml = routed(n, full, to); let mut sent_xml = xml.clone(); if kind == "presence" { let _ = route_delivery(&rt, to, &xml).await; - continue; + return Ok::<(), anyhow::Error>(()); } let remote = local.is_none() && !rt.config.hosts.contains_key( @@ -3523,6 +3697,14 @@ async fn authenticated_transport( } } } + Ok::<(), anyhow::Error>(()) + }.await?; + if let Some(s) = handled_session { + let mut state = s.lock().unwrap(); + if !state.closed { + state.mark_handled()?; + } + } } Ok(()) } diff --git a/src/session_store.rs b/src/session_store.rs new file mode 100644 index 0000000..22ff58d --- /dev/null +++ b/src/session_store.rs @@ -0,0 +1,339 @@ +//! Bounded, per-session durable stream-management slots. Socket handles are never stored. +//! +//! Recovery is deliberately strict: malformed, oversized, or inconsistent committed +//! slots fail startup instead of silently losing acknowledged session state. Uncommitted +//! UUID temporary files are discarded; the last renamed JSON slot remains authoritative. +use crate::sessions::Session; +use anyhow::{Result, ensure}; +use serde::{Deserialize, Serialize}; +use std::{ + collections::BTreeMap, + fs::{self, File, OpenOptions}, + io::{Read, Write}, + path::{Path, PathBuf}, + sync::{Arc, Mutex}, + time::{Duration, Instant, SystemTime, UNIX_EPOCH}, +}; +const SLOT_LIMIT: usize = 8 * 1024 * 1024; +const TOTAL_LIMIT: usize = 256 * 1024 * 1024; +const SESSION_LIMIT: usize = 4096; +#[derive(Clone, Debug, Serialize, Deserialize)] +pub(crate) struct Record { + version: u8, + pub jid: String, + pub owner: String, + pub connection: String, + pub client_id: Option, + pub push_identifier: Option, + pub first_push_sent: bool, + pub available: bool, + pub priority: i8, + pub presence: Option, + pub carbons: bool, + pub csi: crate::csi::DurableBuffer, + pub roster_interested: bool, + pub resume_id: String, + pub handled: u32, + pub sent: u32, + pub acked: u32, + pub ack_limit: usize, + pub pending: std::collections::VecDeque, + pub deadline_ms: u64, + pub timeout_ms: u64, +} +pub(crate) fn now_ms() -> u64 { + SystemTime::now() + .duration_since(UNIX_EPOCH) + .unwrap_or_default() + .as_millis() + .min(u64::MAX as u128) as u64 +} +impl Record { + fn from_session(s: &Session) -> Result { + ensure!(!s.closed && s.sm, "session is not resumable"); + let remaining = s + .expires + .map(|v| v.saturating_duration_since(Instant::now())) + .unwrap_or(s.timeout); + Ok(Self { + version: 1, + jid: s.jid.clone(), + owner: s.owner.clone(), + connection: s.connection.clone(), + client_id: s.client_id.clone(), + push_identifier: s.push_identifier.clone(), + first_push_sent: s.first_push_sent, + available: s.available, + priority: s.priority, + presence: s.presence.clone(), + carbons: s.carbons, + csi: s.csi.durable(), + roster_interested: s.roster_interested, + resume_id: s + .resume_id + .clone() + .ok_or_else(|| anyhow::anyhow!("missing resume token"))?, + handled: s.handled, + sent: s.sent, + acked: s.acked, + ack_limit: s.ack_limit, + pending: s.pending.clone(), + deadline_ms: now_ms() + .saturating_add(remaining.as_millis().min(u64::MAX as u128) as u64), + timeout_ms: s.timeout.as_millis().min(u64::MAX as u128) as u64, + }) + } + pub fn session(self) -> Session { + Session { + jid: self.jid, + owner: self.owner, + connection: self.connection, + client_id: self.client_id, + push_identifier: self.push_identifier, + first_push_sent: self.first_push_sent, + sender: None, + available: self.available, + priority: self.priority, + presence: self.presence, + carbons: self.carbons, + csi: crate::csi::Buffer::from_durable(self.csi), + roster_interested: self.roster_interested, + sm: true, + resume_id: Some(self.resume_id), + handled: self.handled, + sent: self.sent, + acked: self.acked, + ack_limit: self.ack_limit, + ack_requested: false, + pending: self.pending, + expires: Some( + Instant::now() + Duration::from_millis(self.deadline_ms.saturating_sub(now_ms())), + ), + timeout: Duration::from_millis(self.timeout_ms), + closed: false, + close_condition: None, + cancel: Default::default(), + durable: None, + } + } +} +#[derive(Debug)] +pub(crate) struct Store { + root: PathBuf, + _lock: File, + slots: Mutex>, +} +fn store(session: &Session) -> Result>> { + session + .durable + .as_ref() + .map(|weak| { + weak.upgrade() + .ok_or_else(|| anyhow::anyhow!("durable session hub was dropped")) + }) + .transpose() +} +pub(crate) fn enable(s: &Session) -> Result<()> { + if let Some(store) = store(s)? + && s.resume_id.is_some() + { + store.write(s, None)?; + } + Ok(()) +} +pub(crate) fn checkpoint(s: &Session) -> Result<()> { + if let Some(store) = store(s)? + && s.resume_id.is_some() + { + store.write(s, Some(&s.connection))?; + } + Ok(()) +} +pub(crate) fn claim(old: &Session, new: &Session) -> Result<()> { + if let Some(store) = store(old)? + && old.resume_id.is_some() + { + store.write(new, Some(&old.connection))?; + } + Ok(()) +} +pub(crate) fn remove(s: &Session) -> Result<()> { + if let Some(store) = store(s)? + && let Some(id) = &s.resume_id + { + store.remove(id, &s.connection)?; + } + Ok(()) +} +impl Store { + pub fn open(path: &Path) -> Result<(Arc, Vec)> { + fs::create_dir_all(path)?; + #[cfg(unix)] + { + use std::os::unix::fs::PermissionsExt; + fs::set_permissions(path, fs::Permissions::from_mode(0o700))?; + } + let mut options = OpenOptions::new(); + options.read(true).write(true).create(true).truncate(false); + #[cfg(unix)] + { + use std::os::unix::fs::OpenOptionsExt; + options.mode(0o600); + } + let lock = options.open(path.join("store.lock"))?; + #[cfg(unix)] + { + use std::os::unix::fs::PermissionsExt; + lock.set_permissions(fs::Permissions::from_mode(0o600))?; + } + lock.try_lock() + .map_err(|error| anyhow::anyhow!("stream management store already in use: {error}"))?; + let store = Arc::new(Self { + root: path.into(), + _lock: lock, + slots: Default::default(), + }); + let mut recovered = vec![]; + let mut total = 0usize; + let entries = fs::read_dir(path)?.collect::>>()?; + // A crash before rename can leave an incomplete slot. Only canonical UUID + // regular files belong to our writer; preserve unknown names and symlinks. + for entry in &entries { + let name = entry.file_name(); + let name = name.to_string_lossy(); + if let Some(id) = name.strip_suffix(".tmp") { + let owned = safe_id(id).is_ok() + && uuid::Uuid::parse_str(id).is_ok_and(|uuid| uuid.to_string() == id); + if owned && entry.file_type()?.is_file() { + fs::remove_file(entry.path())?; + } + } + } + File::open(path)?.sync_all()?; + for entry in entries { + let name = entry.file_name(); + let name = name.to_string_lossy(); + if !name.ends_with(".json") { + continue; + } + ensure!( + entry.file_type()?.is_file(), + "invalid stream management slot" + ); + #[cfg(unix)] + { + use std::os::unix::fs::PermissionsExt; + fs::set_permissions(entry.path(), fs::Permissions::from_mode(0o600))?; + } + let len = entry.metadata()?.len() as usize; + ensure!(len <= SLOT_LIMIT, "stream management slot too large"); + total = total.saturating_add(len); + ensure!( + total <= TOTAL_LIMIT && recovered.len() < SESSION_LIMIT, + "stream management store limit" + ); + let mut bytes = vec![]; + File::open(entry.path())? + .take(SLOT_LIMIT as u64 + 1) + .read_to_end(&mut bytes)?; + let record: Record = serde_json::from_slice(&bytes)?; + ensure!( + record.version == 1 + && record.pending.len() <= 4096 + && record.sent.wrapping_sub(record.acked) as usize == record.pending.len() + && crate::protocol::bare(&record.jid) == record.owner + && record.jid.contains('/'), + "invalid durable session" + ); + ensure!( + name == format!("{}.json", safe_id(&record.resume_id)?), + "invalid slot token" + ); + if record.deadline_ms <= now_ms() { + fs::remove_file(entry.path())?; + continue; + } + store + .slots + .lock() + .unwrap() + .insert(record.resume_id.clone(), (record.connection.clone(), len)); + recovered.push(record); + } + File::open(path)?.sync_all()?; + Ok((store, recovered)) + } + fn write(&self, s: &Session, expected: Option<&str>) -> Result<()> { + let record = Record::from_session(s)?; + ensure!( + record.pending.len() <= 4096, + "stream management queue limit" + ); + let bytes = serde_json::to_vec(&record)?; + ensure!(bytes.len() <= SLOT_LIMIT, "stream management slot limit"); + let name = safe_id(&record.resume_id)?; + let mut slots = self.slots.lock().unwrap(); + if let Some(expected) = expected { + ensure!( + slots + .get(&record.resume_id) + .is_some_and(|v| v.0 == expected), + "retired stream transport" + ); + } else { + ensure!( + !slots.contains_key(&record.resume_id), + "duplicate stream token" + ); + } + ensure!( + slots.len() < SESSION_LIMIT || slots.contains_key(&record.resume_id), + "stream management session limit" + ); + let total: usize = slots.values().map(|v| v.1).sum(); + let previous = slots.get(&record.resume_id).map_or(0, |v| v.1); + ensure!( + total - previous + bytes.len() <= TOTAL_LIMIT, + "stream management storage limit" + ); + let tmp = self.root.join(format!("{name}.tmp")); + let mut options = OpenOptions::new(); + options.write(true).create(true).truncate(true); + #[cfg(unix)] + { + use std::os::unix::fs::OpenOptionsExt; + options.mode(0o600); + } + let mut file = options.open(&tmp)?; + #[cfg(unix)] + { + use std::os::unix::fs::PermissionsExt; + file.set_permissions(fs::Permissions::from_mode(0o600))?; + } + file.write_all(&bytes)?; + file.sync_all()?; + fs::rename(tmp, self.root.join(format!("{name}.json")))?; + File::open(&self.root)?.sync_all()?; + slots.insert(record.resume_id, (record.connection, bytes.len())); + Ok(()) + } + fn remove(&self, id: &str, connection: &str) -> Result<()> { + let mut slots = self.slots.lock().unwrap(); + if slots.get(id).is_none_or(|v| v.0 != connection) { + return Ok(()); + } + fs::remove_file(self.root.join(format!("{}.json", safe_id(id)?)))?; + File::open(&self.root)?.sync_all()?; + slots.remove(id); + Ok(()) + } +} +fn safe_id(id: &str) -> Result<&str> { + ensure!( + !id.is_empty() + && id.len() <= 64 + && id.bytes().all(|c| c.is_ascii_alphanumeric() || c == b'-'), + "invalid resume token" + ); + Ok(id) +} diff --git a/src/sessions.rs b/src/sessions.rs index cd347ed..cecaec4 100644 --- a/src/sessions.rs +++ b/src/sessions.rs @@ -35,8 +35,51 @@ pub struct Session { pub closed: bool, pub close_condition: Option, pub cancel: Arc, + pub(crate) durable: Option>, } impl Session { + /// Persist state before acknowledging client input or exposing output to a transport. + pub fn checkpoint(&self) -> Result<()> { + crate::session_store::checkpoint(self) + } + pub fn mark_handled(&mut self) -> Result<()> { + ensure!(!self.closed, "session closed"); + if !self.sm { + return Ok(()); + } + let previous = self.handled; + self.handled = self.handled.wrapping_add(1); + if let Err(error) = self.checkpoint() { + self.handled = previous; + return Err(error); + } + Ok(()) + } + pub fn track_outbound(&mut self, xml: &str) -> Result<()> { + ensure!(!self.closed, "session closed"); + if !self.sm { + return Ok(()); + } + ensure!(self.pending.len() < 4096, "stream management queue limit"); + // The byte bound applies to memory-only sessions too. + ensure!( + self.pending + .iter() + .map(String::len) + .sum::() + .saturating_add(xml.len()) + <= 8 * 1024 * 1024, + "stream management byte limit" + ); + self.sent = self.sent.wrapping_add(1); + self.pending.push_back(xml.into()); + if let Err(error) = self.checkpoint() { + self.sent = self.sent.wrapping_sub(1); + self.pending.pop_back(); + return Err(error); + } + Ok(()) + } pub fn first_important_push(&mut self, normal_timeout: Duration) { if self.sender.is_none() && self.expires.is_some() && !self.first_push_sent { self.first_push_sent = true; @@ -45,25 +88,18 @@ impl Session { } pub fn transmit(&mut self, xml: String) -> Result<()> { ensure!(!self.closed, "session closed"); - if self.sm { - ensure!(self.pending.len() < 4096, "stream management queue limit"); - } - if let Some(tx) = &self.sender { + if let Some(tx) = self.sender.clone() { let permit = tx .try_reserve() .map_err(|_| anyhow::anyhow!("recipient queue unavailable"))?; - if self.sm { - self.sent = self.sent.wrapping_add(1); - self.pending.push_back(xml.clone()); - } + self.track_outbound(&xml)?; permit.send(xml); } else { ensure!( self.sm && self.resume_id.is_some(), "recipient disconnected" ); - self.sent = self.sent.wrapping_add(1); - self.pending.push_back(xml); + self.track_outbound(&xml)?; } Ok(()) } @@ -79,9 +115,14 @@ impl Session { ensure!(!self.closed, "session closed"); let n = h.wrapping_sub(self.acked) as usize; ensure!(n <= self.pending.len(), "invalid stream acknowledgement"); + let previous = self.clone(); self.pending.drain(..n); self.acked = h; self.ack_requested = false; + if let Err(error) = self.checkpoint() { + *self = previous; + return Err(error); + } Ok(()) } pub fn enable(&mut self, resume: bool) -> Result { @@ -91,6 +132,11 @@ impl Session { if resume { self.resume_id = Some(uuid::Uuid::new_v4().to_string()); } + if let Err(error) = crate::session_store::enable(self) { + self.sm = false; + self.resume_id = None; + return Err(error); + } Ok(match &self.resume_id { Some(id) => format!( "", @@ -122,8 +168,62 @@ impl ConflictPolicy { #[derive(Clone, Default)] pub struct Hub { sessions: Arc>>, + store: Option>, } impl Hub { + pub fn persistent(path: impl AsRef) -> Result { + let (store, records) = crate::session_store::Store::open(path.as_ref())?; + let mut sessions = BTreeMap::new(); + for record in records { + let mut session = record.session(); + session.durable = Some(Arc::downgrade(&store)); + ensure!( + !sessions.contains_key(&session.jid), + "duplicate durable resource" + ); + sessions.insert(session.jid.clone(), Arc::new(Mutex::new(session))); + } + Ok(Self { + sessions: Arc::new(Mutex::new(sessions)), + store: Some(store), + }) + } + /// Refresh only connected deadlines; disconnected deadlines never slide. + pub fn checkpoint_live(&self) -> Result<()> { + for session in self.all() { + let state = session.lock().unwrap(); + if state.sender.is_some() && !state.closed { + state.checkpoint()?; + } + } + Ok(()) + } + + /// Retire in-flight transport handles and commit offline state before shutdown. + pub fn freeze(&self) -> Result<()> { + let mut map = self.sessions.lock().unwrap(); + for shared in map.values_mut() { + let previous = shared.clone(); + let mut old = previous.lock().unwrap(); + if old.closed || !old.sm || old.resume_id.is_none() { + continue; + } + let mut state = old.clone(); + state.sender = None; + if state.expires.is_none() { + state.expires = Some(Instant::now() + state.timeout); + } + state.connection = format!("shutdown-{}", uuid::Uuid::new_v4()); + state.cancel = Default::default(); + crate::session_store::claim(&old, &state)?; + old.closed = true; + old.sender = None; + old.resume_id = None; + old.expires = None; + *shared = Arc::new(Mutex::new(state)); + } + Ok(()) + } pub fn bind( &self, jid: &str, @@ -150,9 +250,10 @@ impl Hub { match policy { ConflictPolicy::KickNew => anyhow::bail!("resource conflict"), ConflictPolicy::KickOld => { - let old = map.remove(&jid).unwrap(); + let old = map.get(&jid).unwrap().clone(); { let mut state = old.lock().unwrap(); + crate::session_store::remove(&state)?; state.closed = true; state.close_condition = Some("conflict".into()); state.sender = None; @@ -160,6 +261,7 @@ impl Hub { state.expires = None; state.cancel.notify_one(); } + map.remove(&jid); replaced = Some(old); } ConflictPolicy::Increment => { @@ -208,22 +310,34 @@ impl Hub { closed: false, close_condition: None, cancel: Default::default(), + durable: self.store.as_ref().map(Arc::downgrade), })); map.insert(jid, s.clone()); Ok((s, replaced)) } + pub fn kick_owner_checked(&self, owner: &str) -> Result<()> { + let mut map = self.sessions.lock().unwrap(); + let victims: Vec<_> = map + .iter() + .filter_map(|(jid, session)| { + (session.lock().unwrap().owner == owner).then_some(jid.clone()) + }) + .collect(); + for jid in victims { + let shared = map.get(&jid).unwrap().clone(); + let mut state = shared.lock().unwrap(); + // Do not let account deletion/recreation proceed if durable revocation failed. + crate::session_store::remove(&state)?; + state.resume_id = None; + state.sender = None; + state.closed = true; + state.cancel.notify_one(); + map.remove(&jid); + } + Ok(()) + } pub fn kick_owner(&self, owner: &str) { - self.sessions.lock().unwrap().retain(|_, s| { - let mut s = s.lock().unwrap(); - if s.owner == owner { - s.sender = None; - s.closed = true; - s.cancel.notify_one(); - false - } else { - true - } - }); + let _ = self.kick_owner_checked(owner); } pub fn get(&self, jid: &str) -> Option { self.sessions.lock().unwrap().get(jid).cloned() @@ -301,9 +415,21 @@ impl Hub { if !graceful && s.sm && s.resume_id.is_some() { s.csi.reset(); s.sender = None; - s.expires = Some(Instant::now() + s.timeout); + // Repeated cleanup must not renew an already offline token. + if s.expires.is_none() { + s.expires = Some(Instant::now() + s.timeout); + } + if s.checkpoint().is_err() { + return true; + } true } else { + if crate::session_store::remove(&s).is_err() { + return true; + } + s.closed = true; + s.resume_id = None; + s.sender = None; removed.push(jid.clone()); false } @@ -312,12 +438,16 @@ impl Hub { } pub fn expired(&self) -> Vec { let mut out = vec![]; - self.sessions.lock().unwrap().retain(|jid, s| { - if s.lock() - .unwrap() - .expires - .is_some_and(|t| Instant::now() >= t) - { + self.sessions.lock().unwrap().retain(|jid, session| { + let mut state = session.lock().unwrap(); + if state.expires.is_some_and(|t| Instant::now() >= t) { + if crate::session_store::remove(&state).is_err() { + return true; + } + state.closed = true; + state.resume_id = None; + state.sender = None; + state.cancel.notify_one(); out.push(jid.clone()); false } else { @@ -340,7 +470,12 @@ impl Hub { .values() .find(|session| { let state = session.lock().unwrap(); - !state.closed && state.owner == owner && state.resume_id.as_deref() == Some(id) + !state.closed + && state + .expires + .is_none_or(|deadline| deadline > Instant::now()) + && state.owner == owner + && state.resume_id.as_deref() == Some(id) }) .cloned(); if let Some(previous) = candidate { @@ -351,13 +486,16 @@ impl Hub { // Keep a retired transport's in-flight operations isolated from the // resumed queue, acknowledgements and CSI state. let mut state = old.clone(); - state.acknowledge(h)?; + state.pending.drain(..count); + state.acked = h; + state.ack_requested = false; state.cancel = Default::default(); state.csi.reset(); state.first_push_sent = false; state.sender = Some(sender); state.connection = connection.into(); state.expires = None; + crate::session_store::claim(&old, &state)?; let mut replay = vec![format!( "", state.handled @@ -383,6 +521,21 @@ impl Hub { mod tests { use super::*; #[test] + fn traffic_before_sm_enable_is_not_counted() { + let hub = Hub::default(); + let (tx, _rx) = mpsc::channel(8); + let session = hub + .bind("a@x/r", "plain", tx, Duration::from_secs(30)) + .unwrap(); + let mut session = session.lock().unwrap(); + session.mark_handled().unwrap(); + session.track_outbound("plain reply").unwrap(); + session.enable(true).unwrap(); + assert_eq!((session.handled, session.sent), (0, 0)); + session.mark_handled().unwrap(); + assert_eq!(session.handled, 1); + } + #[test] fn resume_replays_only_unacked_and_checks_owner() { let h = Hub::default(); let (tx, _rx) = mpsc::channel(8); diff --git a/tests/muc_access.rs b/tests/muc_access.rs index 1aabe9e..8586e77 100644 --- a/tests/muc_access.rs +++ b/tests/muc_access.rs @@ -10,7 +10,13 @@ fn send(muc: &mut Muc, jid: &str, packet: &str) -> ModuleResult { } fn join(muc: &mut Muc, jid: &str, nick: &str) -> ModuleResult { - send(muc, jid, &format!("")) + send( + muc, + jid, + &format!( + "" + ), + ) } fn role(muc: &mut Muc, actor: &str, nick: &str, role: &str) -> ModuleResult { @@ -27,6 +33,7 @@ fn role(muc: &mut Muc, actor: &str, nick: &str, role: &str) -> ModuleResult { fn moderators_cannot_kick_or_demote_other_moderators() { let temp = tempfile::tempdir().unwrap(); let mut muc = Muc::new(temp.path().into(), "rooms.test".into()); + muc.set_component_options(serde_json::json!({"muc_room_locking":false}), false); join(&mut muc, "owner@test/r", "Owner"); join(&mut muc, "bob@test/r", "Bob"); join(&mut muc, "carol@test/r", "Carol"); @@ -67,6 +74,7 @@ fn binary_occupant_id_salt_survives_saves_and_restarts() { let mut ids = Vec::new(); for _ in 0..2 { let mut muc = Muc::new(temp.path().into(), "rooms.test".into()); + muc.set_component_options(serde_json::json!({"muc_room_locking":false}), false); let result = join(&mut muc, "owner@test/r", "Owner"); let packet = result .replies @@ -99,6 +107,7 @@ fn nested_affiliations_do_not_fall_back_to_obsolete_flat_entries() { let raw = storage::parse(b"return {_jid='r@rooms.test'; _data={persistent=true; members_only=true}; _affiliations={['owner@test']='owner'; ['member@test']='member'}; ['member@test']='owner'}").unwrap(); storage::save(temp.path(), "rooms.test", Some("r"), "config", &raw).unwrap(); let mut muc = Muc::new(temp.path().into(), "rooms.test".into()); + muc.set_component_options(serde_json::json!({"muc_room_locking":false}), false); join(&mut muc, "owner@test/r", "Owner"); let result = send( &mut muc, @@ -109,5 +118,6 @@ fn nested_affiliations_do_not_fall_back_to_obsolete_flat_entries() { assert!(join(&mut muc, "member@test/r", "Member").replies[0].contains("registration-required")); drop(muc); let mut muc = Muc::new(temp.path().into(), "rooms.test".into()); + muc.set_component_options(serde_json::json!({"muc_room_locking":false}), false); assert!(join(&mut muc, "member@test/r", "Member").replies[0].contains("registration-required")); } diff --git a/tests/muc_crash_network.py b/tests/muc_crash_network.py new file mode 100644 index 0000000..23530c4 --- /dev/null +++ b/tests/muc_crash_network.py @@ -0,0 +1,294 @@ +#!/usr/bin/env python3 +"""SIGKILL MUC durability over real TCP/STARTTLS (no shutdown checkpoint). + +Usage: python3 tests/muc_crash_network.py target/release/rust-xmpp +All crashes happen with sockets open, immediately after the relevant wire reply. +The grace test ages only the persisted clock while the server is stopped. +""" +import json +from pathlib import Path +import re +import signal +import socket +import subprocess +import sys +import tempfile +import time +import xml.etree.ElementTree as ET +from xml.sax.saxutils import escape + +from _wire_client import Client, local +from muc_restart_network import MUC, USER, iq, occupant, presence, start, not_joined + +STANZAS = 'urn:ietf:params:xml:ns:xmpp-stanzas' + + +def join(client, room, nick, history=0, password=None): + secret = '' if password is None else f'{escape(password)}' + client.send(f"{secret}" + f"away" + 'durable presence') + return presence(client, room, nick) + + +def configure(client, room, **values): + fields = "http://jabber.org/protocol/muc#roomconfig" + fields += ''.join(f"{escape(str(value))}" + for key, value in values.items()) + return iq(client, 'config', f"{fields}", room) + + +def role(client, room, nick, value): + return iq(client, 'role', f"", room) + + +def denied(packet, condition): + assert packet.get('type') == 'error', ET.tostring(packet) + assert packet.find(f'.//{{{STANZAS}}}{condition}') is not None, ET.tostring(packet) + + +class Server: + def __init__(self, binary, root, options=None): + self.binary, self.root = binary, root + self.clients, self.process = [], None + subprocess.run(['openssl', 'req', '-x509', '-newkey', 'rsa:2048', '-nodes', '-days', '1', + '-keyout', str(root/'key.pem'), '-out', str(root/'cert.pem'), '-subj', + '/CN=localhost', '-addext', 'subjectAltName=DNS:localhost'], check=True, + stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) + with socket.socket() as probe: + probe.bind(('127.0.0.1', 0)) + self.port = probe.getsockname()[1] + self.config = root/'config.json' + self.config.write_text(json.dumps({'global': { + 'data_path': str(root/'data'), 'interfaces': ['127.0.0.1'], 'c2s_ports': [self.port], + 's2s_ports': [], 'http_ports': [], 'https_ports': [], + 'modules_enabled': ['tls', 'saslauth', 'ping', 'disco'], + }, 'hosts': { + 'localhost': {'options': {'authentication': 'internal_hashed', 'password_hash': 'SHA-256', + 'ssl': {'key': str(root/'key.pem'), 'certificate': str(root/'cert.pem')}}}, + 'rooms.localhost': {'component': 'muc', 'options': {'max_history_messages': 20, **(options or {})}}, + }})) + for user in ('alice', 'bob', 'carol'): + subprocess.run([binary, 'create-user', str(self.config), user, '--password-stdin'], + input='secret\n', text=True, check=True, capture_output=True) + self.log = (root/'server.log').open('w+') + self.restart() + + def client(self, user, resource='desktop', available=True): + client = Client(self.port, self.root/'cert.pem', user, 'secret', resource) + self.clients.append(client) + if available: + client.available() + return client + + def restart(self): + self.process = start(self.binary, self.config, self.port, self.log) + + def crash(self): + # Never close a client first: disconnect cleanup must not save the state. + self.process.kill() + assert self.process.wait(timeout=10) == -signal.SIGKILL + self.process = None + for client in self.clients: + client.close() + self.clients.clear() + + def close(self): + if self.process is not None: + self.crash() + if sys.exc_info()[0] is not None: + self.log.seek(0) + print(self.log.read(), file=sys.stderr) + self.log.close() + + +def recovery_and_history(server): + rooms = ('persistent@rooms.localhost', 'temporary@rooms.localhost') + alice, phone, bob = server.client('alice'), server.client('alice', 'phone'), server.client('bob') + for index, room in enumerate(rooms): + occupant(join(alice, room, 'Alice'), 'moderator', 'owner') + configure(alice, room, persistentroom=int(index == 0), enablearchiving=0, historylength=20) + # Exercise both shared-nickname sessions and distinct resource nicknames. + occupant(join(phone, room, 'Alice' if index == 0 else 'Phone'), 'moderator', 'owner') + occupant(join(bob, room, 'Bob'), 'participant', 'none') + role(alice, room, 'Bob', 'moderator') + for number in range(3): + body = f'{room} precrash {number}' + alice.send(f"{body}") + bob.body(body) + server.crash() + server.restart() + wrong = server.client('alice', 'tablet') + stranger = server.client('carol') + for room in rooms: + not_joined(wrong, room) + not_joined(stranger, room) + # A dormant exact-resource claim reserves its nick before activation. + denied(join(stranger, room, 'Alice'), 'conflict') + bob = server.client('bob') + for room in rooms: + occupant(presence(bob, room, 'Bob'), 'moderator', 'none') + alice = server.client('alice') + phone = server.client('alice', 'phone') + for index, room in enumerate(rooms): + packet = presence(alice, room, 'Alice') + occupant(packet, 'moderator', 'owner') + status = packet.find('{jabber:client}status') + assert status is not None and status.text == 'durable presence', ET.tostring(packet) + phone_nick = 'Alice' if index == 0 else 'Phone' + occupant(presence(phone, room, phone_nick), 'moderator', 'owner') + body = room + ' recovered route' + phone.send(f"{body}") + assert bob.body(body).get('from') == room + '/' + phone_nick + assert alice.body(body).get('from') == room + '/' + phone_nick + occupant(join(stranger, room, 'History', history=20), 'participant', 'none') + for number in range(3): + packet = stranger.body(f'{room} precrash {number}') + assert packet.find('{urn:xmpp:delay}delay') is not None, ET.tostring(packet) + stranger.body(body) + + +def mutation_barrier(server, mutation): + room = mutation + '@rooms.localhost' + alice, bob = server.client('alice'), server.client('bob') + occupant(join(alice, room, 'Alice'), 'moderator', 'owner') + configure(alice, room, persistentroom=1) + occupant(join(bob, room, 'Bob'), 'participant', 'none') + if mutation == 'leave': + bob.send(f"") + packet = bob.take(lambda e: local(e) == 'presence' and e.get('from') == room + '/Bob' + and e.get('type') == 'unavailable') + assert packet.find(f'{{{USER}}}x/{{{USER}}}item').get('role') == 'none', ET.tostring(packet) + elif mutation == 'kick': + role(alice, room, 'Bob', 'none') + elif mutation == 'demotion': + role(alice, room, 'Bob', 'moderator') + role(alice, room, 'Bob', 'visitor') + elif mutation == 'password': + configure(alice, room, roomsecret='new-private-password') + elif mutation == 'configuration': + configure(alice, room, membersonly=1) + else: + raise AssertionError(mutation) + # No ping, sleep, extra read or orderly close between acknowledgment and kill. + server.crash() + server.restart() + bob = server.client('bob') + if mutation in ('leave', 'kick', 'configuration'): + not_joined(bob, room) + elif mutation == 'demotion': + occupant(presence(bob, room, 'Bob'), 'visitor', 'none') + bob.send(f"forbidden") + packet = bob.take(lambda e: local(e) == 'message' and e.get('id') == 'visitor') + assert packet.get('type') == 'error', ET.tostring(packet) + stranger = server.client('carol') + if mutation == 'password': + denied(join(stranger, room, 'Carol'), 'not-authorized') + occupant(join(stranger, room, 'Carol', password='new-private-password'), 'participant', 'none') + elif mutation == 'configuration': + denied(join(stranger, room, 'Carol'), 'registration-required') + + +def checkpoint_clock(server, age=None): + """Age the committed journal clock without changing membership or config.""" + files = list((server.root/'data').rglob('rust_muc_checkpoint.dat')) + found = [] + pattern = re.compile(r'(\["saved_at"\]\s*=\s*)(\d+)') + for path in files: + text = path.read_text() + if pattern.search(text): + found.append(int(pattern.search(text).group(2))) + if age is not None: + path.write_text(pattern.sub(lambda m: m.group(1) + str(int(time.time()) - age), text)) + assert found, 'no committed recovery checkpoint timestamp found' + return found + + +def restart_grace(server, grace=300): + room = 'grace@rooms.localhost' + alice = server.client('alice') + occupant(join(alice, room, 'Alice'), 'moderator', 'owner') + configure(alice, room, persistentroom=1) + server.crash() + # Make the original admission old enough to distinguish it from restart time. + checkpoint_clock(server, age=grace - 10) + original = checkpoint_clock(server) + for _ in range(2): + server.restart() + probe = server.client('carol') + not_joined(probe, room) + server.crash() + assert checkpoint_clock(server) == original, 'restart extended dormant recovery deadline' + checkpoint_clock(server, age=grace + 1) + server.restart() + alice = server.client('alice') + not_joined(alice, room) + # Expiration releases nickname reservation; persistent-room ownership remains. + carol = server.client('carol') + occupant(join(carol, room, 'Alice'), 'participant', 'none') + + +def unknown_component_module(server): + server.crash() + config = json.loads(server.config.read_text()) + marker = 'unimplemented_muc_crash_test_module' + config['hosts']['rooms.localhost']['options']['modules_enabled'] = [marker] + server.config.write_text(json.dumps(config)) + result = subprocess.run([server.binary, 'serve', str(server.config), '--experimental'], + capture_output=True, text=True, timeout=10) + assert result.returncode != 0, 'unknown MUC component module was accepted' + assert marker in result.stdout + result.stderr, result.stdout + result.stderr + + +def destroy_tombstone(server): + room = 'destroyed@rooms.localhost' + replacement = 'replacement@rooms.localhost' + reason = 'Closed after migration' + alice, bob = server.client('alice'), server.client('bob') + occupant(join(alice, room, 'Alice'), 'moderator', 'owner') + configure(alice, room, persistentroom=1) + occupant(join(bob, room, 'Bob'), 'participant', 'none') + iq(alice, 'destroy', f"" + f'{reason}', room) + # The IQ result is the durability barrier; no reads or disconnect precede kill. + server.crash() + journals = list((server.root/'data').rglob('rust_muc_checkpoint.dat')) + assert len(journals) == 1, journals + checkpoint = journals[0].read_text() + for field in ('["destroyed"]=true', f'["reason"]="{reason}"', + f'["newjid"]="{replacement}"'): + assert field in checkpoint, f'acknowledged tombstone omitted {field}' + server.restart() + # Neither an old exact identity nor a new account can recreate the room. + alice, carol = server.client('alice'), server.client('carol') + for client in (alice, carol): + client.sync() + assert not any(local(packet) == 'presence' and packet.get('from', '').startswith(room + '/') + for packet in client.queue), [ET.tostring(packet) for packet in client.queue] + denied(join(client, room, 'Alice'), 'gone') + + +def run(binary, selected=()): + cases = [('recovery-history', recovery_and_history)] + cases += [(name, lambda server, name=name: mutation_barrier(server, name)) + for name in ('leave', 'kick', 'demotion', 'password', 'configuration')] + cases.append(('restart-grace', restart_grace)) + cases.append(('custom-grace', lambda server: restart_grace(server, grace=30))) + cases.append(('unknown-module', unknown_component_module)) + cases.append(('destroy-tombstone', destroy_tombstone)) + for name, test in cases: + if selected and name not in selected: + continue + with tempfile.TemporaryDirectory(prefix='xmpp-muc-crash-' + name + '-') as tmp: + options = {'muc_recovery_grace_period': 30} if name == 'custom-grace' else None + server = Server(binary, Path(tmp), options) + try: + test(server) + finally: + server.close() + print('PASS:', name, flush=True) + print('PASS: actual STARTTLS SIGKILL MUC recovery, history, acknowledged barriers and fixed grace') + + +if __name__ == '__main__': + run(str(Path(sys.argv[1]).resolve()), sys.argv[2:]) diff --git a/tests/muc_crash_state.rs b/tests/muc_crash_state.rs new file mode 100644 index 0000000..1cb735e --- /dev/null +++ b/tests/muc_crash_state.rs @@ -0,0 +1,228 @@ +//! Dropping Muc without checkpoint_live models an abrupt process loss: only +//! checkpoints committed before returning the accepted stanza can survive. +use rust_xmpp::{muc::Muc, protocol::ModuleResult, storage}; +use serde_json::json; +const HOST: &str = "rooms.example.org"; +const ROOM: &str = "crash@rooms.example.org"; +const A: &str = "alice@example.org/desktop"; +const B: &str = "bob@example.org/phone"; +fn send(m: &mut Muc, jid: &str, packet: &str) -> ModuleResult { + let doc = roxmltree::Document::parse(packet).unwrap(); + m.handle(jid, doc.root_element()).unwrap().unwrap() +} +fn muc(root: &std::path::Path) -> Muc { + let mut m = Muc::new(root.into(), HOST.into()); + m.set_component_options(json!({"muc_room_locking":false,"max_history_messages":3,"muc_room_default_history_length":3}), false); + m +} +fn join(m: &mut Muc, jid: &str, nick: &str) -> ModuleResult { + send( + m, + jid, + &format!( + "" + ), + ) +} +fn has_self(out: &ModuleResult) -> bool { + out.replies.iter().any(|p| p.contains("code='110'")) +} +#[test] +fn temporary_membership_and_full_bounded_history_survive_ungraceful_loss() { + let root = tempfile::tempdir().unwrap(); + let mut first = muc(root.path()); + assert!(has_self(&join(&mut first, A, "Alice"))); + assert!(has_self(&join(&mut first, B, "Bob"))); + for text in ["old-zero", "recent-one", "recent-two", "recent-three"] { + let out = send( + &mut first, + A, + &format!("{text}"), + ); + assert!(!out.deliveries.is_empty()); + } + drop(first); + let mut next = muc(root.path()); + next.prepare_recovery().unwrap(); + assert!( + next.restore_for_session("alice@example.org/other") + .unwrap() + .replies + .is_empty() + ); + let a = next.restore_for_session(A).unwrap(); + assert!(has_self(&a)); + // A dormant Bob is never an available routing target before authenticating. + let out = send( + &mut next, + A, + &format!("after-restart"), + ); + assert!(out.deliveries.iter().all(|(jid, _)| jid != B)); + let b = next.restore_for_session(B).unwrap(); + let history = b.replies.join(""); + assert!(has_self(&b)); + assert!( + !history.contains("old-zero") && !history.contains("recent-one"), + "{history}" + ); + assert!( + history.contains("recent-two") + && history.contains("recent-three") + && history.contains("after-restart") + ); + assert!(history.contains("urn:xmpp:delay")); + drop(next); + let mut third = muc(root.path()); + third.prepare_recovery().unwrap(); + assert!(has_self(&third.restore_for_session(A).unwrap())); + assert!(has_self(&third.restore_for_session(B).unwrap())); +} +#[test] +fn acknowledged_kick_and_room_destruction_cannot_resurrect_membership() { + let root = tempfile::tempdir().unwrap(); + let mut first = muc(root.path()); + join(&mut first, A, "Alice"); + join(&mut first, B, "Bob"); + let kicked = send( + &mut first, + A, + &format!( + "" + ), + ); + assert!(kicked.replies.iter().any(|p| p.contains("type='result'"))); + drop(first); + let mut next = muc(root.path()); + next.prepare_recovery().unwrap(); + assert!(next.restore_for_session(B).unwrap().replies.is_empty()); + assert!(has_self(&next.restore_for_session(A).unwrap())); + let destroyed = send( + &mut next, + A, + &format!( + "" + ), + ); + assert!( + destroyed + .replies + .iter() + .any(|p| p.contains("type='result'")) + ); + drop(next); + let mut third = muc(root.path()); + third.prepare_recovery().unwrap(); + assert!(third.restore_for_session(A).unwrap().replies.is_empty()); + assert!(third.restore_for_session(B).unwrap().replies.is_empty()); +} +#[test] +fn dormant_deadline_stays_fixed_when_another_occupant_recovers_and_sends() { + let root = tempfile::tempdir().unwrap(); + let mut first = muc(root.path()); + join(&mut first, A, "Alice"); + join(&mut first, B, "Bob"); + drop(first); + let initial = storage::load(root.path(), HOST, None, "rust_muc_checkpoint") + .unwrap() + .unwrap(); + let initial_at = initial + .get("rooms") + .unwrap() + .get(ROOM) + .unwrap() + .get("saved_at") + .unwrap() + .as_i64() + .unwrap(); + let mut next = muc(root.path()); + next.prepare_recovery().unwrap(); + next.restore_for_session(A).unwrap(); + send( + &mut next, + A, + &format!("traffic"), + ); + drop(next); + storage::update(root.path(), HOST, None, "rust_muc_checkpoint", |v| { + let mut rooms = v.get("rooms").unwrap().clone(); + let mut room = rooms.get(ROOM).unwrap().clone(); + assert_eq!(room.get("saved_at").unwrap().as_i64().unwrap(), initial_at); + room.set("saved_at", storage::LuaValue::Integer(initial_at - 301)); + rooms.set(ROOM, room); + v.set("rooms", rooms); + Ok(()) + }) + .unwrap(); + let mut third = muc(root.path()); + third.prepare_recovery().unwrap(); + assert!(third.restore_for_session(B).unwrap().replies.is_empty()); +} +#[test] +fn durable_disconnect_removes_last_temporary_room_without_shutdown_export() { + let root = tempfile::tempdir().unwrap(); + let mut first = muc(root.path()); + join(&mut first, A, "Alice"); + first.disconnect_durable(A).unwrap(); + drop(first); + let mut next = muc(root.path()); + next.prepare_recovery().unwrap(); + assert!(next.restore_for_session(A).unwrap().replies.is_empty()); +} +#[test] +fn journal_failure_returns_no_routing_and_rolls_back_role_mutation() { + let root = tempfile::tempdir().unwrap(); + let mut first = muc(root.path()); + join(&mut first, A, "Alice"); + join(&mut first, B, "Bob"); + let path = storage::path(root.path(), HOST, None, "rust_muc_checkpoint"); + let checkpoint = std::fs::read(&path).unwrap(); + std::fs::remove_file(&path).unwrap(); + std::fs::create_dir(&path).unwrap(); + let packet = format!( + "" + ); + let doc = roxmltree::Document::parse(&packet).unwrap(); + assert!(first.handle(A, doc.root_element()).is_err()); + std::fs::remove_dir(&path).unwrap(); + storage::atomic_write(&path, &checkpoint).unwrap(); + let out = send( + &mut first, + B, + &format!("still-participant"), + ); + assert!( + out.deliveries + .iter() + .any(|(jid, p)| jid == A && p.contains("still-participant")) + ); +} + +#[test] +fn safe_presence_checkpoint_sanitization_is_idempotent() { + use rust_xmpp::muc_recovery::sanitize_presence_payload; + let payload = "awayReady & waitingsecret"; + let safe = sanitize_presence_payload(payload); + assert_eq!( + safe, + "awayReady & waiting" + ); + assert_eq!(sanitize_presence_payload(&safe), safe); +} +#[test] +fn foreign_stanzas_do_not_initialize_or_rewrite_muc_checkpoint() { + let root = tempfile::tempdir().unwrap(); + let mut m = muc(root.path()); + let packet = "direct"; + let doc = roxmltree::Document::parse(packet).unwrap(); + assert!(m.handle(A, doc.root_element()).unwrap().is_none()); + let path = storage::path(root.path(), HOST, None, "rust_muc_checkpoint"); + assert!(!path.exists()); + join(&mut m, A, "Alice"); + let checkpoint = std::fs::read(&path).unwrap(); + // A sentinel distinguishes a write from an identical journal serialization. + let sentinel = [checkpoint.as_slice(), b"-- untouched\n"].concat(); + storage::atomic_write(&path, &sentinel).unwrap(); + assert!(m.handle(A, doc.root_element()).unwrap().is_none()); + assert_eq!(std::fs::read(&path).unwrap(), sentinel); +} diff --git a/tests/muc_domain_bans.rs b/tests/muc_domain_bans.rs index 29bd202..7790bb5 100644 --- a/tests/muc_domain_bans.rs +++ b/tests/muc_domain_bans.rs @@ -12,10 +12,11 @@ fn native_domain_bans_block_remote_users_but_allow_explicit_members() { let raw = storage::parse(b"return {_jid='room@rooms.test'; _data={persistent=true}; ['owner@test']='owner'; ['remote.test']='outcast'; ['member@remote.test']='member'}").unwrap(); storage::save(temp.path(), "rooms.test", Some("room"), "config", &raw).unwrap(); let mut muc = Muc::new(temp.path().into(), "rooms.test".into()); + muc.set_component_options(serde_json::json!({"muc_room_locking":false}), false); let denied = send( &mut muc, "outsider@remote.test/client", - "", + "", ); assert!( denied.replies[0].contains("forbidden"), @@ -25,7 +26,7 @@ fn native_domain_bans_block_remote_users_but_allow_explicit_members() { let admitted = send( &mut muc, "member@remote.test/client", - "", + "", ); assert!(!admitted.replies.iter().any(|p| p.contains("type='error'"))); assert!( @@ -40,20 +41,21 @@ fn native_domain_bans_block_remote_users_but_allow_explicit_members() { fn applying_domain_ban_removes_remote_occupants_and_blocks_rejoin() { let temp = tempfile::tempdir().unwrap(); let mut muc = Muc::new(temp.path().into(), "rooms.test".into()); + muc.set_component_options(serde_json::json!({"muc_room_locking":false}), false); send( &mut muc, "owner@test/r", - "", + "", ); send( &mut muc, "remote@remote.test/r", - "", + "", ); send( &mut muc, "other@allowed.test/r", - "", + "", ); let banned = send( &mut muc, @@ -79,7 +81,7 @@ fn applying_domain_ban_removes_remote_occupants_and_blocks_rejoin() { send( &mut muc, "remote@remote.test/new", - "" + "" ) .replies[0] .contains("forbidden") diff --git a/tests/muc_extensions.rs b/tests/muc_extensions.rs index e737701..3191573 100644 --- a/tests/muc_extensions.rs +++ b/tests/muc_extensions.rs @@ -8,11 +8,14 @@ fn send(m: &mut Muc, jid: &str, packet: &str) -> ModuleResult { fn setup(defaults: serde_json::Value) -> (tempfile::TempDir, Muc) { let root = tempfile::tempdir().unwrap(); let mut m = Muc::new(root.path().into(), "rooms.example.org".into()); + m.set_component_options(serde_json::json!({"muc_room_locking":false}), false); m.set_defaults(defaults); send( &mut m, "alice@example.org/r", - &format!(""), + &format!( + "" + ), ); (root, m) } @@ -22,7 +25,9 @@ fn restricted_private_messages_allow_self_and_optional_moderators() { send( &mut m, "bob@example.org/r", - &format!(""), + &format!( + "" + ), ); let denied = send( &mut m, @@ -58,7 +63,9 @@ fn broadcast_roles_hide_visitors_and_configuration_announces_transition() { let join = send( &mut m, "bob@example.org/r", - &format!(""), + &format!( + "" + ), ); assert!(join.deliveries.is_empty()); assert!( @@ -99,11 +106,12 @@ fn language_config_sections_discovery_and_native_affiliation_hats() { frozen.set("_affiliation_data", hats); std::fs::write(path, rust_xmpp::storage::serialize(&frozen).unwrap()).unwrap(); let mut m = Muc::new(root.path().into(), "rooms.example.org".into()); + m.set_component_options(serde_json::json!({"muc_room_locking":false}), false); let join = send( &mut m, "alice@example.org/r", &format!( - "" + "" ), ); let presence = join.replies.iter().find(|p| p.contains("110")).unwrap(); @@ -135,7 +143,9 @@ fn messages_cannot_spoof_room_identity_hats_or_occupant_identifiers() { send( &mut m, "bob@example.org/r", - &format!(""), + &format!( + "" + ), ); for (kind, to) in [ ("groupchat", ROOM.to_string()), @@ -159,11 +169,17 @@ fn messages_cannot_spoof_room_identity_hats_or_occupant_identifiers() { fn disabled_optional_vcard_and_occupant_ids_are_not_advertised_or_emitted() { let root = tempfile::tempdir().unwrap(); let mut m = Muc::new(root.path().into(), "rooms.example.org".into()); - m.set_component_options(json!({"muc_vcard":false,"muc_occupant_id":false}), false); + m.set_component_options(serde_json::json!({"muc_room_locking":false}), false); + m.set_component_options( + json!({"muc_room_locking":false,"muc_vcard":false,"muc_occupant_id":false}), + false, + ); let join = send( &mut m, "alice@example.org/r", - &format!(""), + &format!( + "" + ), ); assert!(join.replies.iter().all(|p| !p.contains("occupant-id"))); let disco = send( @@ -186,11 +202,14 @@ fn disabled_optional_vcard_and_occupant_ids_are_not_advertised_or_emitted() { fn mam_all_rooms_presence_logging_public_queries_and_optional_totals() { let root = tempfile::tempdir().unwrap(); let mut m = Muc::new(root.path().into(), "rooms.example.org".into()); - m.set_component_options(json!({"muc_log_all_rooms":true,"muc_log_by_default":false,"muc_log_presences":true,"muc_log_include_total":false}),true); + m.set_component_options(serde_json::json!({"muc_room_locking":false}), false); + m.set_component_options(json!({"muc_room_locking":false,"muc_log_all_rooms":true,"muc_log_by_default":false,"muc_log_presences":true,"muc_log_include_total":false}),true); send( &mut m, "alice@example.org/r", - &format!(""), + &format!( + "" + ), ); send( &mut m, @@ -258,10 +277,13 @@ fn offline_reserved_affiliates_follow_anonymity_and_roominfo_counts_nicknames() ); std::fs::write(path, rust_xmpp::storage::serialize(&frozen).unwrap()).unwrap(); let mut m = Muc::new(root.path().into(), "rooms.example.org".into()); + m.set_component_options(serde_json::json!({"muc_room_locking":false}), false); let guest = send( &mut m, "bob@example.org/r", - &format!(""), + &format!( + "" + ), ); let offline = guest .replies @@ -279,7 +301,9 @@ fn offline_reserved_affiliates_follow_anonymity_and_roominfo_counts_nicknames() let owner = send( &mut m, "alice@example.org/r", - &format!(""), + &format!( + "" + ), ); assert!( owner @@ -290,7 +314,9 @@ fn offline_reserved_affiliates_follow_anonymity_and_roominfo_counts_nicknames() send( &mut m, "bob@example.org/second", - &format!(""), + &format!( + "" + ), ); let disco = send( &mut m, @@ -309,6 +335,7 @@ fn recovery_claim_is_durable_and_unrelated_disconnect_keeps_temporary_claims() { first.checkpoint_live().unwrap(); drop(first); let mut recovered = Muc::new(root.path().into(), "rooms.example.org".into()); + recovered.set_component_options(serde_json::json!({"muc_room_locking":false}), false); recovered.prepare_recovery().unwrap(); recovered.disconnect("unrelated@example.org/r"); let restored = recovered @@ -321,12 +348,17 @@ fn recovery_claim_is_durable_and_unrelated_disconnect_keeps_temporary_claims() { .any(|p| p.contains("110") && p.contains("role='moderator'")) ); drop(recovered); - // No new checkpoint: an already consumed claim cannot resurrect stale role. + // Authenticated restoration committed a new live membership checkpoint. let mut again = Muc::new(root.path().into(), "rooms.example.org".into()); + again.set_component_options(serde_json::json!({"muc_room_locking":false}), false); again.prepare_recovery().unwrap(); - let absent = again.restore_for_session("alice@example.org/r").unwrap(); - assert!(absent.replies.is_empty()); - assert!(absent.deliveries.is_empty()); + let restored_again = again.restore_for_session("alice@example.org/r").unwrap(); + assert!( + restored_again + .replies + .iter() + .any(|p| p.contains("/Alice") && p.contains("110") && p.contains("role='moderator'")) + ); } #[test] fn large_optional_history_does_not_prevent_checkpointing_membership() { @@ -347,35 +379,44 @@ fn explicit_new_nickname_consumes_old_proof_and_pending_nicks_are_reserved() { send( &mut first, "bob@example.org/r", - &format!(""), + &format!( + "" + ), ); first.checkpoint_live().unwrap(); drop(first); let mut recovered = Muc::new(root.path().into(), "rooms.example.org".into()); + recovered.set_component_options(serde_json::json!({"muc_room_locking":false}), false); recovered.prepare_recovery().unwrap(); let stolen = send( &mut recovered, "mallory@example.org/r", - &format!(""), + &format!( + "" + ), ); assert!(stolen.replies.iter().any(|p| p.contains("conflict"))); let explicit = send( &mut recovered, "alice@example.org/r", - &format!(""), + &format!( + "" + ), ); assert!(explicit.replies.iter().any(|p| p.contains("110"))); // Temporary room config and Bob's claim survive Alice's ordinary join. drop(recovered); let mut again = Muc::new(root.path().into(), "rooms.example.org".into()); + again.set_component_options(serde_json::json!({"muc_room_locking":false}), false); again.prepare_recovery().unwrap(); + let alice = again.restore_for_session("alice@example.org/r").unwrap(); assert!( - again - .restore_for_session("alice@example.org/r") - .unwrap() + alice .replies - .is_empty() + .iter() + .any(|p| p.contains("/Changed") && p.contains("110")) ); + assert!(alice.replies.iter().all(|p| !p.contains("/Alice"))); assert!( again .restore_for_session("bob@example.org/r") diff --git a/tests/muc_flow.rs b/tests/muc_flow.rs index 168df98..148d7f2 100644 --- a/tests/muc_flow.rs +++ b/tests/muc_flow.rs @@ -125,8 +125,9 @@ fn archive_history_and_permissions() { fn nick_invite_destroy_and_local_creation() { let t = tempfile::tempdir().unwrap(); let mut m = Muc::new(t.path().into(), "rooms.test".into()); + m.set_component_options(serde_json::json!({"restrict_room_creation":"local"}), false); m.set_local_domain("test".into()); - assert!(join(&mut m, "external@else/a", "External").replies[0].contains("forbidden")); + assert!(join(&mut m, "external@else/a", "External").replies[0].contains("not-allowed")); join(&mut m, "alice@test/a", "Alice"); unlock(&mut m); let renamed = join(&mut m, "alice@test/a", "NewName"); diff --git a/tests/muc_optional_admin.rs b/tests/muc_optional_admin.rs new file mode 100644 index 0000000..5f0cf28 --- /dev/null +++ b/tests/muc_optional_admin.rs @@ -0,0 +1,201 @@ +use rust_xmpp::{muc::Muc, protocol::ModuleResult}; +use serde_json::json; +const ROOM: &str = "room@rooms.example.org"; +const COMMANDS: &str = "http://jabber.org/protocol/commands"; +const AFF: &str = "http://prosody.im/protocol/muc#set-affiliation"; +const DESTROY: &str = "http://prosody.im/protocol/muc#destroy"; +fn send(m: &mut Muc, jid: &str, xml: &str) -> ModuleResult { + let doc = roxmltree::Document::parse(xml).unwrap(); + m.handle(jid, doc.root_element()).unwrap().unwrap() +} +fn room(m: &mut Muc) { + send( + m, + "owner@example.org/r", + &format!( + "" + ), + ); + send( + m, + "owner@example.org/r", + &format!( + "1" + ), + ); +} +fn register(m: &mut Muc, jid: &str, nick: &str) -> ModuleResult { + send( + m, + jid, + &format!( + "http://jabber.org/protocol/muc#register{nick}" + ), + ) +} +#[test] +fn optional_registration_grants_membership_and_enforces_reserved_nickname() { + let root = tempfile::tempdir().unwrap(); + let mut m = Muc::new(root.path().into(), "rooms.example.org".into()); + m.set_component_options(json!({"allow_unaffiliated_register":true,"enforce_registered_nickname":true,"muc_registration_include_form":true}),false); + room(&mut m); + assert!(register(&mut m, "bob@example.org/r", "Reserved").replies[0].contains("type='result'")); + let result = send( + &mut m, + "bob@example.org/r", + &format!(""), + ); + assert!(result.replies[0].contains("type='result'>Reserved")); + let joined = send( + &mut m, + "bob@example.org/r", + &format!( + "" + ), + ); + assert!( + joined + .replies + .iter() + .any(|p| p.contains("/Reserved'") && p.contains("affiliation='member'")) + ); + let rename = send( + &mut m, + "bob@example.org/r", + &format!(""), + ); + assert!(rename.replies[0].contains("not-acceptable")); + let reregister = register(&mut m, "bob@example.org/r", "New"); + assert!( + reregister + .deliveries + .iter() + .any(|(_, p)| p.contains("code='307'")) + ); + let message = send( + &mut m, + "bob@example.org/r", + &format!("departed"), + ); + assert!(message.replies[0].contains("not-acceptable")); +} +#[test] +fn default_registration_denies_unaffiliated_users() { + let root = tempfile::tempdir().unwrap(); + let mut m = Muc::new(root.path().into(), "rooms.example.org".into()); + room(&mut m); + assert!( + register(&mut m, "bob@example.org/r", "Bob").replies[0].contains("registration-required") + ); +} +fn start(m: &mut Muc, jid: &str, node: &str) -> String { + let result = send( + m, + jid, + &format!( + "" + ), + ); + let doc = roxmltree::Document::parse(&result.replies[0]).unwrap(); + doc.descendants() + .find(|n| n.has_tag_name((COMMANDS, "command"))) + .unwrap() + .attribute("sessionid") + .unwrap() + .to_owned() +} +fn submit(m: &mut Muc, jid: &str, node: &str, id: &str, fields: &str) -> ModuleResult { + send( + m, + jid, + &format!( + "{node}{fields}" + ), + ) +} +#[test] +fn administration_commands_recheck_authority_bind_sessions_and_update_live_rooms() { + let root = tempfile::tempdir().unwrap(); + let mut m = Muc::new(root.path().into(), "rooms.example.org".into()); + m.set_component_options(json!({"admins":["admin@example.org","other@example.org"],"muc_tombstone_expiry":"0 seconds"}),false); + room(&mut m); + let outsider = send( + &mut m, + "stranger@example.org/r", + &format!( + "" + ), + ); + assert!(!outsider.replies[0].contains("node='http://prosody.im/protocol/muc#destroy'")); + let denied = send( + &mut m, + "stranger@example.org/r", + &format!( + "" + ), + ); + assert!(denied.replies[0].contains("forbidden")); + let id = start(&mut m, "admin@example.org/r", AFF); + let fields = format!( + "{ROOM}owner@example.orgoutcast" + ); + assert!( + submit(&mut m, "other@example.org/r", AFF, &id, &fields).replies[0].contains("bad-request") + ); + let updated = submit(&mut m, "admin@example.org/r", AFF, &id, &fields); + assert!(updated.replies[0].contains("status='completed'")); + assert!( + updated + .deliveries + .iter() + .any(|(_, p)| p.contains("code='301'")) + ); + assert!( + submit(&mut m, "admin@example.org/r", AFF, &id, &fields).replies[0].contains("bad-request") + ); + // A privileged component command may remove the final owner, just like + // native room:set_affiliation(true,...); destroying such a room still works. + let id = start(&mut m, "admin@example.org/r", DESTROY); + assert!( + submit( + &mut m, + "admin@example.org/r", + DESTROY, + &id, + &format!("{ROOM}") + ) + .replies[0] + .contains("status='completed'") + ); + let rejoin = send( + &mut m, + "new@example.org/r", + &format!( + "" + ), + ); + assert!(rejoin.replies.iter().any(|p| p.contains("code='201'"))); +} +#[test] +fn configured_tombstone_expiry_allows_immediate_recreation() { + let root = tempfile::tempdir().unwrap(); + let mut m = Muc::new(root.path().into(), "rooms.example.org".into()); + m.set_component_options(json!({"muc_tombstone_expiry":"0 seconds"}), false); + room(&mut m); + send( + &mut m, + "owner@example.org/r", + &format!( + "" + ), + ); + let joined = send( + &mut m, + "new@example.org/r", + &format!( + "" + ), + ); + assert!(joined.replies.iter().any(|p| p.contains("code='201'"))); +} diff --git a/tests/muc_protocol.rs b/tests/muc_protocol.rs new file mode 100644 index 0000000..79f51e9 --- /dev/null +++ b/tests/muc_protocol.rs @@ -0,0 +1,177 @@ +use rust_xmpp::{muc::Muc, protocol::ModuleResult}; +use serde_json::json; +fn send(m: &mut Muc, who: &str, packet: &str) -> ModuleResult { + let doc = roxmltree::Document::parse(packet).unwrap(); + m.handle(who, doc.root_element()).unwrap().unwrap() +} +fn join(m: &mut Muc, who: &str, nick: &str) -> ModuleResult { + send( + m, + who, + &format!( + "" + ), + ) +} +#[test] +fn probes_and_invalid_presence_cannot_join_or_rename() { + let dir = tempfile::tempdir().unwrap(); + let mut m = Muc::new(dir.path().into(), "rooms.test".into()); + m.set_component_options(serde_json::json!({"muc_room_locking":false}), false); + assert!( + send( + &mut m, + "alice@test/r", + "" + ) + .replies[0] + .contains("item-not-found") + ); + join(&mut m, "alice@test/r", "Alice"); + assert!( + send( + &mut m, + "bob@test/r", + "" + ) + .replies[0] + .contains("not-acceptable") + ); + assert!( + send( + &mut m, + "bob@test/r", + "" + ) + .replies[0] + .contains("bad-request") + ); + let probe = send( + &mut m, + "alice@test/r", + "", + ); + assert!(probe.replies[0].contains("role='moderator'")); + assert!(probe.deliveries.is_empty()); + assert!( + send( + &mut m, + "alice@test/r", + "" + ) + .replies + .is_empty() + ); +} +#[test] +fn error_messages_kick_only_on_delivery_failure_and_presence_errors_kick() { + let dir = tempfile::tempdir().unwrap(); + let mut m = Muc::new(dir.path().into(), "rooms.test".into()); + m.set_component_options(serde_json::json!({"muc_room_locking":false}), false); + join(&mut m, "alice@test/r", "Alice"); + join(&mut m, "bob@test/r", "Bob"); + let denied = send( + &mut m, + "bob@test/r", + "", + ); + assert!(denied.replies.is_empty() && denied.deliveries.is_empty()); + let forwarded = send( + &mut m, + "bob@test/r", + "", + ); + assert_eq!(forwarded.deliveries.len(), 1); + assert!(forwarded.deliveries[0].1.contains("type='error'")); + let kicked = send( + &mut m, + "bob@test/r", + "", + ); + assert!( + kicked + .deliveries + .iter() + .any(|(_, p)| p.contains("code='333'") && p.contains("Kicked: service unavailable")) + ); + join(&mut m, "bob@test/r", "Bob"); + let kicked = send( + &mut m, + "bob@test/r", + "", + ); + assert!( + kicked + .deliveries + .iter() + .any(|(_, p)| p.contains("code='333'")) + ); +} +#[test] +fn room_creation_policies_apply_only_to_new_rooms() { + let dir = tempfile::tempdir().unwrap(); + let mut m = Muc::new(dir.path().into(), "rooms.test".into()); + m.set_component_options(serde_json::json!({"muc_room_locking":false}), false); + m.set_local_domain("test".into()); + m.set_component_options(json!({"muc_room_locking":false,"restrict_room_creation":true,"admins":["admin@test"],"muc_max_rooms":1}), false); + assert!(join(&mut m, "alice@test/r", "Alice").replies[0].contains("not-allowed")); + assert!( + join(&mut m, "admin@test/r", "Admin") + .replies + .iter() + .any(|p| p.contains("code='201'")) + ); + assert!( + join(&mut m, "alice@remote/r", "Alice") + .replies + .iter() + .any(|p| p.contains("code='110'")) + ); + let full = send( + &mut m, + "admin@test/r", + "", + ); + assert!(full.replies[0].contains("resource-constraint")); + m.set_component_options(json!({"restrict_room_creation":"local"}), false); + assert!(send(&mut m, "alice@remote/r", "").replies[0].contains("not-allowed")); + m.set_component_options(json!({}), false); + assert!(send(&mut m, "alice@remote/r", "").replies.iter().any(|p|p.contains("code='201'"))); +} +#[test] +fn ordinary_presence_extensions_survive_but_client_identity_is_filtered() { + let dir = tempfile::tempdir().unwrap(); + let mut m = Muc::new(dir.path().into(), "rooms.test".into()); + m.set_component_options(serde_json::json!({"muc_room_locking":false}), false); + join(&mut m, "alice@test/r", "Alice"); + let result = send( + &mut m, + "bob@test/r", + "", + ); + let p = &result.deliveries[0].1; + assert!(p.contains("http://jabber.org/protocol/caps") && p.contains("urn:xmpp:idle:1")); + assert!(!p.contains("forged")); +} + +#[test] +fn subject_with_body_remains_an_ordinary_groupchat_message() { + let dir = tempfile::tempdir().unwrap(); + let mut m = Muc::new(dir.path().into(), "rooms.test".into()); + m.set_component_options(json!({"muc_room_locking":false}), false); + join(&mut m, "alice@test/r", "Alice"); + join(&mut m, "bob@test/r", "Bob"); + let ordinary = send( + &mut m, + "bob@test/r", + "HeadingMessage text", + ); + assert!(ordinary.replies.is_empty()); + assert_eq!(ordinary.deliveries.len(), 2); + let subject = send( + &mut m, + "bob@test/r", + "Room title", + ); + assert!(subject.replies[0].contains("forbidden")); +} diff --git a/tests/muc_restart_state.rs b/tests/muc_restart_state.rs index 5c531d4..dc4e7bd 100644 --- a/tests/muc_restart_state.rs +++ b/tests/muc_restart_state.rs @@ -9,6 +9,7 @@ fn send(m: &mut Muc, jid: &str, packet: &str) -> ModuleResult { } fn initial(root: &std::path::Path) -> Muc { let mut m = Muc::new(root.into(), HOST.into()); + m.set_component_options(json!({"muc_room_locking":false}), false); m.set_defaults(json!({"persistent": true, "password":"private-pass"})); send( &mut m, @@ -57,12 +58,18 @@ fn repeated_restart_keeps_dormant_claim_and_deadline_without_ghost_routing() { ); assert!(restored.replies.iter().all(|p| !p.contains("private-pass"))); assert!(m.restore_for_session(ALICE).unwrap().replies.is_empty()); - // Simulate a later crash: no clean checkpoint. A consumed on-disk proof - // must not revive a prior moderator grant on another process start. + // The authenticated restoration itself committed fresh live membership, + // so a second crash recovers that current room state again. drop(m); let mut m = Muc::new(root.path().into(), HOST.into()); m.prepare_recovery().unwrap(); - assert!(m.restore_for_session(ALICE).unwrap().replies.is_empty()); + assert!( + m.restore_for_session(ALICE) + .unwrap() + .replies + .iter() + .any(|p| p.contains("110")) + ); } #[test] fn changed_configuration_invalidates_auto_recovery_without_disclosing_password() { @@ -81,7 +88,13 @@ fn changed_configuration_invalidates_auto_recovery_without_disclosing_password() m.prepare_recovery().unwrap(); let result = m.restore_for_session(ALICE).unwrap(); assert!(result.replies.is_empty() && result.deliveries.is_empty()); - let denied = send(&mut m, ALICE, &format!("")); + let denied = send( + &mut m, + ALICE, + &format!( + "" + ), + ); assert!(denied.replies.iter().any(|p| p.contains("not-authorized"))); assert!( denied @@ -95,7 +108,13 @@ fn changed_configuration_invalidates_auto_recovery_without_disclosing_password() fn unrelated_disconnect_does_not_delete_dormant_temporary_room() { let root = tempfile::tempdir().unwrap(); let mut m = Muc::new(root.path().into(), HOST.into()); - send(&mut m, ALICE, &format!("")); + send( + &mut m, + ALICE, + &format!( + "" + ), + ); m.checkpoint_live().unwrap(); drop(m); let mut m = Muc::new(root.path().into(), HOST.into()); diff --git a/tests/muc_sm_load_network.py b/tests/muc_sm_load_network.py new file mode 100644 index 0000000..54e8c5f --- /dev/null +++ b/tests/muc_sm_load_network.py @@ -0,0 +1,412 @@ +#!/usr/bin/env python3 +"""Exercise durable MUC/SM hot paths over real STARTTLS with bounded fanout. + +python3 tests/muc_sm_load_network.py --binary target/release/rust-xmpp --clients 500 +Defaults to 100 resources; --clients 500 uses 100 accounts and 10 rooms of 50. +JSON contains observed latency/RSS/CPU, slot counts and exact fanout assertions. +All sockets are drained continuously. SIGKILL precedes socket cleanup; ten +representatives resume with unacknowledged room output and send without rejoin. +This is a loopback smoke measurement, not a production capacity guarantee. +""" +import argparse +import asyncio +import base64 +import collections +import hashlib +import json +import pathlib +import signal +import shutil +import socket +import ssl +import subprocess +import sys +import tempfile +import time +import xml.etree.ElementTree as ET + +sys.path.insert(0, str(pathlib.Path(__file__).resolve().parents[1] / 'scripts')) +from load_smoke import Client as BaseClient, STREAM, distribution, process_metrics, proc_pid + +SM = 'urn:xmpp:sm:3' +MUC = 'http://jabber.org/protocol/muc' +CLIENT = 'jabber:client' + + +def start(binary, config, port, log): + # Recovery of hundreds of durable resources legitimately exceeds the + # five-second deadline used by the tiny functional restart fixture. + server = subprocess.Popen([binary, 'serve', str(config), '--experimental'], stdout=log, stderr=log) + deadline = time.monotonic() + 60 + while time.monotonic() < deadline: + assert server.poll() is None, 'server stopped during startup' + try: + with socket.create_connection(('127.0.0.1', port), timeout=.1): + return server + except OSError: + time.sleep(.05) + server.kill() + server.wait() + raise AssertionError('server did not start within 60 seconds') + + +class Client(BaseClient): + def __init__(self, number, user, reader, writer): + super().__init__(number, user, reader, writer) + self.received = self.inputs = self.acked = 0 + self.token = None + self.presences = {} + self.iqs = {} + self.controls = collections.defaultdict(list) + self.bodies = collections.Counter() + self.errors = [] + self.changed = asyncio.Event() + self.auto_ack = True + self.task = None + self.failure = None + + @classmethod + async def connect(cls, number, port, context, accounts, bind=True): + reader, writer = await asyncio.wait_for(asyncio.open_connection('127.0.0.1', port), 60) + user = f'load-{number % accounts}' + client = cls(number, user, reader, writer) + try: + await client.send(STREAM) + assert b'starttls' in await client.until(b'') + await client.send("") + assert b'proceed' in await client.until(b'/>') + await writer.start_tls(context, server_hostname='localhost', ssl_handshake_timeout=60) + await client.send(STREAM) + await client.until(b'') + auth = base64.b64encode(f'\0{user}\0load-test-password'.encode()).decode() + await client.send(f"{auth}") + assert b'success' in await client.until(b'/>') + await client.send(STREAM) + await client.until(b'') + if bind: + await client.send(f"load-{number}") + assert client.jid.encode() in await client.until(b'') + client.task = asyncio.create_task(client.drain()) + return client + except BaseException: + writer.close() + raise + + async def stanza(self, text): + self.inputs = (self.inputs + 1) % (1 << 32) + await self.send(text) + + async def drain(self): + parser = ET.XMLPullParser(events=('start', 'end')) + parser.feed("") + root = next(parser.read_events())[1] + depth = 0 + try: + while chunk := await self.reader.read(65536): + parser.feed(chunk) + if hasattr(parser, 'flush'): + parser.flush() + for event, node in parser.read_events(): + depth += 1 if event == 'start' else -1 + if event != 'end' or depth != 0: + continue + local = node.tag.split('}')[-1] + if node.tag in (f'{{{CLIENT}}}iq', f'{{{CLIENT}}}presence', f'{{{CLIENT}}}message'): + self.received = (self.received + 1) % (1 << 32) + if node.get('type') == 'error': + self.errors.append(ET.tostring(node).decode()) + if local == 'presence': + self.presences[node.get('from')] = node + elif local == 'iq': + self.iqs[node.get('id')] = node + elif local == 'message': + for body in node.findall(f'{{{CLIENT}}}body'): + self.bodies[body.text] += 1 + elif node.tag == f'{{{SM}}}r': + if self.auto_ack: + await self.ack() + else: + self.controls[node.tag].append(node) + root.remove(node) + self.changed.set() + raise EOFError('server closed stream') + except asyncio.CancelledError: + raise + except Exception as error: + self.failure = error + self.changed.set() + + async def wait(self, predicate, description): + async def observe(): + while True: + self.changed.clear() + result = predicate() + if isinstance(result, ET.Element) or result: + return result + if self.failure: + raise RuntimeError(f'client {self.number}: {description}: {self.failure}') + await self.changed.wait() + return await asyncio.wait_for(observe(), 120) + + async def control(self, name): + key = f'{{{SM}}}{name}' + await self.wait(lambda: self.controls[key], name) + return self.controls[key].pop(0) + + async def enable(self): + await self.send(f"") + node = await self.control('enabled') + assert node.get('resume') == 'true' + self.token = node.get('id') + assert self.token + + async def fence(self, identifier): + await self.stanza(f"") + result = await self.wait(lambda: self.iqs.pop(identifier, None), identifier) + assert result.get('type') == 'result', ET.tostring(result) + + async def ack(self): + self.acked = self.received + await self.send(f"") + + async def handled(self): + await self.send(f"") + value = int((await self.control('a')).get('h')) + assert value == self.inputs, (self.number, value, self.inputs) + return value + + async def close_raw(self): + if self.task: + self.task.cancel() + await asyncio.gather(self.task, return_exceptions=True) + self.writer.close() + try: + await asyncio.wait_for(self.writer.wait_closed(), 3) + except (OSError, ssl.SSLError, TimeoutError): + pass + + +def slots(root): + paths = list((root / 'data').rglob('rust_smacks/*.json')) + return {'count': len(paths), 'bytes': sum(p.stat().st_size for p in paths)} + + +async def exercise(args, root, config, port, log): + clients = [] + server = await asyncio.to_thread(start, args.binary, config, port, log) + pid = proc_pid(server.pid) + samples = [] + running = True + async def sample(): + while running: + samples.append(process_metrics(pid)) + await asyncio.sleep(.2) + sampler = asyncio.create_task(sample()) + gate = asyncio.Semaphore(args.concurrency) + context = ssl.create_default_context(cafile=str(root / 'cert.pem')) + report = {'clients': args.clients, 'accounts': args.accounts, 'rooms': args.rooms, + 'message_rounds': args.rounds, 'concurrency': args.concurrency, + 'binary': args.binary, 'binary_sha256': hashlib.sha256(pathlib.Path(args.binary).read_bytes()).hexdigest(), + 'before': process_metrics(pid)} + begun = time.perf_counter() + def save(phase): + report['phase'] = phase + report['status'] = 'running' + report['elapsed_seconds'] = round(time.perf_counter() - begun, 3) + pathlib.Path(args.output).write_text(json.dumps(report,indent=2)+'\n') + print(f'MUC+SM load: {phase} ({report["elapsed_seconds"]}s)', file=sys.stderr, flush=True) + try: + async def setup(number): + async with gate: + started = time.perf_counter() + client = await Client.connect(number, port, context, args.accounts) + clients.append(client) + await client.enable() + await client.stanza('') + await client.fence(f'connected-{number}') + await client.ack() + return time.perf_counter() - started + connect_times = await asyncio.gather(*(setup(i) for i in range(args.clients))) + clients.sort(key=lambda c: c.number) + report['connect_seconds'] = round(time.perf_counter() - begun, 3) + report['connect_latency'] = distribution(connect_times) + save('connected') + groups = [[c for c in clients if c.number % args.rooms == room] for room in range(args.rooms)] + started = time.perf_counter() + async def join(client): + async with gate: + room = f'load-{client.number % args.rooms}@rooms.localhost' + await client.stanza(f"") + result = await client.wait(lambda: client.presences.get(f'{room}/Nick-{client.number}'), 'self MUC join') + assert result.get('type') != 'error', ET.tostring(result) + await asyncio.gather(*(join(c) for c in clients)) + # Each room has exactly N nicknames, including self, on every resource. + for group in groups: + for client in group: + expected = {f'load-{client.number % args.rooms}@rooms.localhost/Nick-{other.number}' for other in group} + await client.wait(lambda c=client,e=expected: e.issubset(c.presences), 'complete join fanout') + await asyncio.gather(*(c.fence(f'joined-{c.number}') for c in clients)) + await asyncio.gather(*(c.ack() for c in clients)) + await asyncio.gather(*(c.handled() for c in clients)) + report['join_seconds'] = round(time.perf_counter() - started, 3) + report['joined'] = process_metrics(pid) + report['join_presence_deliveries'] = sum(len(g) ** 2 for g in groups) + report['slots_joined'] = slots(root) + assert report['slots_joined']['count'] == args.clients, report['slots_joined'] + save('joined') + delivered = 0 + started = time.perf_counter() + for turn in range(args.rounds): + for index, group in enumerate(groups): + sender = group[turn % len(group)] + text = f'durable-load-{turn}-{index}' + await sender.stanza(f"{text}") + async def receive(client): + text = f'durable-load-{turn}-{client.number % args.rooms}' + await client.wait(lambda: client.bodies[text] >= 1, text) + assert client.bodies[text] == 1, (client.number, text, client.bodies[text]) + await asyncio.gather(*(receive(c) for c in clients)) + delivered += len(clients) + await asyncio.gather(*(c.fence(f'round-{turn}-{c.number}') for c in clients)) + await asyncio.gather(*(c.ack() for c in clients)) + report['message_seconds'] = round(time.perf_counter() - started, 3) + report['room_messages_sent'] = args.rounds * args.rooms + report['room_messages_delivered'] = delivered + assert delivered == args.clients * args.rounds + save('fanout_verified') + assert not [(c.number,c.errors) for c in clients if c.errors] + # Freeze acknowledgements, then deliberately receive one more message + # per room without acknowledging it. Its durable replay is mandatory. + representatives = [group[0] for group in groups] + for client in clients: + client.auto_ack = False + for index, sender in enumerate(representatives): + await sender.stanza(f"pending-{index}") + await asyncio.gather(*(c.wait(lambda c=c: c.bodies[f'pending-{c.number % args.rooms}'] == 1, 'pending room message') for c in clients)) + await asyncio.gather(*(c.fence(f'before-kill-{c.number}') for c in clients)) + await asyncio.gather(*(c.handled() for c in clients)) + expected = {c.number: {'token': c.token, 'acked': c.acked, 'handled': c.inputs} for c in representatives} + report['before_kill'] = process_metrics(pid) + report['slots_before_kill'] = slots(root) + save('before_sigkill') + server.send_signal(signal.SIGKILL) + assert await asyncio.to_thread(server.wait, 10) == -signal.SIGKILL + await asyncio.gather(*(c.close_raw() for c in clients)) + clients.clear() + started = time.perf_counter() + server = await asyncio.to_thread(start, args.binary, config, port, log) + pid = proc_pid(server.pid) + report['restart_seconds'] = round(time.perf_counter() - started, 3) + async def recover(number): + async with gate: + old = expected[number] + client = await Client.connect(number, port, context, args.accounts, bind=False) + client.auto_ack = False + client.received = old['acked'] + client.acked = old['acked'] + client.inputs = old['handled'] + client.token = old['token'] + clients.append(client) + await client.send(f"") + result = await client.control('resumed') + assert result.get('previd') == client.token + assert int(result.get('h')) == client.inputs, (number, ET.tostring(result),client.inputs) + room = number % args.rooms + await client.wait(lambda: client.bodies[f'pending-{room}'] == 1, 'unacknowledged room replay') + await client.wait(lambda: client.iqs.get(f'before-kill-{number}'), 'unacknowledged IQ replay') + # No available presence or MUC join is sent after SM resume. + text = f'after-resume-{room}' + await client.stanza(f"{text}") + await client.wait(lambda: client.bodies[text] == 1, 'recovered membership groupchat echo') + await client.fence(f'after-resume-{number}') + await client.ack() + await client.handled() + assert not client.errors, client.errors + # No message already acknowledged before SIGKILL may replay. + assert not any(count for text,count in client.bodies.items() if text and text.startswith('durable-load-')), client.bodies + return number + recovered = await asyncio.gather(*(recover(c.number) for c in representatives)) + report['resumed_resources'] = len(recovered) + report['replayed_pending_room_messages'] = len(recovered) + report['membership_groupchat_deliveries_after_resume'] = len(recovered) + report['after_resume'] = process_metrics(pid) + report['slots_after_resume'] = slots(root) + report['total_seconds'] = round(time.perf_counter() - begun, 3) + report['elapsed_seconds'] = report['total_seconds'] + report['peak_rss_kib'] = max((s.get('rss_kib',0) for s in samples), default=0) + report['status'] = 'pass' + report['phase'] = 'completed' + return report + except BaseException as error: + report['status'] = 'fail' + report['failure'] = repr(error) + report['elapsed_seconds'] = round(time.perf_counter() - begun, 3) + pathlib.Path(args.output).write_text(json.dumps(report,indent=2)+'\n') + raise + finally: + running = False + sampler.cancel() + await asyncio.gather(sampler, return_exceptions=True) + if server.poll() is None: + server.terminate() + try: + await asyncio.to_thread(server.wait, 20) + except subprocess.TimeoutExpired: + server.kill() + await asyncio.to_thread(server.wait) + await asyncio.gather(*(c.close_raw() for c in clients), return_exceptions=True) + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--binary', default='target/release/rust-xmpp') + parser.add_argument('--clients', type=int, default=100) + parser.add_argument('--accounts', type=int, default=100) + parser.add_argument('--rooms', type=int, default=10) + parser.add_argument('--rounds', type=int, default=3) + parser.add_argument('--concurrency', type=int, default=20) + parser.add_argument('--output', default='/tmp/muc-sm-load.json') + args = parser.parse_args() + args.binary = str(pathlib.Path(args.binary).resolve()) + args.accounts = min(args.accounts,args.clients) + assert 1 <= args.rooms <= args.clients <= 4000 + assert 1 <= args.accounts <= args.clients and args.rounds > 0 and args.concurrency > 0 + with tempfile.TemporaryDirectory(prefix='xmpp-durable-muc-load-') as tmp: + root = pathlib.Path(tmp) + # Release builds/packaging may replace the source binary during a long + # run; this private executable is the same inode generation on restart. + shutil.copy2(args.binary, root / 'rust-xmpp') + args.binary = str(root / 'rust-xmpp') + subprocess.run(['openssl','req','-x509','-newkey','ec','-pkeyopt','ec_paramgen_curve:P-256', + '-nodes','-days','1','-subj','/CN=localhost','-addext','subjectAltName=DNS:localhost', + '-addext','basicConstraints=critical,CA:FALSE','-keyout',str(root/'key.pem'), + '-out',str(root/'cert.pem')],check=True,capture_output=True) + with socket.socket() as probe: + probe.bind(('127.0.0.1',0)) + port = probe.getsockname()[1] + cfg = {'global': {'data_path':str(root/'data'),'interfaces':['127.0.0.1'], + 'c2s_ports':[port],'s2s_ports':[],'http_ports':[],'https_ports':[], + 'smacks_hibernation_time':600,'muc_recovery_grace_period':600, + 'modules_enabled':['tls','saslauth','smacks','disco','ping'], + 'ssl':{'key':str(root/'key.pem'),'certificate':str(root/'cert.pem')}}, + 'hosts': {'localhost':{'options':{'authentication':'internal_hashed','password_hash':'SHA-256'}}, + 'rooms.localhost':{'component':'muc','options':{'muc_room_locking':False, + 'muc_room_default_history_length':0,'max_history_messages':0}}}} + config = root/'config.json' + config.write_text(json.dumps(cfg)) + for number in range(args.accounts): + subprocess.run([args.binary,'create-user',str(config),f'load-{number}','--password-stdin'], + input='load-test-password\n',text=True,check=True,capture_output=True) + with (root/'server.log').open('w+') as log: + try: + report = asyncio.run(exercise(args,root,config,port,log)) + except BaseException: + log.flush();log.seek(0) + print(log.read(),file=sys.stderr) + raise + pathlib.Path(args.output).write_text(json.dumps(report,indent=2)+'\n') + print(json.dumps(report,indent=2)) + + +if __name__ == '__main__': + main() diff --git a/tests/muc_state_native.rs b/tests/muc_state_native.rs index 4c78aa8..4195812 100644 --- a/tests/muc_state_native.rs +++ b/tests/muc_state_native.rs @@ -13,9 +13,10 @@ fn actual_prosody_restores_rust_checkpoint_and_rust_reads_native_freeze() { let root = tempfile::tempdir().unwrap(); // Let the real room implementation create its normal configuration/index. let mut muc = Muc::new(root.path().into(), DOMAIN.into()); + muc.set_component_options(serde_json::json!({"muc_room_locking":false}), false); muc.set_defaults(serde_json::json!({"persistent":true,"whois":"moderators"})); let join = roxmltree::Document::parse( - "Rust desktop", + "Rust desktop", ) .unwrap(); muc.handle("alice@example.org/desktop", join.root_element()) diff --git a/tests/sm_durable_slots.rs b/tests/sm_durable_slots.rs new file mode 100644 index 0000000..041048d --- /dev/null +++ b/tests/sm_durable_slots.rs @@ -0,0 +1,323 @@ +//! Process-independent durable SM slots; network SIGKILL coverage lives in sm_restart_network.py. +use rust_xmpp::sessions::{ConflictPolicy, Hub}; +use std::time::{Duration, Instant}; +use tokio::sync::mpsc; + +#[test] +fn restart_restores_owner_presence_and_only_unacknowledged_output() { + let dir = tempfile::tempdir().unwrap(); + let hub = Hub::persistent(dir.path()).unwrap(); + let (tx, mut rx) = mpsc::channel(8); + let session = hub + .bind("a@x/mobile", "original", tx, Duration::from_secs(60)) + .unwrap(); + let token; + { + let mut state = session.lock().unwrap(); + state.enable(true).unwrap(); + token = state.resume_id.clone().unwrap(); + state.available = true; + state.priority = 3; + state.presence = Some("away".into()); + state.client_id = Some("mobile-client".into()); + state.csi.set_inactive(true); + state.mark_handled().unwrap(); + state.transmit("first".into()).unwrap(); + state.transmit("second".into()).unwrap(); + state.acknowledge(1).unwrap(); + } + assert_eq!(rx.try_recv().unwrap(), "first"); + drop(hub); + let recovered = Hub::persistent(dir.path()).unwrap(); + let state = recovered.get("a@x/mobile").unwrap(); + { + let state = state.lock().unwrap(); + assert!(state.sender.is_none()); + assert!(state.available); + assert_eq!(state.priority, 3); + assert_eq!(state.handled, 1); + assert_eq!(state.client_id.as_deref(), Some("mobile-client")); + assert_eq!( + state.pending.iter().cloned().collect::>(), + ["second"] + ); + } + let (tx, _rx) = mpsc::channel(8); + assert!( + recovered + .resume("attacker@x", &token, 1, "bad", tx.clone()) + .is_err() + ); + assert!( + recovered + .resume("a@x", &token, 3, "bad", tx.clone()) + .is_err() + ); + let (resumed, replay) = recovered + .resume("a@x", &token, 1, "replacement", tx) + .unwrap(); + assert!(replay[0].contains("h='1'")); + assert_eq!(replay[1], "second"); + assert!(state.lock().unwrap().acknowledge(2).is_err()); + resumed.lock().unwrap().acknowledge(2).unwrap(); + drop(recovered); + let recovered = Hub::persistent(dir.path()).unwrap(); + assert!( + recovered + .get("a@x/mobile") + .unwrap() + .lock() + .unwrap() + .pending + .is_empty() + ); +} + +#[test] +fn disconnected_deadline_is_fixed_across_recovery() { + let dir = tempfile::tempdir().unwrap(); + let hub = Hub::persistent(dir.path()).unwrap(); + let (tx, _rx) = mpsc::channel(8); + let session = hub.bind("a@x/r", "c", tx, Duration::from_secs(60)).unwrap(); + session.lock().unwrap().enable(true).unwrap(); + hub.disconnect("c", false); + let deadline = session.lock().unwrap().expires.unwrap(); + hub.disconnect("c", false); + assert_eq!(session.lock().unwrap().expires.unwrap(), deadline); + drop(hub); + let recovered = Hub::persistent(dir.path()).unwrap(); + let recovered_deadline = recovered + .get("a@x/r") + .unwrap() + .lock() + .unwrap() + .expires + .unwrap(); + assert!(recovered_deadline <= deadline + Duration::from_millis(2)); + assert!(recovered_deadline >= deadline - Duration::from_millis(5)); +} + +#[test] +fn graceful_close_conflict_account_purge_and_expiration_remove_tokens() { + for action in ["close", "conflict", "purge", "expire"] { + let dir = tempfile::tempdir().unwrap(); + let hub = Hub::persistent(dir.path()).unwrap(); + let (tx, _rx) = mpsc::channel(8); + let session = hub + .bind("a@x/r", "c", tx.clone(), Duration::from_secs(60)) + .unwrap(); + session.lock().unwrap().enable(true).unwrap(); + let token = session.lock().unwrap().resume_id.clone().unwrap(); + match action { + "close" => { + hub.disconnect("c", true); + } + "purge" => hub.kick_owner("a@x"), + "conflict" => { + hub.bind_resolving( + "a@x/r", + "new", + tx.clone(), + Duration::from_secs(60), + ConflictPolicy::KickOld, + ) + .unwrap(); + } + _ => { + session.lock().unwrap().expires = Some(Instant::now()); + hub.expired(); + } + } + drop(hub); + let recovered = Hub::persistent(dir.path()).unwrap(); + assert!( + recovered.resume("a@x", &token, 0, "after", tx).is_err(), + "{action}" + ); + } +} + +#[test] +fn store_has_one_process_owner_and_enforces_output_byte_bound() { + let dir = tempfile::tempdir().unwrap(); + let hub = Hub::persistent(dir.path()).unwrap(); + assert!(Hub::persistent(dir.path()).is_err()); + let (tx, mut rx) = mpsc::channel(8); + let session = hub.bind("a@x/r", "c", tx, Duration::from_secs(60)).unwrap(); + let mut state = session.lock().unwrap(); + state.enable(true).unwrap(); + assert!(state.transmit("x".repeat(8 * 1024 * 1024 + 1)).is_err()); + // Fits the payload limit but exceeds the serialized slot limit: persistence + // failure must also roll counters back and keep bytes off the transport. + assert!(state.transmit("x".repeat(8 * 1024 * 1024)).is_err()); + assert_eq!(state.sent, 0); + assert!(state.pending.is_empty()); + assert!(rx.try_recv().is_err()); +} + +#[test] +fn shutdown_freeze_retires_old_transport_before_cleanup() { + let dir = tempfile::tempdir().unwrap(); + let hub = Hub::persistent(dir.path()).unwrap(); + let (tx, _rx) = mpsc::channel(8); + let old = hub.bind("a@x/r", "c", tx, Duration::from_secs(60)).unwrap(); + old.lock().unwrap().enable(true).unwrap(); + old.lock().unwrap().transmit("pending".into()).unwrap(); + let token = old.lock().unwrap().resume_id.clone().unwrap(); + hub.freeze().unwrap(); + assert!(old.lock().unwrap().acknowledge(1).is_err()); + assert!(old.lock().unwrap().transmit("stale".into()).is_err()); + assert!(hub.disconnect("c", true).is_empty()); + drop(hub); + let hub = Hub::persistent(dir.path()).unwrap(); + let (tx, _rx) = mpsc::channel(8); + let (_, replay) = hub.resume("a@x", &token, 0, "fresh", tx).unwrap(); + assert_eq!(replay[1], "pending"); +} + +#[test] +fn durable_counters_wrap_without_accepting_stale_acknowledgements() { + let dir = tempfile::tempdir().unwrap(); + let hub = Hub::persistent(dir.path()).unwrap(); + let (tx, _rx) = mpsc::channel(8); + let session = hub.bind("a@x/r", "c", tx, Duration::from_secs(60)).unwrap(); + { + let mut state = session.lock().unwrap(); + state.enable(true).unwrap(); + state.sent = u32::MAX; + state.acked = u32::MAX; + state.handled = u32::MAX; + state.mark_handled().unwrap(); + state.transmit("wrapped".into()).unwrap(); + } + drop(hub); + let hub = Hub::persistent(dir.path()).unwrap(); + let session = hub.get("a@x/r").unwrap(); + let mut state = session.lock().unwrap(); + assert_eq!(state.handled, 0); + assert_eq!(state.sent, 0); + assert!(state.acknowledge(u32::MAX - 1).is_err()); + state.acknowledge(0).unwrap(); + assert!(state.pending.is_empty()); +} + +#[test] +#[cfg(unix)] +fn durable_tokens_and_private_pending_output_have_owner_only_permissions() { + use std::os::unix::fs::PermissionsExt; + let dir = tempfile::tempdir().unwrap(); + let hub = Hub::persistent(dir.path()).unwrap(); + let (tx, _rx) = mpsc::channel(8); + let session = hub.bind("a@x/r", "c", tx, Duration::from_secs(60)).unwrap(); + session.lock().unwrap().enable(true).unwrap(); + assert_eq!( + std::fs::metadata(dir.path()).unwrap().permissions().mode() & 0o777, + 0o700 + ); + for entry in std::fs::read_dir(dir.path()).unwrap() { + assert_eq!( + entry.unwrap().metadata().unwrap().permissions().mode() & 0o777, + 0o600 + ); + } +} + +#[test] +fn recovery_discards_owned_crash_temps_and_keeps_last_committed_slot() { + let dir = tempfile::tempdir().unwrap(); + let hub = Hub::persistent(dir.path()).unwrap(); + let (tx, _rx) = mpsc::channel(8); + let session = hub.bind("a@x/r", "c", tx, Duration::from_secs(60)).unwrap(); + let token; + { + let mut state = session.lock().unwrap(); + state.enable(true).unwrap(); + state.transmit("committed".into()).unwrap(); + token = state.resume_id.clone().unwrap(); + } + drop(hub); + let interrupted = dir.path().join(format!("{token}.tmp")); + let orphan = dir.path().join(format!("{}.tmp", uuid::Uuid::new_v4())); + let unknown = dir.path().join("notes.tmp"); + let unknown_dir = dir.path().join(format!("{}.tmp", uuid::Uuid::new_v4())); + std::fs::write(&interrupted, b"{\"pending\": [\"uncommitted").unwrap(); + std::fs::write(&orphan, b"incomplete").unwrap(); + std::fs::write(&unknown, b"preserve").unwrap(); + std::fs::create_dir(&unknown_dir).unwrap(); + let recovered = Hub::persistent(dir.path()).unwrap(); + assert!(!interrupted.exists()); + assert!(!orphan.exists()); + assert!(unknown.exists()); + assert!(unknown_dir.is_dir()); + let session = recovered.get("a@x/r").unwrap(); + let state = session.lock().unwrap(); + assert_eq!(state.sent, 1); + assert_eq!( + state.pending.iter().cloned().collect::>(), + ["committed"] + ); +} + +#[test] +fn corrupt_committed_slot_fails_recovery_closed() { + let dir = tempfile::tempdir().unwrap(); + std::fs::write( + dir.path().join(format!("{}.json", uuid::Uuid::new_v4())), + b"{incomplete", + ) + .unwrap(); + assert!(Hub::persistent(dir.path()).is_err()); +} + +#[test] +fn independent_hubs_with_identical_connection_names_keep_their_own_slots() { + let first_dir = tempfile::tempdir().unwrap(); + let second_dir = tempfile::tempdir().unwrap(); + let first = Hub::persistent(first_dir.path()).unwrap(); + let second = Hub::persistent(second_dir.path()).unwrap(); + let (tx, _rx) = mpsc::channel(8); + let a = first + .bind("a@x/r", "c", tx.clone(), Duration::from_secs(60)) + .unwrap(); + let b = second + .bind("a@x/r", "c", tx, Duration::from_secs(60)) + .unwrap(); + a.lock().unwrap().enable(true).unwrap(); + b.lock().unwrap().enable(true).unwrap(); + a.lock().unwrap().transmit("first hub".into()).unwrap(); + b.lock().unwrap().transmit("second hub".into()).unwrap(); + first.disconnect("c", true); + drop(first); + drop(second); + let first = Hub::persistent(first_dir.path()).unwrap(); + let second = Hub::persistent(second_dir.path()).unwrap(); + assert!(first.get("a@x/r").is_none()); + let b = second.get("a@x/r").unwrap(); + assert_eq!( + b.lock().unwrap().pending.front().map(String::as_str), + Some("second hub") + ); +} + +#[test] +fn session_reference_does_not_keep_store_locked_or_allow_unpersisted_writes() { + let dir = tempfile::tempdir().unwrap(); + let hub = Hub::persistent(dir.path()).unwrap(); + let (tx, _rx) = mpsc::channel(8); + let old = hub.bind("a@x/r", "c", tx, Duration::from_secs(60)).unwrap(); + old.lock().unwrap().enable(true).unwrap(); + drop(hub); + let recovered = Hub::persistent(dir.path()).unwrap(); + assert!(old.lock().unwrap().checkpoint().is_err()); + assert!(old.lock().unwrap().transmit("orphaned".into()).is_err()); + assert_eq!(old.lock().unwrap().sent, 0); + assert!( + recovered + .get("a@x/r") + .unwrap() + .lock() + .unwrap() + .pending + .is_empty() + ); +} diff --git a/tests/sm_restart_network.py b/tests/sm_restart_network.py new file mode 100644 index 0000000..b6ed795 --- /dev/null +++ b/tests/sm_restart_network.py @@ -0,0 +1,263 @@ +#!/usr/bin/env python3 +"""Real STARTTLS/SASL SM recovery across abrupt and orderly process restarts. + +Usage: python3 tests/sm_restart_network.py BINARY +Pending server stanzas are at-least-once: a received but unacknowledged stanza +must replay. This test does not assert exactly-once client stanza processing. +""" +import json +from pathlib import Path +import signal +import socket +import subprocess +import sys +import tempfile +import time +import xml.etree.ElementTree as ET + +from _wire_client import Client, local +from sasl2_bind import Client as InlineClient, SASL2 +from muc_restart_network import start, stop, join, iq, occupant + +SM = 'urn:xmpp:sm:3' +ROOM = 'durable@rooms.localhost' + + +def enable(client): + client.send(f"") + response = client.take(lambda e: e.tag == f'{{{SM}}}enabled') + assert response.get('resume') == 'true', ET.tostring(response) + assert response.get('id'), ET.tostring(response) + return response.get('id') + + +def handled(client): + client.send(f"") + return int(client.take(lambda e: e.tag == f'{{{SM}}}a').get('h')) + + +def ping(client, ident): + client.send(f"") + return client.iq(ident) + + +def count_output(client): + """Track received SM-counted stanzas, including queued room broadcasts.""" + client.received = 0 + original = client.read + def read(): + packet = original() + if local(packet) in ('iq', 'presence', 'message'): + client.received += 1 + return packet + client.read = read + + +def resume(port, cert, token, h, clients, user='alice', inline=False, success=True, password='secret'): + request = f"" + if inline: + raw = InlineClient(port, cert) + response = raw.auth(request, user=user, password=password) + result = response.find(f'{{{SM}}}' + ('resumed' if success else 'failed')) + assert result is not None, ET.tostring(response) + if success: + assert response.find(f'{{{SASL2}}}authorization-identifier').text == 'alice@localhost/desktop' + # Adapt the TLS socket to the independent stanza parser; inline success + # precedes replay, and the new stream features follow pending stanzas. + client = Client.__new__(Client) + client.sock, client.buf, client.queue = raw.sock, raw.buffer, [] + client.jid = 'alice@localhost/desktop' + clients.append(client) + if success: + while b'' not in client.buf: + client.buf += client.sock.recv(65536) + before, after = client.buf.split(b'', 1) + client.buf = before + tail + else: + client = Client(port, cert, user, password, bind=False) + clients.append(client) + client.send(request) + result = client.take(lambda e: e.tag in (f'{{{SM}}}resumed', f'{{{SM}}}failed')) + assert result.tag == f'{{{SM}}}' + ('resumed' if success else 'failed'), ET.tostring(result) + if success: + assert result.get('previd') == token, ET.tostring(result) + return client, result + + +def run(binary): + with tempfile.TemporaryDirectory(prefix='xmpp-sm-restart-') as tmp: + root = Path(tmp) + subprocess.run(['openssl', 'req', '-x509', '-newkey', 'rsa:2048', '-nodes', '-days', '1', + '-keyout', str(root/'key.pem'), '-out', str(root/'cert.pem'), '-subj', + '/CN=localhost', '-addext', 'subjectAltName=DNS:localhost'], check=True, + stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) + with socket.socket() as probe: + probe.bind(('127.0.0.1', 0)) + port = probe.getsockname()[1] + cert = root/'cert.pem' + config = root/'config.json' + cfg = {'global': {'data_path': str(root/'data'), 'interfaces': ['127.0.0.1'], + 'c2s_ports': [port], 's2s_ports': [], 'http_ports': [], 'https_ports': [], + 'smacks_hibernation_time': 30, + 'modules_enabled': ['tls', 'saslauth', 'sasl2', 'sasl2_bind2', 'carbons', + 'csi_simple', 'smacks', 'ping', 'disco', 'register']}, + 'hosts': {'localhost': {'options': {'authentication': 'internal_hashed', + 'password_hash': 'SHA-256', 'ssl': {'key': str(root/'key.pem'), + 'certificate': str(cert)}}}, 'rooms.localhost': {'component': 'muc', 'options': {}}}} + config.write_text(json.dumps(cfg)) + for user in ('alice', 'bob'): + subprocess.run([binary, 'create-user', str(config), user, '--password-stdin'], + input='secret\n', text=True, check=True, capture_output=True) + clients, server = [], None + with (root/'server.log').open('w+') as log: + def connect(user='alice', resource='desktop'): + client = Client(port, cert, user, 'secret', resource) + clients.append(client) + return client + def restart(how): + nonlocal server + if how == 'kill': + server.send_signal(signal.SIGKILL) + assert server.wait(timeout=10) == -signal.SIGKILL + else: + stop(server) + for client in clients: + client.close() + clients.clear() + server = start(binary, config, port, log) + try: + server = start(binary, config, port, log) + bob = connect(user='bob') + bob.available() + alice = connect() + token = enable(alice) + ping(alice, 'acknowledged') + alice.send(f"") + ping(alice, 'pending') + # A handled incoming stanza without a response is preserved too. + alice.send("incoming before crash") + bob.body('incoming before crash') + assert handled(alice) == 3 + restart('kill') + for user, ident, h in [('bob', token, 1), ('alice', 'unknown-token', 1), ('alice', token, 99)]: + resume(port, cert, ident, h, clients, user=user, success=False) + alice, result = resume(port, cert, token, 1, clients) + assert result.get('h') == '3', ET.tostring(result) + replay = alice.iq('pending') + assert replay.get('id') == 'pending' + alice.send(f"") + assert handled(alice) == 3 + assert not alice.queue, [ET.tostring(e) for e in alice.queue] + restart('term') + alice, result = resume(port, cert, token, 2, clients, inline=True) + assert result.get('h') == '3', ET.tostring(result) + ping(alice, 'after-orderly') + assert not alice.queue, [ET.tostring(e) for e in alice.queue] + alice.send(f"") + assert handled(alice) == 4 + restart('kill') + alice, result = resume(port, cert, token, 3, clients) + assert result.get('h') == '4', ET.tostring(result) + ping(alice, 'after-second-crash') + assert not alice.queue, [ET.tostring(e) for e in alice.queue] + # Only one transport owns a token: the next claim displaces it. + old = alice + alice, result = resume(port, cert, token, 4, clients) + old.sock.settimeout(2) + assert b'conflict' in old.until(b'') + assert handled(alice) == 5 + # Explicitly replacing the same resource invalidates its token. + replacement = connect() + resume(port, cert, token, 4, clients, success=False) + replacement.close() + + # SM resumption itself activates recovered MUC membership. No + # fresh available presence or MUC join is sent after restart. + alice = connect(resource='room') + count_output(alice) + token = enable(alice) + occupant(join(alice, ROOM, 'Alice'), 'moderator', 'owner') + iq(alice, 'unlock', f"", ROOM) + bob = connect(user='bob', resource='room') + count_output(bob) + bob_token = enable(bob) + occupant(join(bob, ROOM, 'Bob'), 'participant', 'none') + alice.send(f"before room crash") + alice.body('before room crash') + bob.body('before room crash') + ping(alice, 'room-fence') + ping(bob, 'bob-room-fence') + alice_count, bob_count = alice.received, bob.received + alice.send(f"") + bob.send(f"") + assert handled(alice) == 4 + assert handled(bob) == 2 + restart('kill') + alice, result = resume(port, cert, token, alice_count, clients) + assert result.get('h') == '4' + # Bob's logical SM session remains joined while his transport + # is offline. Alice's fanout must queue before Bob authenticates. + alice.send(f"after room crash") + assert alice.body('after room crash').get('from') == ROOM + '/Alice' + assert handled(alice) == 5 + # Inspect the committed slot before any Bob authentication. + # A history replay on rejoining is not offline SM delivery. + slots = list((root/'data').rglob(bob_token + '.json')) + assert len(slots) == 1, slots + record = json.loads(slots[0].read_text()) + assert record['jid'] == 'bob@localhost/room', record + queued = [ET.fromstring(xml) for xml in record['pending']] + assert any(packet.get('from') == ROOM + '/Alice' + and any(local(node) == 'body' and node.text == 'after room crash' + for node in packet) + for packet in queued), ('room fanout missing from Bob durable pending before authentication', record) + bob, result = resume(port, cert, bob_token, bob_count, clients, user='bob') + assert result.get('h') == '2' + packet = bob.body('after room crash') + assert packet.get('from') == ROOM + '/Alice' + assert packet.find('.//{urn:xmpp:delay}delay') is None, ET.tostring(packet) + restart('term') + + # Expired detached sessions stay expired through repeated boot. + cfg['global']['smacks_hibernation_time'] = 1 + stop(server) + config.write_text(json.dumps(cfg)) + server = start(binary, config, port, log) + short = connect(resource='short') + expired = enable(short) + short.close() + time.sleep(1.3) + restart('kill') + resume(port, cert, expired, 0, clients, success=False) + restart('term') + resume(port, cert, expired, 0, clients, success=False) + + # Account deletion must deliver its successful IQ response + # before closing the stream and revoke every old resume token. + stop(server) + cfg['global']['smacks_hibernation_time'] = 300 + config.write_text(json.dumps(cfg)) + server = start(binary, config, port, log) + removed = connect(resource='remove-account') + revoked = enable(removed) + removed.send("") + removed.iq('remove-account') + stop(server) + subprocess.run([binary, 'create-user', str(config), 'alice', '--password-stdin'], + input='new-secret\n', text=True, check=True, capture_output=True) + server = start(binary, config, port, log) + resume(port, cert, revoked, 0, clients, password='new-secret', success=False) + finally: + if server is not None and server.poll() is None: + stop(server) + for client in clients: + client.close() + if sys.exc_info()[0] is not None: + log.seek(0) + print(log.read(), file=sys.stderr) + print('PASS: TLS legacy/SASL2 durable SM after SIGKILL/SIGTERM, counters, ack pruning, at-least-once pending replay, owner/token/h rejection, transport/resource conflict, MUC activation/offline fanout, grace expiry and account deletion/recreation revocation') + + +if __name__ == '__main__': + run(str(Path(sys.argv[1]).resolve()))