Closed traysh closed 3 years ago
This is very weird. It looks like it is failing to find the root directory. But this is provided directly by rmfuse/rmcl; it doesn't get this at all from the cloud API.
Can you let me know your OS, Python version, FUSE version, and whether you're using pyfuse3 or llfuse?
If you are able, can you try running the following script? It will try to print out all the items it can find in the cloud account. You can post the output here, if you are comfortable, or email it to me at my user name at gmail. It will contain document names; feel free to redact them if you like.
The output will be in the form
'id-string': <Document "document-name">
The main thing I'm curious about is, do any documents have a name of empty string? (There should be exactly one, a "VirtualFolder".) Also, most of the id-strings should be UUIDs (~40 hexadecimal digits); the only two that aren't should be '' (empty string, corresponding to that same element as before) and 'trash'. If you see something unusual along these lines, you can just report it without listing the whole output, if you prefer.
Here's the script. You should be able to run it from within the same environment that rmfuse runs.
from pprint import pprint
import trio
from rmcl import api
async def list_items():
client = await api.get_client()
await client.update_items()
pprint(client.by_id)
trio.run(list_items)
I just found and fixed two bugs. One of them, related to modification dates prior to 1970 was causing a sudden crash, which could be what you're seeing. The other won't fix a crash, but it does fix the debug output with the -vv
option. I haven't released a new version yet. If you're able to run from git, please pull from master and let me know how it goes.
This is very weird. It looks like it is failing to find the root directory. But this is provided directly by rmfuse/rmcl; it doesn't get this at all from the cloud API.
Can you let me know your OS, Python version, FUSE version, and whether you're using pyfuse3 or llfuse?
I'm running Arch Linux 😎
traysh@konqi /tmp/apague % pacman -Q python
python 3.9.5-2
traysh@konqi /tmp/apague % pacman -Q | grep fuse3
fuse3 3.10.3-1
python-pyfuse3 3.2.0-2
The main thing I'm curious about is, do any documents have a name of empty string? (There should be exactly one, a "VirtualFolder".) Also, most of the id-strings should be UUIDs (~40 hexadecimal digits); the only two that aren't should be '' (empty string, corresponding to that same element as before) and 'trash'. If you see something unusual along these lines, you can just report it without listing the whole output, if you prefer.
Here's the script. You should be able to run it from within the same environment that rmfuse runs.
sure, output is bellow:
traysh@konqi /tmp/apague % python script.py │ 28 _site_packages=$(python -sSc 'import site; print(site.getsitepackages()[0])')
Traceback (most recent call last): │ 29
File "/tmp/apague/script.py", line 11, in <module> │~ 30 cd "$srcdir"/rmfuse
trio.run(list_items) │ 31 python setup.py install -O1 --skip-build --root="$pkgdir"
File "/usr/lib/python3.9/site-packages/trio/_core/_run.py", line 1932, in run │ 32 install -Dm0644 LICENSE.txt "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
raise runner.main_task_outcome.error │ 33
File "/tmp/apague/script.py", line 8, in list_items │ 34 # vendoring xdg.py due to conflicts with python-pyxdg
await client.update_items() │ 35 install -Dm0644 "$srcdir"/xdg.py "$pkgdir$_site_packages"/rmfuse/xdg.py
File "/usr/lib/python3.9/site-packages/rmcl/api.py", line 238, in update_items │~ 36 rm "$pkgdir$_site_packages"/rmfu*.egg-info/requires.txt
self.by_id[i.parent].children.append(i) │ 37 }
KeyError: '913e25c2-eea5-40df-aa1a-ad5ae8722f60
You've managed to get a document with a parent that doesn't exist. I don't know quite how, but I was able to reproduce the problem on my end. The new version of rmcl (0.4.2) contains a fix, so updating that should be all you need to do. I just pushed a commit that moves rmfuse up to this version, so updating rmfuse (from git) should also work.
If this doesn't fix things, please reopen the issue. If it does, let me know and I'll release a new version of rmfuse.
yes, it worked by updating rmcl to 0.4.2
thank you very much
Today I tryed again to use rmfuse, but now I get a different error, see bellow.
Disclaimer: I used other unnoficial APIs before, so I might have an inconsistent reMarkable cloud. Yet, it works elsewhere.
output when trying to access the mounted cloud:
rmfuse -vvv /media/remarkable
output: