Re: AttributeError: python: undefined symbol: gf_changelog_register

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello.

Tnx for your answer.

I have installed libgfchangelog in all nodes, it is probably a missing dependency on OpenSuSE for the Gluster rpm (the libgfchangelog rpm was not installed automatically).
 
However I still have an issue with the changelog replication mode

[2015-05-27 12:18:37.475994] I [monitor(monitor):222:distribute] <top>: slave bricks: [{'host': 'gluster3.marcobaldo.ch', 'dir': '/gluster_slave'}]
[2015-05-27 12:18:37.476838] I [monitor(monitor):238:distribute] <top>: worker specs: [('/gluster', 'ssh://root@xxxxxxxxxxxxxxxxxxxxxx:gluster://localhost:volume1_slave')]
[2015-05-27 12:18:37.477180] I [monitor(monitor):81:set_state] Monitor: new state: Initializing...
[2015-05-27 12:18:37.492440] I [monitor(monitor):129:monitor] Monitor: ------------------------------------------------------------
[2015-05-27 12:18:37.492871] I [monitor(monitor):130:monitor] Monitor: starting gsyncd worker
[2015-05-27 12:18:37.582231] I [gsyncd(/gluster):532:main_i] <top>: syncing: gluster://localhost:volume1 -> ssh://root@xxxxxxxxxxxxxxxxxxxxxx:gluster://localhost:volume1_slave
[2015-05-27 12:18:41.440675] I [master(/gluster):58:gmaster_builder] <top>: setting up xsync change detection mode
[2015-05-27 12:18:41.441387] I [master(/gluster):357:__init__] _GMaster: using 'rsync' as the sync engine
[2015-05-27 12:18:41.443038] I [master(/gluster):58:gmaster_builder] <top>: setting up changelog change detection mode
[2015-05-27 12:18:41.443597] I [master(/gluster):357:__init__] _GMaster: using 'rsync' as the sync engine
[2015-05-27 12:18:41.445401] I [master(/gluster):1103:register] _GMaster: xsync temp directory: /var/run/gluster/volume1/ssh%3A%2F%2Froot%40192.168.178.233%3Agluster%3A%2F%2F127.0.0.1%3Avolume1_slave/1077eb0027f1f616115bcb74a330d1c2/xsync
[2015-05-27 12:18:51.463219] I [master(/gluster):682:fallback_xsync] _GMaster: falling back to xsync mode
[2015-05-27 12:18:51.478179] I [syncdutils(/gluster):192:finalize] <top>: exiting.
[2015-05-27 12:18:52.455018] I [monitor(monitor):157:monitor] Monitor: worker(/gluster) died in startup phase
[2015-05-27 12:18:52.455300] I [monitor(monitor):81:set_state] Monitor: new state: faulty
[2015-05-27 12:19:02.475231] I [monitor(monitor):129:monitor] Monitor: ------------------------------------------------------------
[2015-05-27 12:19:02.475580] I [monitor(monitor):130:monitor] Monitor: starting gsyncd worker
[2015-05-27 12:19:02.582557] I [gsyncd(/gluster):532:main_i] <top>: syncing: gluster://localhost:volume1 -> ssh://root@xxxxxxxxxxxxxxxxxxxxxx:gluster://localhost:volume1_slave
[2015-05-27 12:19:05.739321] I [master(/gluster):58:gmaster_builder] <top>: setting up xsync change detection mode
[2015-05-27 12:19:05.739571] I [master(/gluster):357:__init__] _GMaster: using 'rsync' as the sync engine
[2015-05-27 12:19:05.740775] I [master(/gluster):58:gmaster_builder] <top>: setting up xsync change detection mode
[2015-05-27 12:19:05.741525] I [master(/gluster):357:__init__] _GMaster: using 'rsync' as the sync engine
[2015-05-27 12:19:05.744210] I [master(/gluster):1103:register] _GMaster: xsync temp directory: /var/run/gluster/volume1/ssh%3A%2F%2Froot%40192.168.178.233%3Agluster%3A%2F%2F127.0.0.1%3Avolume1_slave/1077eb0027f1f616115bcb74a330d1c2/xsync
[2015-05-27 12:19:05.744954] I [master(/gluster):1103:register] _GMaster: xsync temp directory: /var/run/gluster/volume1/ssh%3A%2F%2Froot%40192.168.178.233%3Agluster%3A%2F%2F127.0.0.1%3Avolume1_slave/1077eb0027f1f616115bcb74a330d1c2/xsync
[2015-05-27 12:19:05.752686] I [master(/gluster):421:crawlwrap] _GMaster: primary master with volume id 0952d1ce-f62c-40b6-809a-4e193db0f1f9 ...
[2015-05-27 12:19:05.780159] W [master(/gluster):327:get_initial_crawl_data] _GMaster: Creating new gconf.state_detail_file.
[2015-05-27 12:19:05.780477] I [master(/gluster):432:crawlwrap] _GMaster: crawl interval: 60 seconds
[2015-05-27 12:19:05.781547] I [master(/gluster):912:update_worker_status] _GMaster: Creating new /var/lib/glusterd/geo-replication/volume1_gluster3.marcobaldo.ch_volume1_slave/_gluster.status
[2015-05-27 12:19:05.799737] I [master(/gluster):1124:crawl] _GMaster: starting hybrid crawl...
[2015-05-27 12:19:07.812315] I [master(/gluster):1133:crawl] _GMaster: processing xsync changelog /var/run/gluster/volume1/ssh%3A%2F%2Froot%40192.168.178.233%3Agluster%3A%2F%2F127.0.0.1%3Avolume1_slave/1077eb0027f1f616115bcb74a330d1c2/xsync/XSYNC-CHANGELOG.1432721945
[2015-05-27 12:20:02.796933] I [monitor(monitor):81:set_state] Monitor: new state: Stable
[2015-05-27 12:24:41.907495] I [master(/gluster):1133:crawl] _GMaster: processing xsync changelog /var/run/gluster/volume1/ssh%3A%2F%2Froot%40192.168.178.233%3Agluster%3A%2F%2F127.0.0.1%3Avolume1_slave/1077eb0027f1f616115bcb74a330d1c2/xsync/XSYNC-CHANGELOG.1432721948

With xsync it works (fallback)

# gluster volume geo-replication volume1 gluster3.marcobaldo.ch::volume1_slave status
 
MASTER NODE    MASTER VOL    MASTER BRICK    SLAVE                                    STATUS     CHECKPOINT STATUS    CRAWL STATUS       
-----------------------------------------------------------------------------------------------------------------------------------
fs1            volume1       /gluster        gluster3.marcobaldo.ch::volume1_slave    Active     N/A                  Hybrid Crawl       
fs2            volume1       /gluster        gluster3.marcobaldo.ch::volume1_slave    Passive    N/A                  N/A


The slave volume is created with the sequence

gluster volume geo-replication volume1 gluster3.marcobaldo.ch::volume1_slave create
gluster volume geo-replication volume1 gluster3.marcobaldo.ch::volume1_slave config change-detector changelog
gluster volume geo-replication volume1 gluster3.marcobaldo.ch::volume1_slave start
gluster volume geo-replication volume1 gluster3.marcobaldo.ch::volume1_slave status

And the status is

Volume Name: volume1
Type: Replicate
Volume ID: 0952d1ce-f62c-40b6-809a-4e193db0f1f9
Status: Started
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: gluster1.marcobaldo.ch:/gluster
Brick2: gluster2.marcobaldo.ch:/gluster
Options Reconfigured:
nfs.disable: off
geo-replication.indexing: on
geo-replication.ignore-pid-check: on
changelog.changelog: on
 
Volume Name: volume1_slave
Type: Distribute
Volume ID: 95610eee-84c2-4ac0-8f0f-7531e942e77c
Status: Started
Number of Bricks: 1
Transport-type: tcp
Bricks:
Brick1: gluster3.marcobaldo.ch:/gluster_slav

I could not find a log file with usefull debugging information (on gluster3.marcobaldo.ch maybe? Which one?)

If this matters: gluster1 and gluster2 are 64 bit KVM VMs, gluster3 a 32 bit physical machine deemed to be a backup server (all are up-to-date OpenSuSE 13.2).

May I ask where I will find information to undertand why the geo-replication worker fails, enters the faulty state and then it is switched to xsync?

Tnx

Marco

Il 26. 05. 15 08:21, Kotresh Hiremath Ravishankar ha scritto:
Hi Marco,

'gf_changelog_register' is an API exposed from the shared library 'libgfchangelog.so'.
Please check whether 'libgfchangelog.so' is available to linker by using following command.

#ldconfig -p | grep libgfchangelog

If it is not found, please find where the libgfchangelog.so is installed and run ldconfig
on it.

e.g., If found at /usr/local/lib/libgfchangelog.so,

#ldconfig /usr/local/lib

After this, confirm whether the library is cached by using first command above and try restarting
geo-replication.

Let us know if the library is cached and still you face this issue.
Hope this helps!

Thanks and Regards,
Kotresh H R

----- Original Message -----
From: "Marco" <marco.brignoli@xxxxxxxxxxxxx>
To: Gluster-users@xxxxxxxxxxx
Sent: Tuesday, May 26, 2015 4:25:26 AM
Subject:  AttributeError: python: undefined symbol:	gf_changelog_register

Hello all.

I have an issue when I'm trying to populate a geo-replication volume:

[2015-05-25 23:59:26.666712] I [monitor(monitor):129:monitor] Monitor:
------------------------------------------------------------
[2015-05-25 23:59:26.667079] I [monitor(monitor):130:monitor] Monitor:
starting gsyncd worker
[2015-05-25 23:59:26.762124] I [gsyncd(/gluster):532:main_i] <top>:
syncing: gluster://localhost:volume1 ->
ssh://root@xxxxxxxxxxxxxxxxxxxxxx:gluster://localhost:volume1_slave
[2015-05-25 23:59:29.611541] I [master(/gluster):58:gmaster_builder]
<top>: setting up xsync change detection mode
[2015-05-25 23:59:29.612349] I [master(/gluster):357:__init__] _GMaster:
using 'rsync' as the sync engine
[2015-05-25 23:59:29.613812] I [master(/gluster):58:gmaster_builder]
<top>: setting up changelog change detection mode
[2015-05-25 23:59:29.614294] I [master(/gluster):357:__init__] _GMaster:
using 'rsync' as the sync engine
[2015-05-25 23:59:29.616271] I [master(/gluster):1103:register]
_GMaster: xsync temp directory:
/var/run/gluster/volume1/ssh%3A%2F%2Froot%40192.168.178.233%3Agluster%3A%2F%2F127.0.0.1%3Avolume1_slave/1077eb0027f1f616115bcb74a330d1c2/xsync
[2015-05-25 23:59:29.648611] E
[syncdutils(/gluster):240:log_raise_exception] <top>: FAIL:
Traceback (most recent call last):
  File "/usr/lib/glusterfs/python/syncdaemon/gsyncd.py", line 150, in main
    main_i()
  File "/usr/lib/glusterfs/python/syncdaemon/gsyncd.py", line 542, in main_i
    local.service_loop(*[r for r in [remote] if r])
  File "/usr/lib/glusterfs/python/syncdaemon/resource.py", line 1175, in
service_loop
    g2.register()
  File "/usr/lib/glusterfs/python/syncdaemon/master.py", line 1077, in
register
    workdir, logfile, 9, 5)
  File "/usr/lib/glusterfs/python/syncdaemon/resource.py", line 614, in
changelog_register
    Changes.cl_register(cl_brick, cl_dir, cl_log, cl_level, retries)
 File "/usr/lib/glusterfs/python/syncdaemon/libgfchangelog.py", line 23,
in cl_register
    ret = cls._get_api('gf_changelog_register')(brick, path,
  File "/usr/lib/glusterfs/python/syncdaemon/libgfchangelog.py", line
19, in _get_api
    return getattr(cls.libgfc, call)
  File "/usr/lib64/python2.7/ctypes/__init__.py", line 378, in __getattr__
    func = self.__getitem__(name)
  File "/usr/lib64/python2.7/ctypes/__init__.py", line 383, in __getitem__
    func = self._FuncPtr((name_or_ordinal, self))
AttributeError: python: undefined symbol: gf_changelog_register
[2015-05-25 23:59:29.650513] I [syncdutils(/gluster):192:finalize]
<top>: exiting.
[2015-05-25 23:59:30.613435] I [monitor(monitor):157:monitor] Monitor:
worker(/gluster) died in startup phase


COMMANDS
************
# gluster volume geo-replication volume1
gluster3.marcobaldo.ch::volume1_slave start
Starting geo-replication session between volume1 &
gluster3.marcobaldo.ch::volume1_slave has been successful

# gluster volume geo-replication volume1
gluster3.marcobaldo.ch::volume1_slave status
 
MASTER NODE    MASTER VOL    MASTER BRICK
SLAVE                                    STATUS             CHECKPOINT
STATUS    CRAWL STATUS
-------------------------------------------------------------------------------------------------------------------------------------------
fs2            volume1       /gluster
gluster3.marcobaldo.ch::volume1_slave    Initializing...
N/A                  N/A
fs1            volume1       /gluster
gluster3.marcobaldo.ch::volume1_slave    Initializing...
N/A                  N/A

and after a few seconds

# gluster volume geo-replication volume1
gluster3.marcobaldo.ch::volume1_slave status
 
MASTER NODE    MASTER VOL    MASTER BRICK
SLAVE                                    STATUS    CHECKPOINT STATUS
CRAWL STATUS
----------------------------------------------------------------------------------------------------------------------------------
fs2            volume1       /gluster
gluster3.marcobaldo.ch::volume1_slave    faulty    N/A
N/A
fs1            volume1       /gluster
gluster3.marcobaldo.ch::volume1_slave    faulty    N/A                  N/A


VOLUMES
**********

Volume Name: volume1
Type: Replicate
Volume ID: 0952d1ce-f62c-40b6-809a-4e193db0f1f9
Status: Started
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: gluster1.marcobaldo.ch:/gluster
Brick2: gluster2.marcobaldo.ch:/gluster
Options Reconfigured:
changelog.changelog: on
geo-replication.ignore-pid-check: on
geo-replication.indexing: on
nfs.disable: off
 
Volume Name: volume1_slave
Type: Distribute
Volume ID: b0b161d8-a642-4d41-808e-2bb076989f78
Status: Started
Number of Bricks: 1
Transport-type: tcp
Bricks:
Brick1: gluster3.marcobaldo.ch:/gluster_slave


VERSION
*********

# glusterd -V
glusterfs 3.5.2 built on *bleep*
Repository revision: git://git.gluster.com/glusterfs.git
Copyright (c) 2006-2013 Red Hat, Inc. <http://www.redhat.com/>
GlusterFS comes with ABSOLUTELY NO WARRANTY.
It is licensed to you under your choice of the GNU Lesser
General Public License, version 3 or any later version (LGPLv3
or later), or the GNU General Public License, version 2 (GPLv2),
in all cases as published by the Free Software Foundation.


I'm running OpenSuSE 13.2 and I have installed Glusterfs from the
standard OpenSuSE repos. Currently I don't have any known problem with
"Replicate" volumes.

May I ask for your help? I have been googling but I could not find any
input.

Tnx in advance and have a nice day

Marco

_______________________________________________
Gluster-users mailing list
Gluster-users@xxxxxxxxxxx
http://www.gluster.org/mailman/listinfo/gluster-users


_______________________________________________
Gluster-users mailing list
Gluster-users@xxxxxxxxxxx
http://www.gluster.org/mailman/listinfo/gluster-users

[Index of Archives]     [Gluster Development]     [Linux Filesytems Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux