View Single Post
Old 12-27-2019, 06:37 AM   #6
chaley
Grand Sorcerer
chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.
 
Posts: 12,476
Karma: 8025702
Join Date: Jan 2010
Location: Notts, England
Device: Kobo Libra 2
Quote:
Originally Posted by keenuser View Post
If there is a quick fix, I'll stick with option 1. Otherwise, I'll undo what I've done and experiment with the plug-ins.

Any advice?

TIA.
That error seems to happen if there are lots (where "lots" isn't well defined) of VLs, when the VL search expressions are very complicated, or when there are two custom columns that use the virtual_libraries() function especially if one such template references another. The last one happens because the template processor can get into a loop evaluating template 1 then 2 then 1 then 2 etc (infinite recursion).

If the last case doesn't apply then I don't know of a way to reliably fix it. In fact, I made the plugins because of this problem.

If you have muliple columns that use the virtual_libraries() function then the first thing to do is refactor your processing so that only one column does that. If you don't then I suggest you start with the Save Virtual Libraries To Column (GUI) plugin to see if it solves your problem. It is easy to install using calibre's plugin manager (Preferences / Plugins / Get new plugins). You must remember to run it whenever you change a VL search or book metadata that might change the VLs.

The other plugin runs every time you close calibre or change libraries so the column is recomputed at that point. This is especially useful if you use any third party tools that look at calibre's database because the column is guaranteed to be up-to-date.
chaley is offline   Reply With Quote