<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    <p>Hi Andreas,</p>
    <p>recently i have been faced with the same fault. I'm pretty sure
      you are speaking german, that's why a translation should not be
      necessary.</p>
    <p>I found the reason by tracing a certain process which points to
      the gsyncd.log and looking backward from the error until i found
      some lgetxattr function call's. In the corresponding directory i
      found some filenames with 'special' characters. Rename fixed the
      problem.</p>
    <p>Below 'my' history and solution for UnicodeEncodeError und
      UnicodeDecodeError. Hope it helps...btw, we are running gfs 7.9 on
      Ubuntu 18.04.</p>
    <p><br>
    </p>
    <p>best regards</p>
    <p>Dietmar<br>
    </p>
    <p>
    </p>
    <div class="moz-text-flowed" style="font-family: -moz-fixed;
      font-size: 12px;" lang="x-unicode">
      <br>
      <br>
      script fuer trace von geo-replication :
      <br>
      <br>
      <br>
      <br>
      <br>
      <br>
      [ 07:35:09 ] - root@gl-master-05&nbsp; ~/tmp/geo-rep $cat trace_gf.sh
      <br>
      #!/bin/bash
      <br>
      #
      <br>
      # script zum tracen der geo-rep aktivitaeten
      <br>
      # script benoetigt pid
      <br>
      # gedacht zum tracen der parent pid von master prozess auf
      gsyncd.log
      <br>
      # in diesem beispiel pid 13620
      <br>
      #
      <br>
      #
      <br>
      #[ 16:19:24 ] - root@gl-master-05
      /var/log/glusterfs/geo-replication/mvol1_gl-slave-01-int_svol1
      $lsof gsyncd.log
      <br>
      #COMMAND&nbsp;&nbsp; PID USER&nbsp;&nbsp; FD&nbsp;&nbsp; TYPE DEVICE SIZE/OFF&nbsp;&nbsp;&nbsp; NODE NAME
      <br>
      #python3 13021 root&nbsp;&nbsp;&nbsp; 3w&nbsp;&nbsp; REG&nbsp;&nbsp;&nbsp; 8,2&nbsp; 2905607 9572924 gsyncd.log
      <br>
      #python3 13619 root&nbsp;&nbsp;&nbsp; 3w&nbsp;&nbsp; REG&nbsp;&nbsp;&nbsp; 8,2&nbsp; 2905607 9572924 gsyncd.log
      <br>
      #python3 13620 root&nbsp;&nbsp;&nbsp; 3w&nbsp;&nbsp; REG&nbsp;&nbsp;&nbsp; 8,2&nbsp; 2905607 9572924 gsyncd.log
      <br>
      #[ 16:19:27 ] - root@gl-master-05
      /var/log/glusterfs/geo-replication/mvol1_gl-slave-01-int_svol1 $
      <br>
      #
      <br>
#gf_log=&quot;/var/log/glusterfs/geo-replication/mvol1_gl-slave-01-int_svol1/gsyncd.log&quot;
      <br>
      tr_out=&quot;/root/tmp/geo-rep/trace-`date +&quot;%H_%M_%S_%d_%m_%Y&quot;`.out&quot;
      <br>
      <br>
      echo &quot;tr_out : $tr_out&quot;
      <br>
      #pid=`lsof &quot;$gf_log&quot; | grep -v COMMAND | head -1 | awk '{print
      $2}'`
      <br>
      PID=$1
      <br>
      echo &quot;pid : $PID&quot;
      <br>
      <br>
      ps -p $PID &gt; /dev/null 2&gt;&amp;1
      <br>
      if [ $? -ne 0 ]
      <br>
      then
      <br>
      &nbsp;&nbsp;&nbsp; echo &quot;Pid $PID not running&quot;
      <br>
      &nbsp;&nbsp;&nbsp; exit
      <br>
      fi
      <br>
      <br>
      nohup strace -t -f -s 256 -o $tr_out -p$PID &amp;
      <br>
      <br>
      PID_STRACE=`ps -aef | grep -v grep | grep strace | awk '{print
      $2}'`
      <br>
      echo &quot;Pid von strace : $PID_STRACE&quot;
      <br>
      <br>
      while true
      <br>
      do
      <br>
      &nbsp;&nbsp;&nbsp; filesize=`ls -l $tr_out | awk '{print $5}'`
      <br>
      &nbsp;&nbsp;&nbsp; if [ $filesize -gt 1000000000 ]
      <br>
      &nbsp;&nbsp;&nbsp; then
      <br>
      &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ps -p $PID &gt; /dev/null 2&gt;&amp;1
      <br>
      &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if [ $? -eq 0 ]
      <br>
      &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; then
      <br>
      &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; kill -9 $PID_STRACE
      <br>
      &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sleep 1
      <br>
      &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; rm $tr_out
      <br>
      &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; nohup strace -t -f -s 256 -o $tr_out -p$PID &amp;
      <br>
      &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; PID_STRACE=`ps -aef | grep -v grep | grep strace | awk
      '{print $2}'`
      <br>
      &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; echo &quot;Pid von strace : $PID_STRACE&quot;
      <br>
      &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; else
      <br>
      &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; echo &quot;pid $PID laeuft nicht mehr....&quot;
      <br>
      &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit
      <br>
      &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; fi
      <br>
      &nbsp;&nbsp;&nbsp; fi
      <br>
      &nbsp;&nbsp;&nbsp; ps -p $PID &gt; /dev/null 2&gt;&amp;1
      <br>
      &nbsp;&nbsp;&nbsp; if [ $? -ne 0 ]
      <br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; then
      <br>
      &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; echo &quot;pid $PID laeuft nicht mehr...&quot;
      <br>
      &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit
      <br>
      &nbsp;&nbsp;&nbsp; fi
      <br>
      &nbsp;&nbsp;&nbsp; sleep 120
      <br>
      &nbsp;&nbsp;&nbsp; echo &quot;`date` : `ls -lh $tr_out`&quot;
      <br>
      done
      <br>
      <br>
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
      <br>
      <br>
      zu 2. Loesungsansatz (s.u.) :
      <br>
      <br>
      Fuer diesen Fehler reicht es den 'letzten' Prozess zu tracen. Hier
      1236, nicht 13021. 13021 ist der 'mother' prozess, nach error
      werden die beien anderen gekillt und mit neuer pid gestartet,
      resultat von beobachtungen :
      <br>
      <br>
      [ 13:00:04 ] - root@gl-master-05&nbsp; ~/tmp/geo-rep/15 $lsof
/var/log/glusterfs/geo-replication/mvol1_gl-slave-01-int_svol1/gsyncd.log<br>
      COMMAND&nbsp;&nbsp; PID USER&nbsp;&nbsp; FD&nbsp;&nbsp; TYPE DEVICE SIZE/OFF&nbsp;&nbsp;&nbsp; NODE NAME
      <br>
      python3&nbsp; 1235 root&nbsp;&nbsp;&nbsp; 3w&nbsp;&nbsp; REG&nbsp;&nbsp;&nbsp; 8,2&nbsp; 2857996 9572924
/var/log/glusterfs/geo-replication/mvol1_gl-slave-01-int_svol1/gsyncd.log<br>
      python3&nbsp; 1236 root&nbsp;&nbsp;&nbsp; 3w&nbsp;&nbsp; REG&nbsp;&nbsp;&nbsp; 8,2&nbsp; 2857996 9572924
/var/log/glusterfs/geo-replication/mvol1_gl-slave-01-int_svol1/gsyncd.log<br>
      python3 13021 root&nbsp;&nbsp;&nbsp; 3w&nbsp;&nbsp; REG&nbsp;&nbsp;&nbsp; 8,2&nbsp; 2857996 9572924
/var/log/glusterfs/geo-replication/mvol1_gl-slave-01-int_svol1/gsyncd.log<br>
      [ 13:00:18 ] - root@gl-master-05&nbsp; ~/tmp/geo-rep/15 $
      <br>
      <br>
      [ 13:00:10 ] - root@gl-master-05&nbsp; ~/tmp/geo-rep $strace -t -f -s
      256 -o /root/tmp/geo-rep/gsyncd1.out -p1236
      <br>
      <br>
      Um das file nicht zu gross werden zu lassen kann man den strace
      immer wieder killen, file loeschen, und strace neu starten. Pech
      natuerlich wenn gerade dann der Fehler auftritt. Das file hat
      schnell eine Groesse von 1GB und mehr (ca. 10 Minuten, je nach
      aktivitaet) und viele Millionen lines...
      <br>
      <br>
      geo-replication log beobachten, kill von o.g. pid ist allerdings
      nicht noetig. Der Prozess endet bei error, und damit auch der
      trace.
      <br>
      <br>
      [ 12:32:04 ] - root@gl-master-05
      /var/log/glusterfs/geo-replication/mvol1_gl-slave-01-int_svol1
      $tail -f gsyncd.log
      <br>
      <br>
      ...
      <br>
      <br>
      [2021-02-11 12:53:59.530649] I [master(worker
      /brick1/mvol1):1441:process] _GMaster: Batch Completed
      mode=xsync&nbsp;&nbsp;&nbsp; duration=178.4717&nbsp;&nbsp;&nbsp; changelog_start=1613041474
      changelog_end=1613041474&nbsp;&nbsp;&nbsp; num_changelogs=1&nbsp;&nbsp;&nbsp; stime=None
      entry_stime=None
      <br>
      [2021-02-11 12:53:59.639853] I [master(worker
      /brick1/mvol1):1681:crawl] _GMaster: processing xsync changelog
path=/var/lib/misc/gluster/gsyncd/mvol1_gl-slave-01-int_svol1/brick1-mvol1/xsync/XSYNC-CHANGELOG.1613041477<br>
      ###################################
      <br>
      [2021-02-11 13:00:57.149347] E [syncdutils(worker
      /brick1/mvol1):339:log_raise_exception] &lt;top&gt;: FAIL:
      <br>
      Traceback (most recent call last):
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/syncdutils.py&quot;,
      line 369, in twrap
      <br>
      &nbsp;&nbsp;&nbsp; tf(*aargs)
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/master.py&quot;,
      line 1666, in Xsyncer
      <br>
      &nbsp;&nbsp;&nbsp; self.Xcrawl()
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/master.py&quot;,
      line 1839, in Xcrawl
      <br>
      &nbsp;&nbsp;&nbsp; self.Xcrawl(e, xtr_root)
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/master.py&quot;,
      line 1839, in Xcrawl
      <br>
      &nbsp;&nbsp;&nbsp; self.Xcrawl(e, xtr_root)
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/master.py&quot;,
      line 1839, in Xcrawl
      <br>
      &nbsp;&nbsp;&nbsp; self.Xcrawl(e, xtr_root)
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/master.py&quot;,
      line 1801, in Xcrawl
      <br>
      &nbsp;&nbsp;&nbsp; xte = self.xtime(e)
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/master.py&quot;,
      line 403, in xtime
      <br>
      &nbsp;&nbsp;&nbsp; return self.xtime_low(rsc, path, **opts)
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/master.py&quot;,
      line 170, in xtime_low
      <br>
      &nbsp;&nbsp;&nbsp; xt = rsc.server.xtime(path, self.uuid)
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/resource.py&quot;,
      line 104, in ff
      <br>
      &nbsp;&nbsp;&nbsp; return f(*args)
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/resource.py&quot;,
      line 240, in xtime
      <br>
      &nbsp;&nbsp;&nbsp; 8)
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/libcxattr.py&quot;,
      line 59, in lgetxattr
      <br>
      &nbsp;&nbsp;&nbsp; return gr_query_xattr(cls, path, siz, 'lgetxattr', attr)
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/py2py3.py&quot;,
      line 46, in gr_query_xattr
      <br>
      &nbsp;&nbsp;&nbsp; return cls._query_xattr(path.encode(), size, syscall,
      <br>
      UnicodeEncodeError: 'utf-8' codec can't encode character '\udcfc'
      in position 56: surrogates not allowed
      <br>
      [2021-02-11 13:00:57.246779] I [repce(agent
      /brick1/mvol1):96:service_loop] RepceServer: terminating on
      reaching EOF.
      <br>
      [2021-02-11 13:00:57.251649] I
      [gsyncdstatus(monitor):248:set_worker_status] GeorepStatus: Worker
      Status Change&nbsp;&nbsp;&nbsp; status=Faulty
      <br>
      <br>
      Um die Suche etwas einfacher zu gestalten ggf. den output auf die
      letzte oder die letzten beiden Sekunden reduzieren :
      <br>
      <br>
      <br>
      [ 13:32:46 ] - root@gl-master-05&nbsp; ~/tmp/geo-rep/15 $cat
      gsyncd1236.out | grep 13:00:57 &gt; error_sec.out
      <br>
      <br>
      Der Error String taucht in Zeile 3574 auf :
      <br>
      <br>
      [ 13:42:21 ] - root@gl-master-05&nbsp; ~/tmp/geo-rep/15 $grep -n
      UnicodeEncode error_sec.out
      <br>
      <br>
      3574:1298&nbsp; 13:00:57 write(2, &quot;failed with UnicodeEncodeError.\n&quot;,
      32) = 32
      <br>
      [ 13:42:34 ] - root@gl-master-05&nbsp; ~/tmp/geo-rep/15 $
      <br>
      <br>
      genauer aber ist die Suche nach dem ersten string in der
      Fehlermeldung, hier in Zeile 3167 :
      <br>
      <br>
      [ 13:45:55 ] - root@gl-master-05&nbsp; ~/tmp/geo-rep/15 $grep -n FAIL
      error_sec.out
      <br>
      <br>
      <br>
      3167:1298&nbsp; 13:00:57 write(3, &quot;[2021-02-11 13:00:57.149347] E
      [syncdutils(worker /brick1/mvol1):339:log_raise_exception]
      &lt;top&gt;: FAIL: \nTraceback (most recent call last):\n&nbsp; File
      \&quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/syncdutils.py\&quot;,
      line 369, in twrap\n&nbsp;&nbsp;&nbsp; tf(*aargs)\n&nbsp; Fil&quot;..., 1772) = 1772
      <br>
      [ 13:47:17 ] - root@gl-master-05&nbsp; ~/tmp/geo-rep/15 $
      <br>
      <br>
      Interessant sind die lgetxattr aufrufe unmittelbar vor Auftreten
      des ersten strings in der Fehlermeldung, dort Such nach den
      letzten 'echten' Pfaden :
      <br>
      <br>
      [ 13:50:48 ] - root@gl-master-05&nbsp; ~/tmp/geo-rep/15 $head -3167
      error_sec.out | grep lgetxattr | tail -100
      <br>
      <br>
      ...
      <br>
      <br>
      <br>
      Oder geich so :
      <br>
      <br>
      [ 13:50:40 ] - root@gl-master-05&nbsp; ~/tmp/geo-rep/15 $cat
      error_sec.out | grep 'lgetxattr(&quot;/brick1/mvol1/' | tail -5
      <br>
      1298&nbsp; 13:00:57
lgetxattr(&quot;/brick1/mvol1/./2538/uploads/2015/SA_150316_Aspirin_0,5_Tabletten_Shop.mov&quot;,
      &quot;trusted.gfid&quot;, &quot;\n\271\0030\276\265C~\204^\307\354ZH?\325&quot;, 16) =
      16
      <br>
      1298&nbsp; 13:00:57
lgetxattr(&quot;/brick1/mvol1/./2538/uploads/2015/SA_150316_ASS+C_Ratiopharm_gegen_Schmerzen_Shop.mov&quot;,
      &quot;trusted.glusterfs.2f5de6e4-66de-40a7-9f24-4762aad3ca96.xtime&quot;,
      &quot;_\355\16T\0\2%\232&quot;, 8) = 8
      <br>
      1298&nbsp; 13:00:57
lgetxattr(&quot;/brick1/mvol1/./2538/uploads/2015/SA_150316_ASS+C_Ratiopharm_gegen_Schmerzen_Shop.mov&quot;,
      &quot;trusted.gfid&quot;, &quot;K5\321\3\0\230L\230\262\223\356\227\210N5'&quot;, 16)
      = 16
      <br>
      1298&nbsp; 13:00:57
lgetxattr(&quot;/brick1/mvol1/./2538/uploads/2015/SA_150316_Gittalun_Trinktabletten_Europa.mov&quot;,
      &quot;trusted.glusterfs.2f5de6e4-66de-40a7-9f24-4762aad3ca96.xtime&quot;,
      &quot;_\355\16T\0\4S,&quot;, 8) = 8
      <br>
      1298&nbsp; 13:00:57
lgetxattr(&quot;/brick1/mvol1/./2538/uploads/2015/SA_150316_Gittalun_Trinktabletten_Europa.mov&quot;,
      &quot;trusted.gfid&quot; &lt;unfinished ...&gt;
      <br>
      [ 13:50:48 ] - root@gl-master-05&nbsp; ~/tmp/geo-rep/15 $
      <br>
      <br>
      Eine Suche im entsprechenden Directory zeigt das 'ueble' File :
      <br>
      <br>
      [ 13:54:12 ] - root@gl-master-05&nbsp; ~/tmp/geo-rep/15 $ls
      /brick1/mvol1/2538/uploads/2015/ | perl -ne 'print &quot;$. $_&quot; if
      m/[\x80-\xFF]/'
      <br>
      170 SA_150316_Nasenspray_f�r_Erwachsene_Europa.mov
      <br>
      [ 13:54:57 ] - root@gl-master-05&nbsp; ~/tmp/geo-rep/15 $
      <br>
      <br>
      Jetzt wird auch die Zaehlweise klar, annahme erstes character hat
      index 0 ...can't encode character '\udcfc' in position 56.
      <br>
      <br>
/brick1/mvol1/./2538/uploads/2015/SA_150316_Nasenspray_f�r_Erwachsene_Europa.mov
      <br>
      <br>
      Im gluster ist noch ein file mit diesem character, allerdings
      nicht auf gl-master-05/06 :
      <br>
      <br>
      [ 13:54:57 ] - root@gl-master-05&nbsp; ~/tmp/geo-rep/15 $ls <i class="moz-txt-slash"><span class="moz-txt-tag">/</span>sdn/2538/uploads/2015/
        | perl -ne 'print &quot;$. $_&quot; if m<span class="moz-txt-tag">/</span></i>[\x80-\xFF]/'
      <br>
      476 SA_150316_Nasenspray_f�r_Erwachsene_Europa.mov
      <br>
      477 SA_150316_Nasenspray_f�r_Erwachsene_Shop.mov
      <br>
      [ 14:00:10 ] - root@gl-master-05&nbsp; ~/tmp/geo-rep/15 $
      <br>
      <br>
      Eine andere Sicht :
      <br>
      <br>
      [ 14:02:01 ] - root@gl-master-05&nbsp; ~/tmp/geo-rep/15 $ls -l
      /sdn/2538/uploads/2015/SA_150316_Nasenspray_f*
      <br>
      -rw-r--r-- 1 2001 2001 91133255 May 21&nbsp; 2015
'/sdn/2538/uploads/2015/SA_150316_Nasenspray_f'$'\374''r_Erwachsene_Europa.mov'<br>
      -rw-r--r-- 1 2001 2001 86655912 May 21&nbsp; 2015
'/sdn/2538/uploads/2015/SA_150316_Nasenspray_f'$'\374''r_Erwachsene_Shop.mov'<br>
      -rw-r--r-- 1 2001 2001 91133255 May 21&nbsp; 2015
      /sdn/2538/uploads/2015/SA_150316_Nasenspray_fuer_Erwachsene_Europa.mov
      <br>
      -rw-r--r-- 1 2001 2001 86655912 May 21&nbsp; 2015
      /sdn/2538/uploads/2015/SA_150316_Nasenspray_fuer_Erwachsene_Shop.mov
      <br>
      [ 14:02:45 ] - root@gl-master-05&nbsp; ~/tmp/geo-rep/15 $
      <br>
      <br>
      die ersten beiden Files werden geloescht.
      <br>
      <br>
      [ 14:22:32 ] - root@gl-master-05 /sdn/2538/uploads/2015 $rm
      'SA_150316_Nasenspray_f'$'\374''r_Erwachsene_Europa.mov'
      <br>
      [ 14:22:43 ] - root@gl-master-05 /sdn/2538/uploads/2015 $rm
      'SA_150316_Nasenspray_f'$'\374''r_Erwachsene_Shop.mov'
      <br>
      <br>
      [ 14:23:11 ] - root@gl-master-05&nbsp; ~/tmp/geo-rep/15 $ls
      /brick1/mvol1/2538/uploads/2015/ | perl -ne 'print &quot;$. $_&quot; if
      m/[\x80-\xFF]/'
      <br>
      [ 14:23:55 ] - root@gl-master-05&nbsp; ~/tmp/geo-rep/15 $
      <br>
      [ 14:23:55 ] - root@gl-master-05&nbsp; ~/tmp/geo-rep/15 $ls <i class="moz-txt-slash"><span class="moz-txt-tag">/</span>sdn/2538/uploads/2015/
        | perl -ne 'print &quot;$. $_&quot; if m<span class="moz-txt-tag">/</span></i>[\x80-\xFF]/'
      <br>
      [ 14:24:35 ] - root@gl-master-05&nbsp; ~/tmp/geo-rep/15 $
      <br>
      <br>
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
      <br>
      <br>
      <br>
      <br>
      2 Neue Phaenomene, beide aeussern sich mit der gleichen Meldung in
      /var/log/glusterfs/geo-replication/mvol1_gl-slave-01-int_svol1 :
      <br>
      <br>
      [2021-02-09 09:39:03.984410] I [master(worker
      /brick1/mvol1):1681:crawl] _GMaster: processing xsync changelog
path=/var/lib/misc/gluster/gsyncd/mvol1_gl-slave-01-int_svol1/brick1-mvol1/xsync/XSYNC-CHANGELOG.1612862967<br>
      [2021-02-09 09:39:46.321001] E [syncdutils(worker
      /brick1/mvol1):339:log_raise_exception] &lt;top&gt;: FAIL:
      <br>
      Traceback (most recent call last):
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/syncdutils.py&quot;,
      line 369, in twrap
      <br>
      &nbsp;&nbsp;&nbsp; tf(*aargs)
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/master.py&quot;,
      line 1666, in Xsyncer
      <br>
      &nbsp;&nbsp;&nbsp; self.Xcrawl()
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/master.py&quot;,
      line 1839, in Xcrawl
      <br>
      &nbsp;&nbsp;&nbsp; self.Xcrawl(e, xtr_root)
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/master.py&quot;,
      line 1839, in Xcrawl
      <br>
      &nbsp;&nbsp;&nbsp; self.Xcrawl(e, xtr_root)
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/master.py&quot;,
      line 1839, in Xcrawl
      <br>
      &nbsp;&nbsp;&nbsp; self.Xcrawl(e, xtr_root)
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/master.py&quot;,
      line 1801, in Xcrawl
      <br>
      &nbsp;&nbsp;&nbsp; xte = self.xtime(e)
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/master.py&quot;,
      line 403, in xtime
      <br>
      &nbsp;&nbsp;&nbsp; return self.xtime_low(rsc, path, **opts)
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/master.py&quot;,
      line 170, in xtime_low
      <br>
      &nbsp;&nbsp;&nbsp; xt = rsc.server.xtime(path, self.uuid)
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/resource.py&quot;,
      line 104, in ff
      <br>
      &nbsp;&nbsp;&nbsp; return f(*args)
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/resource.py&quot;,
      line 240, in xtime
      <br>
      &nbsp;&nbsp;&nbsp; 8)
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/libcxattr.py&quot;,
      line 59, in lgetxattr
      <br>
      &nbsp;&nbsp;&nbsp; return gr_query_xattr(cls, path, siz, 'lgetxattr', attr)
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/py2py3.py&quot;,
      line 46, in gr_query_xattr
      <br>
      &nbsp;&nbsp;&nbsp; return cls._query_xattr(path.encode(), size, syscall,
      <br>
      UnicodeEncodeError: 'utf-8' codec can't encode character '\udcfc'
      in position 38: surrogates not allowed
      <br>
      [2021-02-09 09:39:46.601226] I [repce(agent
      /brick1/mvol1):96:service_loop] RepceServer: terminating on
      reaching EOF.
      <br>
      [2021-02-09 09:39:46.607766] I
      [gsyncdstatus(monitor):248:set_worker_status] GeorepStatus: Worker
      Status Change&nbsp;&nbsp;&nbsp; status=Faulty
      <br>
      <br>
      <br>
      2 Unterschiedliche Loesungen. Allgemeines :
      <br>
      <br>
      In <i class="moz-txt-slash"><span class="moz-txt-tag">/</span>var/lib/misc/gluster/gsyncd/mvol1_gl_slave-01-int_svol1/brick1-mvol1/xsync<span class="moz-txt-tag">/</span></i> werden die aktuell
      verarbeiteten XSYNC-CHANGELOG files kopiert und abgearbeitet. ist
      ein file abgearbeitet wird es in ~/archieve.tar verschoben und das
      naechste file ist dran. Das aber nur solange der Knoten im
      hybrid-crawl ist (wie es mit den neuen Servern gl-master-05, -06
      der Fall ist nachdem sie mit add-brick geadded wurden). Laeuft die
      geo-rep in dieser Phase auf einen Fehler, dann wird das genannte
      directory geleert (ausser archive.tar) und fuer den naechsten lauf
      wieder langsam gefuellt...bis changelog-crawl erreicht ist (dann
      /brick1/mvol1/.glusterfs/changelogs/CHANGELOG*).
      <br>
      <br>
      Insofern sollte man unbedingt ein tail -f <i class="moz-txt-slash"><span class="moz-txt-tag">/</span>var/log/glusterfs<span class="moz-txt-tag">/</span></i>.../.../gsyncd.log auf haben,
      um den Zeitpunkt des Fehlers nicht zu verpassen. ggf. die
      log-files temporaer sichern.
      <br>
      <br>
      1. Setzt wohl etwas Glueck voraus :
      <br>
      <br>
      cd <i class="moz-txt-slash"><span class="moz-txt-tag">/</span>var/lib/misc/gluster/gsyncd/mvol1_gl-slave-01-int_svol1/brick1-mvol1/xsync<span class="moz-txt-tag">/</span></i>
      <br>
      <br>
      file XSYNC-CHANGELOG.*
      <br>
      <br>
      Ein file war dabei vom Type UTF-8 Unicode text, alle anderen sind
      ASCII tesxt.
      <br>
      <br>
      [ 11:35:23 ] - root@gl-master-05&nbsp; ~/tmp/geo-rep/1 $file
      XSYNC-CHANGELOG.1612792550XSYNC-CHANGELOG.
      <br>
      XSYNC-CHANGELOG.1612792550: UTF-8 Unicode text
      <br>
      [ 11:36:12 ] - root@gl-master-05&nbsp; ~/tmp/geo-rep/1 $
      <br>
      <br>
      [ 11:34:23 ] - root@gl-master-05&nbsp; ~/tmp/geo-rep/1 $perl -ne 'print
      &quot;$. $_&quot; if m/[\x80-\xFF]/' XSYNC-CHANGELOG.1612792550
      <br>
      4983 E 90778e6b-bd99-4580-9c73-a341281e0aa1 MKNOD 33188 0 0
c2e46ace-2720-424d-93df-d777f6e7de26/005_Ron_AshtangaYogaFuerAnfänger_1209_music_full.mp4<br>
      [ 11:35:23 ] - root@gl-master-05&nbsp; ~/tmp/geo-rep/1 $
      <br>
      <br>
      Das file hat ein 'ä' im Namen, das war der show-stopper,
      umbenennen und es ging weiter.
      <br>
      <br>
      Finden des Files gestaltet sich etwas schwierig, hier aus anderem
      Fehler der geo-rep :
      <br>
      <br>
      [ 14:46:15 ] - root@gl-master-05&nbsp; ~/tmp/geo-rep/12 $perl -ne
      'print &quot;$. $_&quot; if m/[\x80-\xFF]/' XSYNC-CHANGELOG.1612880447
      <br>
      4665 E e0eaeee6-004a-44df-8666-6504a12d6374 MKNOD 33188 0 0
15fc6b30-bc2d-4f77-bdb6-ce7e52797e15/M0301_SHLV_DS_Volumenberechnung-von-Rotationskörpern-um-die-y-Achse.mp4<br>
      [ 14:46:46 ] - root@gl-master-05&nbsp; ~/tmp/geo-rep/12 $
      <br>
      <br>
      <br>
      mysql&gt; select Name,StreamFK from Files where Name like
      '%M0301_SHLV_DS_Volumenberechnung-von-Rotations%';
      <br>
+----------------------------------------------------------------------------------+----------+
      <br>
      | Name | StreamFK |
      <br>
+----------------------------------------------------------------------------------+----------+
      <br>
      |
uploads/M0301_SHLV_DS_Volumenberechnung-von-Rotationskörpern-um-die-y-Achse.mp4
      |&nbsp;&nbsp;&nbsp;&nbsp; 2491 |
      <br>
+----------------------------------------------------------------------------------+----------+
      <br>
      1 row in set (1.68 sec)
      <br>
      <br>
      mysql&gt;
      <br>
      <br>
      StreamFK ist der Ordner in <i class="moz-txt-slash"><span class="moz-txt-tag">/</span>sdn<span class="moz-txt-tag">/</span></i>
      <br>
      <br>
      <br>
      2. erheblich aufwendiger :
      <br>
      <br>
      der Ansatz aus 1. bringt hier nichts, alle XSYNC-CHANGELOG files
      sind vom type Ascii, das Komanndo perl -ne 'print &quot;$. $_&quot; if
      m/[\x80-\xFF]/' XSYNC-CHANGELOG.* foerdert nichts zu tage.
      <br>
      <br>
      Hier wieder den Prozess tracen der auf gsyncd.log zeigt :
      <br>
      <br>
      [ 11:54:05 ] - root@gl-master-05
      /var/log/glusterfs/geo-replication/mvol1_gl-slave-01-int_svol1
      $lsof gsyncd.log
      <br>
      COMMAND&nbsp;&nbsp; PID USER&nbsp;&nbsp; FD&nbsp;&nbsp; TYPE DEVICE SIZE/OFF NODE NAME
      <br>
      python3&nbsp; 13021 root&nbsp;&nbsp;&nbsp; 3w&nbsp;&nbsp; REG&nbsp;&nbsp;&nbsp; 8,2&nbsp; 2530858 9572924 gsyncd.log
      <br>
      python3&nbsp; 32182 root&nbsp;&nbsp;&nbsp; 3w&nbsp;&nbsp; REG&nbsp;&nbsp;&nbsp; 8,2&nbsp; 2530858 9572924 gsyncd.log
      <br>
      python3&nbsp; 32183 root&nbsp;&nbsp;&nbsp; 3w&nbsp;&nbsp; REG&nbsp;&nbsp;&nbsp; 8,2&nbsp; 2530858 9572924 gsyncd.log
      <br>
      [ 11:54:09 ] - root@gl-master-05
      /var/log/glusterfs/geo-replication/mvol1_gl-slave-01-int_svol1 $
      <br>
      <br>
      Der Fehlerintervall lag bei etwa 5 1/2 Minuten, manchmal 10
      Minuten. Der trace wird u.U. ziemlich gross. Wichtig dabei ist,
      den Trace auf die parent pid moeglichst kurz vor error zu starten
      und dann einen ganzen Intervall abzuwarten bevor der trace
      gestoppt wird.
      <br>
      <br>
      Es ist wahrscheinlich auch ausreichend, einen der beiden
      angezeigten follow-prozesse zu tracen, wobei wahrscheinlich ein
      start des trace kurz vor Auftritt des Fehlers reicht, abbruch
      direkt nach error. Muss man halt testen, ein kurzer Blick weist
      darauf hin den 'geschwaetzigeren' der beiden zu tracen.
      <br>
      <br>
      [ 12:02:07 ] - root@gl-master-05&nbsp; ~ $strace -t -f -s 256 -o
      /root/tmp/geo-rep/gsyncd1.out -p13021
      <br>
      <br>
      However, ein paar Eckdaten :
      <br>
      <br>
      [ 10:59:27 ] - root@gl-master-05&nbsp; ~/tmp/geo-rep/11 $ls -lh
      gsyncd1.out
      <br>
      -rw-r--r-- 1 root root 2.1G Feb&nbsp; 9 09:40 gsyncd1.out
      <br>
      [ 12:04:29 ] - root@gl-master-05&nbsp; ~/tmp/geo-rep/11 $cat
      gsyncd1.out | wc -l
      <br>
      15354607
      <br>
      [ 12:04:37 ] - root@gl-master-05&nbsp; ~/tmp/geo-rep/11 $
      <br>
      <br>
      Der Error-String ist im trace output sichtbar :
      <br>
      <br>
      [ 12:05:52 ] - root@gl-master-05&nbsp; ~/tmp/geo-rep/11 $grep
      UnicodeEncodeError gsyncd1.out
      <br>
      32183 09:39:46 write(2, &quot;failed with UnicodeEncodeError.\n&quot;, 32) =
      32
      <br>
      [ 12:06:14 ] - root@gl-master-05&nbsp; ~/tmp/geo-rep/11 $
      <br>
      <br>
      <br>
      Am besten man naehert sich dem vermuteten Ereignis vom
      Fehlerzeitpunkt rueckwaerts und schaut sich die letzten lgetxattr
      calls vor Fehler an. In diesem Fall wird gerade der Pfad
      /brick1/mvol1/2491/uploads/portale abgearbeitet, dann kein
      lgetxattr mehr bis zum Fehler :
      <br>
      <br>
      [ 12:08:42 ] - root@gl-master-05&nbsp; ~/tmp/geo-rep/11 $grep 09:39:46
      gsyncd1.out | grep lgetxattr | tail -10
      <br>
      32183 09:39:46
lgetxattr(&quot;/brick1/mvol1/./2491/uploads/portale/Starthilfe_Login_ICAS7.mp4&quot;,
      &quot;trusted.gfid&quot;, &quot;\234\352\274\301\v\220O\223\225\r7H\325p\5\231&quot;,
      16) = 16
      <br>
      32183 09:39:46
      lgetxattr(&quot;/brick1/mvol1/./2491/uploads/portale/Terminhistorie.mp4&quot;,
      &quot;trusted.glusterfs.2f5de6e4-66de-40a7-9f24-4762aad3ca96.xtime&quot;,
      &quot;_\354\255\304\0\3&amp;\370&quot;, 8) = 8
      <br>
      32183 09:39:46
      lgetxattr(&quot;/brick1/mvol1/./2491/uploads/portale/Terminhistorie.mp4&quot;,
      &quot;trusted.gfid&quot;, &quot;\20dI\7f$M0\253\244\306\20\201\23T\3&quot;, 16) = 16
      <br>
      32183 09:39:46
      lgetxattr(&quot;/brick1/mvol1/./2491/uploads/portale/Begruessungsanruf.mp4&quot;,
      &quot;trusted.glusterfs.2f5de6e4-66de-40a7-9f24-4762aad3ca96.xtime&quot;,
      &quot;_\354\255\304\0\n\377\252&quot;, 8) = 8
      <br>
      32183 09:39:46
      lgetxattr(&quot;/brick1/mvol1/./2491/uploads/portale/Begruessungsanruf.mp4&quot;,
      &quot;trusted.gfid&quot;, &quot;U;;\254\6RJC\270:\302\t\317ZJ\&quot;&quot;, 16) = 16
      <br>
      32183 09:39:46
      lgetxattr(&quot;/brick1/mvol1/./2491/uploads/portale/Part_2.mp4&quot;,
      &quot;trusted.glusterfs.2f5de6e4-66de-40a7-9f24-4762aad3ca96.xtime&quot;,
      &quot;_\354\255\305\0\4\265\2&quot;, 8) = 8
      <br>
      32183 09:39:46
      lgetxattr(&quot;/brick1/mvol1/./2491/uploads/portale/Part_2.mp4&quot;,
      &quot;trusted.gfid&quot;, &quot;\266\r\226\16\224vE&gt;\232\255k\250\205z\3411&quot;,
      16) = 16
      <br>
      32183 09:39:46
      lgetxattr(&quot;/brick1/mvol1/./2491/uploads/portale/Part_3.mp4&quot;,
      &quot;trusted.glusterfs.2f5de6e4-66de-40a7-9f24-4762aad3ca96.xtime&quot;,
      &quot;_\354\255\305\0\4\271\24&quot;, 8) = 8
      <br>
      32183 09:39:46
      lgetxattr(&quot;/brick1/mvol1/./2491/uploads/portale/Part_3.mp4&quot;,
      &quot;trusted.gfid&quot;, &quot;\244D\204\364\347lAK\237\265\1:\225Q^y&quot;, 16) = 16
      <br>
      32183 09:39:46 read(9, &quot;&nbsp;&nbsp;&nbsp; ex = sys.exc_info()[1]\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
      ex.errno in (ENOENT, ENODATA):\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return False\n
      else:\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; raise\n\n&nbsp;&nbsp;&nbsp; @classmethod\n
      @_pathguard\n&nbsp;&nbsp;&nbsp; def gfid(cls, path):\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; buf =
      errno_wrap(Xattr.lgetxattr, [path, cls.GF&quot;..., 8192) = 8192
      <br>
      [ 12:16:11 ] - root@gl-master-05&nbsp; ~/tmp/geo-rep/11 $
      <br>
      <br>
      [ 10:55:53 ] - root@gl-master-05&nbsp; ~/tmp/geo-rep/11 $ls <i class="moz-txt-slash"><span class="moz-txt-tag">/</span>sdn/2491/uploads/portale<span class="moz-txt-tag">/</span></i>
      <br>
      <br>
      &nbsp;Film_Tagung.avi 'M'$'\374''ller_M_Wild_Card_II.mp4'
      Schambach_Tipp.wmv Vorstellung_Online_Lerncenter_Carlsson.mp4
      <br>
      &nbsp;Anwesenheits-_und_Honorarkorrektur.mp4
      Glugovsky_bestes_Gespann.mp4 'M'$'\374''ller_M_Wild_Card.mp4'&nbsp;&nbsp;
      ...
      <br>
      <br>
      Da sind die scheiss files. soll wohl Müller heissen. backup,
      rename, delete. Geo Rep geht weiter.
      <br>
      <br>
      <br>
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
      <br>
      <br>
      <br>
      <br>
      Hi,
      <br>
      <br>
      neuer geo-rep error und leitfaden zur loesung des problems...
      fuers archiv, kann immer mal wieder auftreten. Ursache ist ein
      Soderzeichen in einem Filename das ueber proftpd reinkam.
      <br>
      <br>
      gr. d.
      <br>
      <br>
      <br>
      <br>
      geo-rep error : &quot;UnicodeDecodeError: 'utf-8' codec can't decode
      byte 0xef in position 140: invalid continuation byte&quot;
      <br>
      <br>
      erster Fehler auf gl-master-02 umd 20:47:38, Ursache offenbar in
      /brick1/mvol1 von gl-master-01,-02 :
      <br>
      <br>
/var/log/glusterfs/geo-replication/mvol1_gl-slave-01-int_svol1/gsynd.log
      auf gl-master-02:
      <br>
      <br>
      [2020-12-23 20:47:38.740712] E [syncdutils(worker
      /brick1/mvol1):339:log_raise_exception] &lt;top&gt;: FAIL:
      <br>
      Traceback (most recent call last):
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/gsyncd.py&quot;,
      line 332, in main
      <br>
      &nbsp;&nbsp;&nbsp; func(args)
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/subcmds.py&quot;,
      line 86, in subcmd_worker
      <br>
      &nbsp;&nbsp;&nbsp; local.service_loop(remote)
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/resource.py&quot;,
      line 1315, in service_loop
      <br>
      &nbsp;&nbsp;&nbsp; g2.crawlwrap()
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/master.py&quot;,
      line 602, in crawlwrap
      <br>
      &nbsp;&nbsp;&nbsp; self.crawl()
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/master.py&quot;,
      line 1518, in crawl
      <br>
      &nbsp;&nbsp;&nbsp; self.changelogs_batch_process(changes)
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/master.py&quot;,
      line 1492, in changelogs_batch_process
      <br>
      &nbsp;&nbsp;&nbsp; self.process(batch)
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/master.py&quot;,
      line 1327, in process
      <br>
      &nbsp;&nbsp;&nbsp; self.process_change(change, done, retry)
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/master.py&quot;,
      line 1018, in process_change
      <br>
      &nbsp;&nbsp;&nbsp; clist = f.readlines()
      <br>
      &nbsp; File &quot;/usr/lib/python3.6/codecs.py&quot;, line 321, in decode
      <br>
      &nbsp;&nbsp;&nbsp; (result, consumed) = self._buffer_decode(data, self.errors,
      final)
      <br>
      UnicodeDecodeError: 'utf-8' codec can't decode byte 0xef in
      position 140: invalid continuation byte
      <br>
      [2020-12-23 20:47:39.687652] I [repce(agent
      /brick1/mvol1):96:service_loop] RepceServer: terminating on
      reaching EOF.
      <br>
      [2020-12-23 20:47:39.818266] I
      [gsyncdstatus(monitor):248:set_worker_status] GeorepStatus: Worker
      Status Change status=Faulty
      <br>
      [2020-12-23 20:47:50.229159] I
      [gsyncdstatus(monitor):248:set_worker_status] GeorepStatus: Worker
      Status Change status=Initializing...
      <br>
      [2020-12-23 20:47:50.237147] I [monitor(monitor):159:monitor]
      Monitor: starting gsyncd worker brick=/brick1/mvol1&nbsp;&nbsp;&nbsp;&nbsp;
      slave_node=gl-slave-04-int
      <br>
      <br>
      Fehler wiederholt sich laufend. Trace auf log-file und deren
      child-prozesse, parent-pid of all scheint 8654 :
      <br>
      <br>
      [ 05:32:10 ] - root@gl-master-01
      /var/log/glusterfs/geo-replication/mvol1_gl-slave-01-int_svol1
      $lsof gsyncd.log
      <br>
      COMMAND&nbsp; PID USER&nbsp;&nbsp; FD&nbsp;&nbsp; TYPE DEVICE SIZE/OFF NODE NAME
      <br>
      python3 8654 root&nbsp;&nbsp;&nbsp; 3w&nbsp;&nbsp; REG&nbsp;&nbsp;&nbsp; 8,2&nbsp; 7030509 8389931 gsyncd.log
      <br>
      python3 8671 root&nbsp;&nbsp;&nbsp; 3w&nbsp;&nbsp; REG&nbsp;&nbsp;&nbsp; 8,2&nbsp; 7030509 8389931 gsyncd.log
      <br>
      python3 8672 root&nbsp;&nbsp;&nbsp; 3w&nbsp;&nbsp; REG&nbsp;&nbsp;&nbsp; 8,2&nbsp; 7030509 8389931 gsyncd.log
      <br>
      <br>
      Ein 'tail -f gsyncd.log' aufmachen, strace starten und wenigstens
      ein Fehlerintervall abwarten :
      <br>
      <br>
      [ 05:34:42 ] - root@gl-master-01&nbsp; ~/tmp/geo-rep $strace -t -f -s
      256 -o /root/tmp/geo-rep/gsyncd2.out -p8654
      <br>
      [ 05:36:15 ] - root@gl-master-01&nbsp; ~/tmp/geo-rep $vi gsyncd2.out
      <br>
      :se nu
      <br>
      <br>
      129573 17407 05:13:14 write(2, &quot;failed with
      UnicodeDecodeError.\n&quot;, 32) = 32
      <br>
      <br>
      129337 17407 05:13:14 write(3, &quot;[2020-12-24 05:13:14.181362] E
      [syncdutils(worker /brick1/mvol1):339:log_raise_exception]
      &lt;top&gt;: FAIL: \nTraceback (most recent call last):\n&nbsp; File
      \&quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/gs
      yncd.py\&quot;, line 332, in main\n&nbsp;&nbsp;&nbsp; func(args)\n&nbsp; File \&quot;/u&quot;...,
      1400) = 1400
      <br>
      <br>
      Die Error-Meldung wird von child-prozess 17407 erzeugt, sind aber
      keine weiteren Hinweise im direkten Umfeld zu sehen
      <br>
      <br>
      In Zeile 129337 vom strace-output steht der Fehler 'line 332'
      <br>
      <br>
      Rund 75 Zeilen vorher findet sich ein Hinweis auf eine konkrete
      Datei, man beachte den Filename, er enthaelt 'Tcha\357kovski' und
      koennte Ursache fuer den decode-error :
      <br>
      <br>
      129262 17407 05:13:14 read(9, &quot;E
      606ceb99-6410-40e3-a6f8-b2148a521239 CREATE 33188 2001 2001
14770ef4-f232-4d05-b572-e0dcb38213eb/5881_extrait_en_Euroarts_A_Swan_Lake_Tcha\357kovski_Alexander_Ekman_TheNorwegianNationalBallet_DanceOfTheLittleSwans_IL_16_9_HD.mp4\nD
      606ceb99-6410-40e3-a6f8-b2&quot;..., 8192) = 463
      <br>
      <br>
      <br>
      File kam ueber proftpd auf gluster-client-02 rein und enthaelt ein
      Sonderzeichen in 'Tcha&lt;i&gt;kovski' :
      <br>
      <br>
      [ 06:10:46 ] - root@gluster-client-02 /data/logs/proftpd $grep -i
      swan_lake_tcha extended.log
      <br>
      80.15.161.141 UNKNOWN vod-medici [23/Dec/2020:12:30:31 +0000]
      &quot;STOR /5881_full_en_Euroarts_A_Swan_Lake_Tchaïkovski_-<span class="moz-txt-underscore"><span class="moz-txt-tag">_</span>Alexander_Ekman<span class="moz-txt-tag">_</span></span>-_The_Norwegian_National_Ballet_IL_16_9_HD.mp4&quot;
      226 9985342580
      <br>
      80.15.161.141 UNKNOWN vod-medici [23/Dec/2020:12:30:34 +0000]
      &quot;SIZE /5881_full_en_Euroarts_A_Swan_Lake_Tchaïkovski_-<span class="moz-txt-underscore"><span class="moz-txt-tag">_</span>Alexander_Ekman<span class="moz-txt-tag">_</span></span>-_The_Norwegian_National_Ballet_IL_16_9_HD.mp4&quot;
      213 -
      <br>
      80.15.161.141 UNKNOWN vod-medici [23/Dec/2020:12:30:54 +0000]
      &quot;RETR /5881_full_en_Euroarts_A_Swan_Lake_Tchaïkovski_-<span class="moz-txt-underscore"><span class="moz-txt-tag">_</span>Alexander_Ekman<span class="moz-txt-tag">_</span></span>-_The_Norwegian_National_Ballet_IL_16_9_HD.mp4&quot;
      426 78840
      <br>
      Binary file extended.log matches
      <br>
      [ 06:11:35 ] - root@gluster-client-02 /data/logs/proftpd $
      <br>
      <br>
      <br>
      anders als erwartet ist das file nicht auf /brick1/mvol1, sondern
      auf /brick2/mvol1/ :
      <br>
      <br>
      -rw-r--r-- 2 2001 2001 9985342580 Dec 23 12:30
/brick2/mvol1/9378/uploads/2019/5881_full_en_Euroarts_A_Swan_Lake_Tchaïkovski_-<span class="moz-txt-underscore"><span class="moz-txt-tag">_</span>Alexander_Ekman<span class="moz-txt-tag">_</span></span>-_The_Norwegian_National_Ballet_IL_16_9_HD.mp4
      <br>
      <br>
      <br>
      Loeschen des files bringt nichts, es taucht weiterhin im strace
      auf. Im trace ist vor dem ersten Auftreten von 'Swan_Lake' eine
      CHANGELOG.1608756454 zu sehen. Da sieht man was das Sonderzeichen
      anrichtet...Zeilenumbruch an der Stelle des Sonerzeichen.
      <br>
      <br>
      [ 08:09:47 ] - root@gl-master-01
      /brick2/mvol1/.glusterfs/changelogs $strings
      /brick1/mvol1/.glusterfs/changelogs/CHANGELOG.1608756454
      <br>
      GlusterFS Changelog | version: v1.2 | encoding : 2
      <br>
      E606ceb99-6410-40e3-a6f8-b2148a521239
      <br>
      33188
      <br>
      2001
      <br>
      2001
      <br>
14770ef4-f232-4d05-b572-e0dcb38213eb/5881_extrait_en_Euroarts_A_Swan_Lake_Tcha
      <br>
kovski_Alexander_Ekman_TheNorwegianNationalBallet_DanceOfTheLittleSwans_IL_16_9_HD.mp4
      <br>
      D606ceb99-6410-40e3-a6f8-b2148a521239
      <br>
      E238fe8f1-5469-4886-855e-9c225f04f11b
      <br>
      16877
      <br>
      aea0a0a6-69a5-4c31-bf81-a30ee1fb0f8c/2458246
      <br>
      M1387ea1f-5a24-45a7-ac93-942dba49c455
      <br>
      M238fe8f1-5469-4886-855e-9c225f04f11b
      <br>
      [ 08:10:46 ] - root@gl-master-01
      /brick2/mvol1/.glusterfs/changelogs $
      <br>
      <br>
      [ 08:46:35 ] - root@gl-master-02&nbsp; ~/tmp/geo-rep $strings
      CHANGELOG.1608756455
      <br>
      GlusterFS Changelog | version: v1.2 | encoding : 2
      <br>
      E606ceb99-6410-40e3-a6f8-b2148a521239
      <br>
      33188
      <br>
      2001
      <br>
      2001
      <br>
14770ef4-f232-4d05-b572-e0dcb38213eb/5881_extrait_en_Euroarts_A_Swan_Lake_Tcha
      <br>
kovski_Alexander_Ekman_TheNorwegianNationalBallet_DanceOfTheLittleSwans_IL_16_9_HD.mp4
      <br>
      D606ceb99-6410-40e3-a6f8-b2148a521239
      <br>
      E238fe8f1-5469-4886-855e-9c225f04f11b
      <br>
      16877
      <br>
      aea0a0a6-69a5-4c31-bf81-a30ee1fb0f8c/2458246
      <br>
      M1387ea1f-5a24-45a7-ac93-942dba49c455
      <br>
      M238fe8f1-5469-4886-855e-9c225f04f11b
      <br>
      [ 08:46:39 ] - root@gl-master-02&nbsp; ~/tmp/geo-rep $
      <br>
      <br>
      Die betreffende changelog-Datei ist die zweite in der
      chronologischen Auflistung aller angefassten changelog-dateien im
      straceoutput, auch darueber kann man sich annaehern :
      <br>
      <br>
      [ 08:39:25 ] - root@gl-master-01&nbsp; ~/tmp/geo-rep $cat gsyncd6.out |
      grep CHANGELOG. | grep &quot; stat&quot; | grep &quot;<i class="moz-txt-slash"><span class="moz-txt-tag">/</span>brick1/mvol1/.glusterfs<span class="moz-txt-tag">/</span></i>&quot; | wc -l
      <br>
      178
      <br>
      [ 08:39:33 ] - root@gl-master-01&nbsp; ~/tmp/geo-rep $
      <br>
      <br>
      [ 08:37:06 ] - root@gl-master-01&nbsp; ~/tmp/geo-rep $cat gsyncd6.out |
      grep CHANGELOG. | grep &quot; stat&quot; | grep &quot;<i class="moz-txt-slash"><span class="moz-txt-tag">/</span>brick1/mvol1/.glusterfs<span class="moz-txt-tag">/</span></i>&quot; | awk '{print $3}' | cut
      -f2- -d. | cut -f1 -d\&quot; | sort -n | more
      <br>
      glusterfs/changelogs/CHANGELOG.1608756440
      <br>
      glusterfs/changelogs/CHANGELOG.1608756454###
      <br>
      glusterfs/changelogs/CHANGELOG.1608756468
      <br>
      glusterfs/changelogs/CHANGELOG.1608756483
      <br>
      glusterfs/changelogs/CHANGELOG.1608756498
      <br>
      ...
      <br>
      <br>
      <br>
      Loesungsansatz, unkonventionell : verschieben der entsprechenden
      changelog datei raus aus <i class="moz-txt-slash"><span class="moz-txt-tag">/</span>brick1/mvol1/.glusterfs/changelogs<span class="moz-txt-tag">/</span></i> und checken ob der Fehler
      uebersprungen wird :
      <br>
      <br>
      [ 09:19:02 ] - root@gl-master-01
      /brick1/mvol1/.glusterfs/changelogs $mv CHANGELOG.1608756454 ..
      <br>
      <br>
      Danach faengt sich die geo-rep kurz und laeuft auf aehnlichen
      Fehler, diesmal an Posistion 124 :
      <br>
      <br>
      2020-12-24 09:16:41.303597] E [syncdutils(worker
      /brick1/mvol1):339:log_raise_exception] &lt;top&gt;: FAIL:
      <br>
      Traceback (most recent call last):
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/gsyncd.py&quot;,
      line 332, in main
      <br>
      &nbsp;&nbsp;&nbsp; func(args)
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/subcmds.py&quot;,
      line 86, in subcmd_worker
      <br>
      &nbsp;&nbsp;&nbsp; local.service_loop(remote)
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/resource.py&quot;,
      line 1297, in service_loop
      <br>
      &nbsp;&nbsp;&nbsp; g3.crawlwrap(oneshot=True)
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/master.py&quot;,
      line 602, in crawlwrap
      <br>
      &nbsp;&nbsp;&nbsp; self.crawl()
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/master.py&quot;,
      line 1592, in crawl
      <br>
      &nbsp;&nbsp;&nbsp; self.changelogs_batch_process(changes)
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/master.py&quot;,
      line 1492, in changelogs_batch_process
      <br>
      &nbsp;&nbsp;&nbsp; self.process(batch)
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/master.py&quot;,
      line 1327, in process
      <br>
      &nbsp;&nbsp;&nbsp; self.process_change(change, done, retry)
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/master.py&quot;,
      line 1018, in process_change
      <br>
      &nbsp;&nbsp;&nbsp; clist = f.readlines()
      <br>
      &nbsp; File &quot;/usr/lib/python3.6/codecs.py&quot;, line 321, in decode
      <br>
      &nbsp;&nbsp;&nbsp; (result, consumed) = self._buffer_decode(data, self.errors,
      final)
      <br>
      UnicodeDecodeError: 'utf-8' codec can't decode byte 0xef in
      position 124: invalid continuation byte
      <br>
      [2020-12-24 09:16:41.374715] I [repce(agent
      /brick1/mvol1):96:service_loop] RepceServer: terminating on
      reaching EOF.
      <br>
      [2020-12-24 09:16:42.168337] I [monitor(monitor):280:monitor]
      Monitor: worker died in startup phase&nbsp;&nbsp;&nbsp; brick=/brick1/mvol1
      <br>
      <br>
      Danach switched die geo-rep 2-3 mal hin und her und bevor strace
      gestartet werden kann scheint sich die geo-rep 'gefangen' zu
      haben. kein switch mehr und status history crawl :
      <br>
      <br>
      [ 09:23:51 ] - root@gl-master-01
      /brick1/mvol1/.glusterfs/changelogs $gluster volume
      geo-replication mvol1 gl-slave-01-int::svol1 status
      <br>
      <br>
      MASTER NODE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MASTER VOL&nbsp;&nbsp;&nbsp; MASTER BRICK SLAVE USER&nbsp;&nbsp;&nbsp;
      SLAVE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SLAVE NODE STATUS CRAWL STATUS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
      LAST_SYNCED
      <br>
--------------------------------------------------------------------------------------------------------------------------------------------------------------
      <br>
      gl-master-01-int&nbsp;&nbsp;&nbsp; mvol1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /brick1/mvol1 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
      gl-slave-01-int::svol1&nbsp;&nbsp;&nbsp; gl-slave-03-int Active&nbsp;&nbsp;&nbsp;&nbsp; History
      Crawl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2020-12-23 20:47:19
      <br>
      gl-master-01-int&nbsp;&nbsp;&nbsp; mvol1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /brick2/mvol1 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
      gl-slave-01-int::svol1&nbsp;&nbsp;&nbsp; gl-slave-03-int Active&nbsp;&nbsp;&nbsp;&nbsp; Changelog
      Crawl&nbsp;&nbsp;&nbsp; 2020-12-24 09:24:59
      <br>
      gl-master-04-int&nbsp;&nbsp;&nbsp; mvol1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /brick1/mvol1 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
      gl-slave-01-int::svol1&nbsp;&nbsp;&nbsp; gl-slave-03-int Passive&nbsp;&nbsp;&nbsp;
      N/A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; N/A
      <br>
      gl-master-04-int&nbsp;&nbsp;&nbsp; mvol1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /brick2/mvol1 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
      gl-slave-01-int::svol1&nbsp;&nbsp;&nbsp; gl-slave-03-int Passive&nbsp;&nbsp;&nbsp;
      N/A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; N/A
      <br>
      gl-master-02-int&nbsp;&nbsp;&nbsp; mvol1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /brick1/mvol1 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
      gl-slave-01-int::svol1&nbsp;&nbsp;&nbsp; gl-slave-04-int Passive&nbsp;&nbsp;&nbsp;
      N/A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; N/A
      <br>
      gl-master-02-int&nbsp;&nbsp;&nbsp; mvol1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /brick2/mvol1 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
      gl-slave-01-int::svol1&nbsp;&nbsp;&nbsp; gl-slave-04-int Passive&nbsp;&nbsp;&nbsp;
      N/A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; N/A
      <br>
      gl-master-03-int&nbsp;&nbsp;&nbsp; mvol1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /brick1/mvol1 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
      gl-slave-01-int::svol1&nbsp;&nbsp;&nbsp; gl-slave-01-int Active&nbsp;&nbsp;&nbsp;&nbsp; Changelog
      Crawl&nbsp;&nbsp;&nbsp; 2020-12-24 09:25:18
      <br>
      gl-master-03-int&nbsp;&nbsp;&nbsp; mvol1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /brick2/mvol1 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
      gl-slave-01-int::svol1&nbsp;&nbsp;&nbsp; gl-slave-01-int Active&nbsp;&nbsp;&nbsp;&nbsp; Changelog
      Crawl&nbsp;&nbsp;&nbsp; 2020-12-24 09:25:14
      <br>
      [ 09:25:26 ] - root@gl-master-01
      /brick1/mvol1/.glusterfs/changelogs $
      <br>
      <br>
      <br>
      Nach der ganzen Aktion muss die CHANGELOG.1608756454 auf Inhalt
      ausgewertet und ueberprueft werden, ob alles geo-repliziert wurde.
      <br>
      <br>
      Error taucht spaeter wieder auf ...in position 124: ... Recherche
      nach gleichem Prinzip bringt wieder den 'Swan_Lake' zum vorschein
      :
      <br>
      <br>
      [ 09:39:35 ] - root@gl-master-01&nbsp; ~/tmp/geo-rep $cat gsyncd7.out |
      grep CHANGELOG. | grep &quot; stat&quot; | grep &quot;<i class="moz-txt-slash"><span class="moz-txt-tag">/</span>brick1/mvol1/.glusterfs<span class="moz-txt-tag">/</span></i>&quot; | awk '{print $3}' | cut
      -f2- -d. | cut -f1 -d\&quot; | sort -n | head -5
      <br>
      glusterfs/changelogs/CHANGELOG.1608757775
      <br>
      glusterfs/changelogs/CHANGELOG.1608757789
      <br>
      glusterfs/changelogs/CHANGELOG.1608757803
      <br>
      glusterfs/changelogs/CHANGELOG.1608757817
      <br>
      glusterfs/changelogs/CHANGELOG.1608757831
      <br>
      [ 09:40:18 ] - root@gl-master-01&nbsp; ~/tmp/geo-rep $strings
      CHANGELOG.1608757803
      <br>
      GlusterFS Changelog | version: v1.2 | encoding : 2
      <br>
      E606ceb99-6410-40e3-a6f8-b2148a521239
      <br>
14770ef4-f232-4d05-b572-e0dcb38213eb/5881_extrait_en_Euroarts_A_Swan_Lake_Tcha
      <br>
kovski_Alexander_Ekman_TheNorwegianNationalBallet_DanceOfTheLittleSwans_IL_16_9_HD.mp4
      <br>
      [ 09:40:21 ] - root@gl-master-01&nbsp; ~/tmp/geo-rep $
      <br>
      <br>
      [ 09:53:40 ] - root@gl-master-01
      /brick1/mvol1/.glusterfs/changelogs $mv CHANGELOG.1608757803 ..
      <br>
      <br>
      <br>
      danach gehts erst mal weiter... beobachten.
      <br>
      <br>
      <br>
      <br>
    </div>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 26.02.21 11:35, Andreas Kirbach
      wrote:<br>
    </div>
    <blockquote type="cite" cite="mid:19df5c46-bf61-2ddc-b44e-1cef44cd3a2e@forumhome.com">Hi
      everyone,
      <br>
      <br>
      when trying starting a freshly created geo-replication session I
      do get the following error:
      <br>
      ---
      <br>
      [2021-02-26 10:12:38.376731] E [syncdutils(worker
      /redacted/brick/path):363:log_raise_exception] &lt;top&gt;: FAIL:
      <br>
      Traceback (most recent call last):
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/syncdutils.py&quot;,
      line 393, in twrap
      <br>
      &nbsp;&nbsp;&nbsp; tf(*aargs)
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/master.py&quot;,
      line 1672, in Xsyncer
      <br>
      &nbsp;&nbsp;&nbsp; self.Xcrawl()
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/master.py&quot;,
      line 1845, in Xcrawl
      <br>
      &nbsp;&nbsp;&nbsp; self.Xcrawl(e, xtr_root)
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/master.py&quot;,
      line 1845, in Xcrawl
      <br>
      &nbsp;&nbsp;&nbsp; self.Xcrawl(e, xtr_root)
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/master.py&quot;,
      line 1845, in Xcrawl
      <br>
      &nbsp;&nbsp;&nbsp; self.Xcrawl(e, xtr_root)
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/master.py&quot;,
      line 1845, in Xcrawl
      <br>
      &nbsp;&nbsp;&nbsp; self.Xcrawl(e, xtr_root)
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/master.py&quot;,
      line 1807, in Xcrawl
      <br>
      &nbsp;&nbsp;&nbsp; xte = self.xtime(e)
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/master.py&quot;,
      line 405, in xtime
      <br>
      &nbsp;&nbsp;&nbsp; return self.xtime_low(rsc, path, **opts)
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/master.py&quot;,
      line 172, in xtime_low
      <br>
      &nbsp;&nbsp;&nbsp; xt = rsc.server.xtime(path, self.uuid)
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/resource.py&quot;,
      line 105, in ff
      <br>
      &nbsp;&nbsp;&nbsp; return f(*args)
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/resource.py&quot;,
      line 241, in xtime
      <br>
      &nbsp;&nbsp;&nbsp; 8)
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/libcxattr.py&quot;,
      line 59, in lgetxattr
      <br>
      &nbsp;&nbsp;&nbsp; return gr_query_xattr(cls, path, siz, 'lgetxattr', attr)
      <br>
      &nbsp; File
      &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/py2py3.py&quot;,
      line 46, in gr_query_xattr
      <br>
      &nbsp;&nbsp;&nbsp; return cls._query_xattr(path.encode(), size, syscall,
      <br>
      UnicodeEncodeError: 'utf-8' codec can't encode character '\udcfc'
      in position 78: surrogates not allowed
      <br>
      [2021-02-26 10:12:38.885995] I [monitor(monitor):228:monitor]
      Monitor: worker died in startup phase
      [{brick=/redacted/brick/path}]
      <br>
    </blockquote>
    <pre class="moz-signature" cols="72">
</pre>
  </body>
</html>