On my homelab, the CPU usage spiked yesterday and calmed down after I updated it. Looks like it’s related to changes from Calibre v9

For those unfamiliar with this project, here is the note from their README:

Why does this project exist?

Calibre, while a fantastic tool for its age, has several problems when containerised, including its reliance on a KasmVNC server instance for the UI, which is near impossible to use on mobile and is relatively resource-heavy if you’re running a small, lower power server like I am.

For many, Calibre-Web has really swooped in to save the day, offering an alternative to a containerised Calibre instance that’s resource-light and with a much more modern UI to boot.

However, when compared to full-fat Calibre, it unfortunately lacks a few core features leading many to run both services in parallel, each serving to fill in where the other lacks, resulting in an often clunky, imperfect solution.

Calibre-Web Automated aims to be an all-in-one solution, combining the modern lightweight web UI from Calibre-Web with the robust, versatile feature set of Calibre, with a slew of extra features and automations thrown in on top.

Here are excerpts from the changelog with the most recent update:

Release Notes: v4.0.2

🚨 Critical Updates

These changes are essential for database stability and compatibility with Calibre 9.

  • Calibre 9 Metadata Compatibility: Fixed critical UI crashes (500 errors) caused by Calibre 9’s removal of books.isbn, books.flags, and books.lccn.
    • The system now dynamically detects schema versions at startup.
    • For Calibre 9+, ISBNs are now correctly pulled from the identifiers table.
    • Maintained full backward compatibility for users on older Calibre versions.
  • SQLAlchemy 2.x Migration Fix: Resolved InvalidRequestError during database migrations by utilizing engine.begin(). This prevents nested transaction failures when PRAGMA triggers autobegin.
  • Initialization Fix: Fixed a regression causing AttributeError during login. The system now ensures minimal config fields (like config_books_per_page) are loaded even during background initialization.

[…]

The v.4.0.0 update had all the other snazzy new features. You can find them below:

Version 4.0.0 - Smart Automatic Duplicate Handling & Resolution 🔍, a Gorgeous & Powerful New Stats Centre 📊, Magic Shelves ✨, Robust OAuth, Auto-Send & Auto-Fetch ✈️ Huge Performance Uplifts and more!