@amo
@dp20eic: Getting the python-environment right needs triggering a rebuilt of python packages, as advised in the pinned comment. Also, it seems that we need to apply the patch that @atomicfs kindly provided. This is due to celery taking ages to stay up-to-date as mentioned in the other pinned comment. As for the migration: It should be enough to put your old configuration file, your old sqlite file and the old persistent directories under /var/lib/paperless/ in place before starting the systemd units.
I was yesterday frustrated, so I stop my tests, today I saw, that the installation at my new LXC Container was finished correct, but I'm not able to add/upload new pdf
to paperless-ngx
, after I read all comments here, I think it is python-billiard-4.x
which make problems.
I remove this Version and try to install the old one, but anytime I get this error
================================================================================================================= FAILURES ==================================================================================================================
___________________________________________________________________________________________________________ test_spawn.test_start ___________________________________________________________________________________________________________
self = <t.unit.test_spawn.test_spawn object at 0x7f8fad938050>
def test_start(self):
ctx = get_context('spawn')
p = ctx.Process(target=task_from_process, args=('opa',))
> p.start()
t/unit/test_spawn.py:17:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
billiard/process.py:124: in start
self._popen = self._Popen(self)
billiard/context.py:341: in _Popen
return Popen(process_obj)
billiard/popen_spawn_posix.py:39: in __init__
super(Popen, self).__init__(process_obj)
billiard/popen_fork.py:24: in __init__
self._launch(process_obj)
billiard/popen_spawn_posix.py:49: in _launch
tracker_fd = semaphore_tracker.getfd()
billiard/semaphore_tracker.py:38: in getfd
self.ensure_running()
billiard/semaphore_tracker.py:62: in ensure_running
spawnv_passfds(exe, args, fds_to_pass)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
path = '/usr/bin/python', args = [['/usr/bin/python', '-c', 'from billiard.semaphore_tracker import main;main(20)'], [b'/usr/bin/python'], True, (8, 20), None, None, ...], passfds = [8, 20]
def spawnv_passfds(path, args, passfds):
passfds = sorted(passfds)
errpipe_read, errpipe_write = os.pipe()
try:
args = [
args, [fsencode(path)], True, tuple(passfds), None, None,
-1, -1, -1, -1, -1, -1, errpipe_read, errpipe_write,
False, False]
if sys.version_info >= (3, 9):
args.extend((None, None, None, -1)) # group, extra_groups, user, umask
args.append(None) # preexec_fn
> return _posixsubprocess.fork_exec(*args)
E TypeError: fork_exec() takes exactly 23 arguments (21 given)
billiard/compat.py:230: TypeError
============================================================================================================= warnings summary ==============================================================================================================
t/unit/test_spawn.py::test_spawn::test_start
t/unit/test_spawn.py::test_spawn::test_start
t/unit/test_spawn.py::test_spawn::test_start
t/unit/test_spawn.py::test_spawn::test_start
t/unit/test_spawn.py::test_spawn::test_start
t/unit/test_spawn.py::test_spawn::test_start
t/unit/test_spawn.py::test_spawn::test_start
t/unit/test_spawn.py::test_spawn::test_start
/home/dp20eic/.cache/paru/clone/python-billiard3/src/billiard-3.6.4.0/billiard/pool.py:1753: DeprecationWarning: isSet() is deprecated, use is_set() instead
return self._event.isSet()
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
========================================================================================================== short test summary info ==========================================================================================================
FAILED t/unit/test_spawn.py::test_spawn::test_start - TypeError: fork_exec() takes exactly 23 arguments (21 given)
=========================================================================================== 1 failed, 18 passed, 51 skipped, 8 warnings in 1.30s ============================================================================================
==> FEHLER: Ein Fehler geschah in check().
Breche ab...
Fehler: kann ‚python-billiard3-3.6.4.0-1‘ nicht bauen:
Fehler: kann Pakete nicht bauen: python-billiard3-3.6.4.0-1
So I comment the check
at PKGBUILD
and I was able to install python-billiard3-3.6.4.0-1
after restart paperless-ngx
I was able to add/upload new PDF Files
So now I try again to copy, as you describe, from the old to the new installation.
With kind regards Bernd
Edit
:
The restore from the old installation into the new was successful :)
Pinned Comments
shtrophic commented on 2025-04-14 20:22 (UTC) (edited on 2025-04-14 20:32 (UTC) by shtrophic)
For people not using
redis
: there is now an "automated patching mechanism" that will instead use the next best fork ofredis
that is available on your system as theRequires=
dependency in*.service
. This way, anyone can use their favorite fork of it. Keep in mind that upstream does not explicitly say that forks ofredis
work as well, and this further makes the builtpaperless-ngx-venv
package non-portable. Happy experimenting :)