Cbtransfer failing when using couchstore-files as source

On a fresh install of coucbase enterprise 6.0.2 and the beer-sample bucket on Debian Stretch, I cannot run cbtransfer using couchstore-files as a source.
root@localhost:~# /opt/couchbase/bin/cbtransfer couchstore-files:///opt/couchbase/var/lib/couchbase/data/ /tmp/ -b beer-sample -u admin -p pass
Exception in thread s0:
Traceback (most recent call last):
File “/usr/lib/python2.7/threading.py”, line 801, in __bootstrap_inner
File “/usr/lib/python2.7/threading.py”, line 754, in run
self.__target(*self.__args, **self.__kwargs)
File “/opt/couchbase/lib/python/pump_bfd.py”, line 630, in run
version = node[“version”].split("-")[0]
KeyError: ‘version’

error: cannot use a dead worker

Am I missing some parameter or dependency?

If I change the destination from /tmp/ to csv:/tmp/dump.csv I can get data out.
I’m looking to get the usual sqlite dump format, not some csv file.
The documentation doesn’t mention anything about how to use the various sink types (couchstore-files, mc, df, json, csv, …? What is the full list??) nor which combinations of source and sink work together with what parameters.
Could anyone point to some relevant documentation or help figure this out?


This is an old thread, but just in case anybody else hits this problem on Couchbase Community 6.0 there is a manual fix required to /opt/couchbase/lib/python/pump_bfd.py. This fix has been made on later versions. I ended up patching the file manually.

        version = "0.0.0"
        for bucket in self.source_map["buckets"]:
            if self.bucket_name() == bucket["name"]:
                for node in bucket["nodes"]:
                    *if node["hostname"] == self.node_name() and "version" in node*:
                        version = node["version"].split("-")[0]

The code fix is also available here, MB-34160 Fix cbtransfer from couchstore file to BFD · couchbase/couchbase-cli@0407d61 · GitHub

In a slightly different form.