Skip to content
This repository has been archived by the owner on May 4, 2021. It is now read-only.

Kibitzers stop working (training - openings - with book) #4

Closed
stolowski opened this issue Nov 9, 2015 · 8 comments
Closed

Kibitzers stop working (training - openings - with book) #4

stolowski opened this issue Nov 9, 2015 · 8 comments

Comments

@stolowski
Copy link

I'm not sure if this is specific to openings training, but Kibitzers generally don't work in this mode - I had some luck using a kibitzer based on Stockfish, but not with others, e.g Komodo 32bit. Once I add first kibitzer and it works (stockfish), it opens a kibitzer window, but then when I add kibitzer (komodo), it doesn't show and also the first one disappears. Restarting lucachess doesn't help, I cannot start any of the created kibitzers in openings training. I have to remove the definitions of both kibitzers using Kibitzer -> Remove...

@lukasmonk
Copy link
Owner

One reason can be that the program don´t have enough permissions to create files in its folder.
To connect to kibitzers the program creates a file in the installation folder.
Other person writes me today with the same question, it is probably that something I have out of control, but the problem is I don´t know how to replicate the problem (my tests in an standard installation W8.1 64 bits + WXP 32bits are all ok).

@stolowski
Copy link
Author

I've modified recursively the permissions for LucaChess folder to allow modifications to anyone, but it didn't help. I'm running Win 10 64 bit. I installed LucaChess in a non-standard D:\Programs\LucaChess folder.

However, after reproducing the issue again I noticed a bug.kibitzer log file and it shows the following:
Traceback (most recent call last):
File "lucas.py", line 61, in
File "Code\RunKibitzer.pyo", line 1558, in run
File "Code\RunKibitzer.pyo", line 1452, in run
File "Code\RunKibitzer.pyo", line 1463, in recibe
File "Code\Util.pyo", line 432, in pop
sqlite3.OperationalError: no such table: DATOS

Regarding a potential problem with permissions (whether this applies to this bug or not), may I suggest the following:

  • use Qt's QDesktopServices::storageLocations (may be in a different class depending on major Qt version and PyQt) to find a writable directory for current user (DataLocation or Cache location look like good candidates). This is portable and flexible solution. Writing to the installation directory looks very problematic to me.
  • display an error in a popup dialog, permission issues are common enough to justify that.
  • I'd say displaying popups for all critical errors (such as the sqlite error above) would be a good idea, otherwise when users face "silent" failures, they are in the dark with no clue what happened, this will also make your life easier when they report bugs ;). The popup could just say "a critical error occurded" and point user to the log file for details.

BTW, a great piece of software, thanks for your hard work!

@stolowski
Copy link
Author

Just a minor update, I've just uninstalled LucaChess, removed its directory and installed it again and I'm still getting the exception about missing DATOS table when trying to use kibitzers.

@lukasmonk
Copy link
Owner

Please, say me if you launch the program from sources or a portable or an installable version (and which version).
I could send you some code or binary to test.

@stolowski
Copy link
Author

I'm running the installable version 9.07c (InsLucaChess907c.exe installer).

@lukasmonk
Copy link
Owner

I have done a little change, take into account a fast launch of the kibitzer:

library.zip

To update your program, replace this file = library.zip in the folder of lucaschess.

@stolowski
Copy link
Author

Yes, that fixes it, I tested with multiple kibitzers, thank you! Looking forward for the next release with that fix included.

@lukasmonk
Copy link
Owner

Thank you very much.
I´ll try to publish today (?).

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants