First time user. Just setup two appliances to see each other. Trying to enable replication but getting this error message.
Detailed step by step instructions to reproduce the problem
Install appliance
Add peer appliance (I did this on both so they could see each other)
Setup a replication task from one to the other (I tried to start the replication task without doing this and then also tried again after I had created a task; got same issue both times)
Traceback (most recent call last):
File "/opt/rockstor/src/rockstor/smart_manager/views/replication_service.py", line 64, in post
config = self._get_config(service)
File "/opt/rockstor/src/rockstor/smart_manager/views/base_service.py", line 40, in _get_config
return json.loads(service.config)
File "/usr/lib64/python2.7/json/__init__.py", line 338, in loads
return _default_decoder.decode(s)
File "/usr/lib64/python2.7/json/decoder.py", line 366, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
TypeError: expected string or buffer
Not sure if your scenario is the same as mine… I was testing this solution as a virtual NAS appliance in a VirtualBox environment. The problem proved to be that I was not assigning enough cores and RAM to the VM. Once I did, it worked fine. The amount that worked for me was 8 cores and 8GB RAM for each VM. Then I was able to replicate the one to the other just fine. Unfortunately this is fairly heavy for a NAS compared to, for example, a Synology NAS which can easily replicate one to the other with far less. Still it was definitely worth testing on my lab server.
Replication should work with our Minimum system requirements of one 64bit cpu core and 2 GB of RAM and 8GBs of system disk. Otherwise what we have here is a bug, but currently with only @Julio_Guillen recent confirmation (thanks) as we have had no other reports of this behaviour that I can recall. Also 6 days ago @JoeMacFox posted:
Is anyone else experiencing this issue with exact replication details? I.e are there a large number of snapshots involved, what is the size of the data to be replicated, is there a large number of shares, are you using the not recommended for production btrfs parity raid levels (5/6), these can certainly push the min spec on the btrfs front?
The error reported however does not indicate a memory or cpu resource exhaustion but more like a coding issue. But given the lack of confirmation posts (untill @Julio_Guillen’s) / info it is currently in limbo awaiting further reports. I’m afraid I haven’t done any work on the replication code myself so can’t really take a quick look or open an issue without more info.
Thanks to @TitaniumCoder477 and @Julio_Guillen for kicking this one off but we really need more details / context of how to reproduce this as others do appear to have replication working, hence the limbo on this thread. Please chip in if you are also experiencing this error and add whatever info you can on your setup and how your error can be reproduced.
same here. fresh install, go to enable replication and get this
Traceback (most recent call last):
File “/opt/rockstor/src/rockstor/smart_manager/views/replication_service.py”, line 64, in post
config = self._get_config(service)
File “/opt/rockstor/src/rockstor/smart_manager/views/base_service.py”, line 40, in _get_config
return json.loads(service.config)
File “/usr/lib64/python2.7/json/init.py”, line 338, in loads
return _default_decoder.decode(s)
File “/usr/lib64/python2.7/json/decoder.py”, line 366, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
TypeError: expected string or buffer
After creating the replication job, it shows this error:
Houston, we've had a problem.
Configuration undefined. Configure the service first before starting.
Traceback (most recent call last):
File "/opt/rockstor/src/rockstor/smart_manager/views/replication_service.py", line 64, in post
config = self._get_config(service)
File "/opt/rockstor/src/rockstor/smart_manager/views/base_service.py", line 40, in _get_config
return json.loads(service.config)
File "/usr/lib64/python2.7/json/__init__.py", line 338, in loads
return _default_decoder.decode(s)
File "/usr/lib64/python2.7/json/decoder.py", line 366, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
TypeError: expected string or buffer
Since the replication job is already created, it looks like a bug.
Unfortunately this step is not included on “Share replication” documentation. Before starting replication service, you must click on System -> Services and then click on the wrench icon () and select which network interface is going to be used for replication. After that, still on Services screen, you’ll be able to start the Replication service.