Hi Peter, hi everyone,
Thank you very much for developing Mnemosyne! I've been a daily user for 3.5 months, and within that time, Mnemosyne let me learn 350+ new words in Hebrew which changed my daily life as an expat in Israel for the better!
I took a 10-day holiday recently without laptop and wanted to continue practicing during that time. So I installed the new Mnemosyne Android app and synced my phone to the laptop. To test, I tried learning a few words on the phone and syncing it back to the laptop a couple of times. Everything worked smoothly.
But returning 10 days later, I can't sync my phone back with the laptop anymore. The laptop is running Mnemosyne 2.3.2 (downloaded and compiled on Apr 1st 2015). The phone is running the Android Mnemosyne app 1.0.1, downloaded from Google Play on Apr 1st 2015.
Here's how to trigger the problem:
. Start Mnemosyne on the laptop. Settings says the sync server is running on 10.0.0.3 port 8512.
. From the phone, I can successfully ping the laptop.
. Start Mnemosyne on the phone and start syncing
. Phone says 'Logging in...'
. Using netstat on the laptop, I see an ESTABLISHED TCP connection between the phone and the laptop on port 8512.
. After a minute or so, the phone says 'Could not connect to server!'. Netstat reports that the TCP connection is now CLOSE_WAIT.
. At that point, opening Mnemosyne's settings on the laptop freezes mnemosyne. It needs to be stopped with a kill.
To circumvent the issue, I attempted starting the sync server on the laptop without GUI:
$ mnemosyne --sync-server
Sync server listening on
10.0.0.3:8512
and then started the sync on the phone, which produced the message 'Logging in: server error' on the phone and the following error on the laptop:
Traceback (innermost last):
File "build/bdist.linux-x86_64/egg/openSM2sync/server.py", line 333, in put_login
session = self.create_session(client_info)
File "build/bdist.linux-x86_64/egg/openSM2sync/server.py", line 186, in create_session
database = self.load_database(client_info["database_name"])
File "build/bdist.linux-x86_64/egg/mnemosyne/libmnemosyne/sync_server.py", line 49, in load_database
self.database().load(database_name)
File "build/bdist.linux-x86_64/egg/mnemosyne/libmnemosyne/databases/SQLite.py", line 361, in load
raise RuntimeError, _("Unable to load file, query failed.")
RuntimeError: Unable to load file, query failed.
Starting the server by explicitly specifying the cards DB
$ mnemosyne --sync-server ~/.local/share/mnemosyne/cards.db
yielded the same error message.
Upgrading to Mnemosyne 2.3.3 on the laptop does not change the above. Logging errors with the --debug-file parameter yields an empty file.
Any idea what could cause the problem? I'm especially at loss to explain this, since I tested sync after learning a dozen of words on the phone prior to leaving for holiday, and it just worked.
Thanks again for the great work on this, and looking forward to hearing your thoughts!
Yours, Jean