Description
ReactOS tested version: ReactOS 0.4.15-x86-dev (Build 20201117-0.4.15-dev-1356-g44c6df4) (Commit 44c6df4b2769b2b2d7aa62b589625e1a5b87338d)
Environment: BootCD with
FS type: FAT32
Software version: Calibre 32 bits - 2.0.0 - Available in: https://download.calibre-ebook.com/2.0.0/calibre-2.0.0.msi / Source Code: https://download.calibre-ebook.com/2.0.0/calibre-2.0.0.tar.xz
Steps to reproduce the issue:
1. Install ReactOS bootcd.
2. Install Calibre 2.0.0
3. Select the example ebook and try to convert to any file format (for example, from EPUB to MOBI).
4. The conversion will fail.
I attach the log ReactOS Calibre Conversions.log of the multiple filesystem and the tiny BT Issue Calibre.txt that Calibre gives me.
Example of the failure:
Calibre reaction:
Python function terminated unexpectedly
|
invalid load key, '
|
'. (Error Code: 1) |
Traceback (most recent call last):
|
File "site.py", line 132, in main |
File "site.py", line 109, in run_entry_point |
File "C:\Documents and Settings\Administrator\Desktop\calibre-2.0.0\src\calibre\utils\ipc\worker.py", line 188, in main |
name, args, kwargs, desc = eintr_retry_call(conn.recv)
|
File "C:\Documents and Settings\Administrator\Desktop\calibre-2.0.0\src\calibre\utils\ipc\__init__.py", line 19, in eintr_retry_call |
return func(*args, **kwargs) |
cPickle.UnpicklingError: invalid load key, '
|
'.
|
The ReactOS reaction:
(/dll/ntdll/ldr/ldrinit.c:1887) WARN: Accepting different LOAD_CONFIG size!
(/ntoskrnl/mm/ARM3/virtual.c:4715) Failed to insert the VAD!
Code involved:
address = cPickle.loads(unhexlify(os.environ['CALIBRE_WORKER_ADDRESS'])) |
key = unhexlify(os.environ['CALIBRE_WORKER_KEY']) |
resultf = unhexlify(os.environ['CALIBRE_WORKER_RESULT']).decode('utf-8') |
with closing(Client(address, authkey=key)) as conn:
|
name, args, kwargs, desc = eintr_retry_call(conn.recv)
|
Interesting info to debug (practical):
You can download the source and put it into a nice directory for you, and assign a environment variable with this value
- Setup Calibre 2.0.0 (available under rapps-db)
- Download the https://download.calibre-ebook.com/2.0.0/calibre-2.0.0.tar.xz source.
- Decompress the file under the Calibre wherever you want (f.e. in Desktop).
- Set the environment value CALIBRE_DEVELOP_FROM as /.../calibre/src followed here: (I found the info here https://web.archive.org/web/20110601235924/https://manual.calibre-ebook.com/develop.html )
- Create and execute a bat in the calibre.exe folder with this content: "C:\Program Files\Calibre2\calibre-debug.exe" -g 1>> log.txt 2>&1
It's some kind of Python funtion, that ReactOS is not able to process correctly the file, not sure if it's the worker.py part or the server.py part.
The debug print shows some info about the variables adress, key and the resultf (file), but the file itself is empty, so I guess that the bad thing is under the process.
('julenuri address', '\\\\.\\pipe\\pyc-1196-0-9vrjeb') |
('julenuri key:', '\xc1\x8a\xb1\x8f\xef5\x8d\xb6\xed\x91\x07\xe4\xe9\xd5\xcf\xbe\xa2\x1e\x12\x81\x85\x18\x17\xbcs\x95\xe6\xb4\xb5\x85+\x8e') |
('julenuri resultf:', u'C:\\DOCUME~1\\ADMINI~1\\LOCALS~1\\Temp\\calibre_p4edro\\ipc_result_1_1_bq6nx9.pickle') |
After few investigation, seems that there is something that is wrong with the data transfer between server and worker that uses the IPC.
Attachments
Issue Links
- relates to
-
ROSTESTS-392 Tests commented out on x64, because they are too slow
- Untriaged