0

I updated macOS recently and "/usr/local/bin/rethinkdb restore" now no longer works..

/usr/local/bin/rethinkdb restore --force /Users/rob/rdb_backup.tar.gz
Extracting archive file...
  Done (0 seconds)
Importing from directory...
Traceback (most recent call last):
  File "/usr/local/bin/rethinkdb-restore", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.9/site-packages/rethinkdb/_restore.py", line 339, in main
    do_restore(options)
  File "/usr/local/lib/python3.9/site-packages/rethinkdb/_restore.py", line 315, in do_restore
    _import.import_tables(options, sources)
  File "/usr/local/lib/python3.9/site-packages/rethinkdb/_import.py", line 1359, in import_tables
    progress_bar.start()
  File "/usr/local/Cellar/python@3.9/3.9.10/Frameworks/Python.framework/Versions/3.9/lib/python3.9/multiprocessing/process.py", line 121, in start
    self._popen = self._Popen(self)
  File "/usr/local/Cellar/python@3.9/3.9.10/Frameworks/Python.framework/Versions/3.9/lib/python3.9/multiprocessing/context.py", line 224, in _Popen
    return _default_context.get_context().Process._Popen(process_obj)
  File "/usr/local/Cellar/python@3.9/3.9.10/Frameworks/Python.framework/Versions/3.9/lib/python3.9/multiprocessing/context.py", line 284, in _Popen
    return Popen(process_obj)
  File "/usr/local/Cellar/python@3.9/3.9.10/Frameworks/Python.framework/Versions/3.9/lib/python3.9/multiprocessing/popen_spawn_posix.py", line 32, in __init__
    super().__init__(process_obj)
  File "/usr/local/Cellar/python@3.9/3.9.10/Frameworks/Python.framework/Versions/3.9/lib/python3.9/multiprocessing/popen_fork.py", line 19, in __init__
    self._launch(process_obj)
  File "/usr/local/Cellar/python@3.9/3.9.10/Frameworks/Python.framework/Versions/3.9/lib/python3.9/multiprocessing/popen_spawn_posix.py", line 47, in _launch
    reduction.dump(process_obj, fp)
  File "/usr/local/Cellar/python@3.9/3.9.10/Frameworks/Python.framework/Versions/3.9/lib/python3.9/multiprocessing/reduction.py", line 60, in dump
    ForkingPickler(file, protocol).dump(obj)
TypeError: cannot pickle '_thread._local' object

I've refreshed my python install via brew, but that didn't help.

I don't use python myself, so I'm not familiar with fixing issues with it.

Any help would be appreciated.

Update: after much searching I found many people with the same issue and the consensus was the python code bundled with rethinkdb was broken and no longer supported. A couple of people offered nodejs replacements for the restore functionality. I was unable to get either working, probably due to dependencies.

The solution I read about that proved successful was to downgrade to python 3.7.9

RobH
  • 1
  • 4
  • Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. – Community Feb 17 '22 at 03:18
  • I have the exact same issue and it is a battle to get it to work. Something is wrong on the multiprocess implementation that 3.9 throws while 3.7 does not. I wrote my own simple restore once, and now I need it again and lost it. On my production servers I just force python 3.7 in case of emergencies. On macOS it is a pain. – Irae Carvalho Aug 23 '22 at 20:37

0 Answers0