Diff of the two buildlogs: -- --- b1/build.log 2024-05-04 01:52:46.507202043 +0000 +++ b2/build.log 2024-05-04 02:12:10.461627739 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Fri May 3 13:37:46 -12 2024 -I: pbuilder-time-stamp: 1714786666 +I: Current time: Sat May 4 15:52:52 +14 2024 +I: pbuilder-time-stamp: 1714787572 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/unstable-reproducible-base.tgz] I: copying local configuration @@ -89,52 +89,84 @@ dpkg-source: info: applying 0062-Add-keywords-to-desktop-application-entry-file.patch I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/588056/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/3731387/tmp/hooks/D01_modify_environment starting +debug: Running on codethink04-arm64. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 May 4 01:53 /bin/sh -> /bin/bash +I: Setting pbuilder2's login shell to /bin/bash +I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other +I: user script /srv/workspace/pbuilder/3731387/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/3731387/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build/reproducible-path' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='arm64' - DEBIAN_FRONTEND='noninteractive' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:. + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="2" [2]="21" [3]="1" [4]="release" [5]="aarch64-unknown-linux-gnu") + BASH_VERSION='5.2.21(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=arm64 + DEBIAN_FRONTEND=noninteractive DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=12 ' - DISTRIBUTION='unstable' - HOME='/root' - HOST_ARCH='arm64' + DIRSTACK=() + DISTRIBUTION=unstable + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=aarch64 + HOST_ARCH=arm64 IFS=' ' - INVOCATION_ID='4f232fda058a4f16af265cf00d3e0add' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - MAIL='/var/mail/root' - OPTIND='1' - PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' - PBCURRENTCOMMANDLINEOPERATION='build' - PBUILDER_OPERATION='build' - PBUILDER_PKGDATADIR='/usr/share/pbuilder' - PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' - PBUILDER_SYSCONFDIR='/etc' - PPID='588056' - PS1='# ' - PS2='> ' + INVOCATION_ID=06061478ef88425b94e0eea2c15e6e43 + LANG=C + LANGUAGE=nl_BE:nl + LC_ALL=C + MACHTYPE=aarch64-unknown-linux-gnu + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnu + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=3731387 PS4='+ ' - PWD='/' - SHELL='/bin/bash' - SHLVL='2' - SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.MGBWxwPs/pbuilderrc_1vDC --distribution unstable --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.MGBWxwPs/b1 --logfile b1/build.log calibre_7.10.0+ds-1.dsc' - SUDO_GID='109' - SUDO_UID='104' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://192.168.101.4:3128' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.MGBWxwPs/pbuilderrc_AIHK --distribution unstable --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.MGBWxwPs/b2 --logfile b2/build.log calibre_7.10.0+ds-1.dsc' + SUDO_GID=109 + SUDO_UID=104 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://192.168.101.4:3128 I: uname -a - Linux codethink02-arm64 6.1.0-20-cloud-arm64 #1 SMP Debian 6.1.85-1 (2024-04-11) aarch64 GNU/Linux + Linux i-capture-the-hostname 6.1.0-20-cloud-arm64 #1 SMP Debian 6.1.85-1 (2024-04-11) aarch64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 May 3 07:42 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/588056/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 May 3 07:43 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/3731387/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -744,7 +776,7 @@ Get: 417 http://deb.debian.org/debian unstable/main arm64 qt6-wayland arm64 6.4.2-5+b2 [115 kB] Get: 418 http://deb.debian.org/debian unstable/main arm64 webp arm64 1.3.2-0.4+b1 [188 kB] Get: 419 http://deb.debian.org/debian unstable/main arm64 xdg-utils all 1.1.3-4.1 [75.5 kB] -Fetched 280 MB in 4s (64.1 MB/s) +Fetched 280 MB in 3s (109 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libpython3.11-minimal:arm64. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19736 files and directories currently installed.) @@ -2068,8 +2100,8 @@ Setting up tzdata (2024a-4) ... Current default time zone: 'Etc/UTC' -Local time is now: Sat May 4 01:39:36 UTC 2024. -Universal Time is now: Sat May 4 01:39:36 UTC 2024. +Local time is now: Sat May 4 01:55:42 UTC 2024. +Universal Time is now: Sat May 4 01:55:42 UTC 2024. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up unicode-data (15.1.0-1) ... @@ -2461,7 +2493,11 @@ Building tag database... -> Finished parsing the build-deps I: Building the package -I: Running cd /build/reproducible-path/calibre-7.10.0+ds/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../calibre_7.10.0+ds-1_source.changes +I: user script /srv/workspace/pbuilder/3731387/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for unstable +I: user script /srv/workspace/pbuilder/3731387/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/calibre-7.10.0+ds/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../calibre_7.10.0+ds-1_source.changes dpkg-buildpackage: info: source package calibre dpkg-buildpackage: info: source version 7.10.0+ds-1 dpkg-buildpackage: info: source distribution unstable @@ -2528,16 +2564,16 @@ g++ -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-7.10.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.11 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++14 -c /build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/sqlite_extension.cpp -o /build/reproducible-path/calibre-7.10.0+ds/build/objects/sqlite_extension/sqlite_extension.o cc1plus: warning: '-Werror=' argument '-Werror=implicit-function-declaration' is not valid for C++ -gcc -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-7.10.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.11 '-DCALIBRE_MODINIT_FUNC= __attribute__ ((visibility ("default"))) PyObject*' -I/build/reproducible-path/calibre-7.10.0+ds/src/calibre/utils/lzx -c /build/reproducible-path/calibre-7.10.0+ds/src/calibre/utils/lzx/lzxd.c -o /build/reproducible-path/calibre-7.10.0+ds/build/objects/lzx/lzxd.o +gcc -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-7.10.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.11 '-DCALIBRE_MODINIT_FUNC= __attribute__ ((visibility ("default"))) PyObject*' -I/build/reproducible-path/calibre-7.10.0+ds/src/calibre/utils/lzx -c /build/reproducible-path/calibre-7.10.0+ds/src/calibre/utils/lzx/lzc.c -o /build/reproducible-path/calibre-7.10.0+ds/build/objects/lzx/lzc.o + +gcc -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-7.10.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.11 '-DCALIBRE_MODINIT_FUNC= __attribute__ ((visibility ("default"))) PyObject*' -I/build/reproducible-path/calibre-7.10.0+ds/src/calibre/utils/lzx -c /build/reproducible-path/calibre-7.10.0+ds/src/calibre/utils/lzx/lzxmodule.c -o /build/reproducible-path/calibre-7.10.0+ds/build/objects/lzx/lzxmodule.o gcc -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-7.10.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.11 '-DCALIBRE_MODINIT_FUNC= __attribute__ ((visibility ("default"))) PyObject*' -I/build/reproducible-path/calibre-7.10.0+ds/src/calibre/utils/lzx -c /build/reproducible-path/calibre-7.10.0+ds/src/calibre/utils/lzx/lzxc.c -o /build/reproducible-path/calibre-7.10.0+ds/build/objects/lzx/lzxc.o -gcc -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-7.10.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.11 '-DCALIBRE_MODINIT_FUNC= __attribute__ ((visibility ("default"))) PyObject*' -I/build/reproducible-path/calibre-7.10.0+ds/src/calibre/utils/lzx -c /build/reproducible-path/calibre-7.10.0+ds/src/calibre/utils/lzx/lzxmodule.c -o /build/reproducible-path/calibre-7.10.0+ds/build/objects/lzx/lzxmodule.o +gcc -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-7.10.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.11 '-DCALIBRE_MODINIT_FUNC= __attribute__ ((visibility ("default"))) PyObject*' -I/build/reproducible-path/calibre-7.10.0+ds/src/calibre/utils/lzx -c /build/reproducible-path/calibre-7.10.0+ds/src/calibre/utils/lzx/lzxd.c -o /build/reproducible-path/calibre-7.10.0+ds/build/objects/lzx/lzxd.o gcc -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-7.10.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.11 '-DCALIBRE_MODINIT_FUNC= __attribute__ ((visibility ("default"))) PyObject*' -I/build/reproducible-path/calibre-7.10.0+ds/src/calibre/utils/lzx -c /build/reproducible-path/calibre-7.10.0+ds/src/calibre/utils/lzx/compressor.c -o /build/reproducible-path/calibre-7.10.0+ds/build/objects/lzx/compressor.o -gcc -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-7.10.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.11 '-DCALIBRE_MODINIT_FUNC= __attribute__ ((visibility ("default"))) PyObject*' -I/build/reproducible-path/calibre-7.10.0+ds/src/calibre/utils/lzx -c /build/reproducible-path/calibre-7.10.0+ds/src/calibre/utils/lzx/lzc.c -o /build/reproducible-path/calibre-7.10.0+ds/build/objects/lzx/lzc.o - g++ -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-7.10.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.11 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -I/usr/include/freetype2 -I/usr/include/libpng16 -c /build/reproducible-path/calibre-7.10.0+ds/src/calibre/utils/fonts/freetype.cpp -o /build/reproducible-path/calibre-7.10.0+ds/build/objects/freetype/freetype.o cc1plus: warning: '-Werror=' argument '-Werror=implicit-function-declaration' is not valid for C++ @@ -2549,25 +2585,25 @@ gcc -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-7.10.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.11 '-DCALIBRE_MODINIT_FUNC= __attribute__ ((visibility ("default"))) PyObject*' -c /build/reproducible-path/calibre-7.10.0+ds/src/calibre/ebooks/djvu/bzzdecoder.c -o /build/reproducible-path/calibre-7.10.0+ds/build/objects/bzzdec/bzzdecoder.o -g++ -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-7.10.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.11 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include/podofo -I/usr/include -c /build/reproducible-path/calibre-7.10.0+ds/src/calibre/utils/podofo/utils.cpp -o /build/reproducible-path/calibre-7.10.0+ds/build/objects/podofo/utils.o +g++ -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-7.10.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.11 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include/podofo -I/usr/include -c /build/reproducible-path/calibre-7.10.0+ds/src/calibre/utils/podofo/outlines.cpp -o /build/reproducible-path/calibre-7.10.0+ds/build/objects/podofo/outlines.o cc1plus: warning: '-Werror=' argument '-Werror=implicit-function-declaration' is not valid for C++ -g++ -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-7.10.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.11 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include/podofo -I/usr/include -c /build/reproducible-path/calibre-7.10.0+ds/src/calibre/utils/podofo/outline.cpp -o /build/reproducible-path/calibre-7.10.0+ds/build/objects/podofo/outline.o +g++ -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-7.10.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.11 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include/podofo -I/usr/include -c /build/reproducible-path/calibre-7.10.0+ds/src/calibre/utils/podofo/doc.cpp -o /build/reproducible-path/calibre-7.10.0+ds/build/objects/podofo/doc.o cc1plus: warning: '-Werror=' argument '-Werror=implicit-function-declaration' is not valid for C++ -g++ -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-7.10.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.11 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include/podofo -I/usr/include -c /build/reproducible-path/calibre-7.10.0+ds/src/calibre/utils/podofo/output.cpp -o /build/reproducible-path/calibre-7.10.0+ds/build/objects/podofo/output.o +g++ -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-7.10.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.11 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include/podofo -I/usr/include -c /build/reproducible-path/calibre-7.10.0+ds/src/calibre/utils/podofo/images.cpp -o /build/reproducible-path/calibre-7.10.0+ds/build/objects/podofo/images.o cc1plus: warning: '-Werror=' argument '-Werror=implicit-function-declaration' is not valid for C++ -g++ -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-7.10.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.11 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include/podofo -I/usr/include -c /build/reproducible-path/calibre-7.10.0+ds/src/calibre/utils/podofo/outlines.cpp -o /build/reproducible-path/calibre-7.10.0+ds/build/objects/podofo/outlines.o +g++ -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-7.10.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.11 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include/podofo -I/usr/include -c /build/reproducible-path/calibre-7.10.0+ds/src/calibre/utils/podofo/impose.cpp -o /build/reproducible-path/calibre-7.10.0+ds/build/objects/podofo/impose.o cc1plus: warning: '-Werror=' argument '-Werror=implicit-function-declaration' is not valid for C++ -g++ -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-7.10.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.11 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include/podofo -I/usr/include -c /build/reproducible-path/calibre-7.10.0+ds/src/calibre/utils/podofo/impose.cpp -o /build/reproducible-path/calibre-7.10.0+ds/build/objects/podofo/impose.o +g++ -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-7.10.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.11 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include/podofo -I/usr/include -c /build/reproducible-path/calibre-7.10.0+ds/src/calibre/utils/podofo/output.cpp -o /build/reproducible-path/calibre-7.10.0+ds/build/objects/podofo/output.o cc1plus: warning: '-Werror=' argument '-Werror=implicit-function-declaration' is not valid for C++ -g++ -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-7.10.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.11 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include/podofo -I/usr/include -c /build/reproducible-path/calibre-7.10.0+ds/src/calibre/utils/podofo/doc.cpp -o /build/reproducible-path/calibre-7.10.0+ds/build/objects/podofo/doc.o +g++ -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-7.10.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.11 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include/podofo -I/usr/include -c /build/reproducible-path/calibre-7.10.0+ds/src/calibre/utils/podofo/utils.cpp -o /build/reproducible-path/calibre-7.10.0+ds/build/objects/podofo/utils.o cc1plus: warning: '-Werror=' argument '-Werror=implicit-function-declaration' is not valid for C++ -g++ -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-7.10.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.11 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include/podofo -I/usr/include -c /build/reproducible-path/calibre-7.10.0+ds/src/calibre/utils/podofo/images.cpp -o /build/reproducible-path/calibre-7.10.0+ds/build/objects/podofo/images.o +g++ -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-7.10.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.11 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include/podofo -I/usr/include -c /build/reproducible-path/calibre-7.10.0+ds/src/calibre/utils/podofo/outline.cpp -o /build/reproducible-path/calibre-7.10.0+ds/build/objects/podofo/outline.o cc1plus: warning: '-Werror=' argument '-Werror=implicit-function-declaration' is not valid for C++ g++ -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-7.10.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.11 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include/podofo -I/usr/include -c /build/reproducible-path/calibre-7.10.0+ds/src/calibre/utils/podofo/podofo.cpp -o /build/reproducible-path/calibre-7.10.0+ds/build/objects/podofo/podofo.o @@ -2584,10 +2620,10 @@ gcc -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-7.10.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.11 '-DCALIBRE_MODINIT_FUNC= __attribute__ ((visibility ("default"))) PyObject*' -c /build/reproducible-path/calibre-7.10.0+ds/src/calibre/devices/libusb/libusb.c -o /build/reproducible-path/calibre-7.10.0+ds/build/objects/libusb/libusb.o -gcc -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-7.10.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.11 '-DCALIBRE_MODINIT_FUNC= __attribute__ ((visibility ("default"))) PyObject*' -c /build/reproducible-path/calibre-7.10.0+ds/src/calibre/devices/mtp/unix/libmtp.c -o /build/reproducible-path/calibre-7.10.0+ds/build/objects/libmtp/libmtp.o - gcc -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-7.10.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.11 '-DCALIBRE_MODINIT_FUNC= __attribute__ ((visibility ("default"))) PyObject*' -c /build/reproducible-path/calibre-7.10.0+ds/src/calibre/devices/mtp/unix/devices.c -o /build/reproducible-path/calibre-7.10.0+ds/build/objects/libmtp/devices.o +gcc -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-7.10.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.11 '-DCALIBRE_MODINIT_FUNC= __attribute__ ((visibility ("default"))) PyObject*' -c /build/reproducible-path/calibre-7.10.0+ds/src/calibre/devices/mtp/unix/libmtp.c -o /build/reproducible-path/calibre-7.10.0+ds/build/objects/libmtp/libmtp.o + Linking 23 files... g++ /build/reproducible-path/calibre-7.10.0+ds/build/objects/hunspell/hunspell_wrapper.o -o /build/reproducible-path/calibre-7.10.0+ds/src/calibre/plugins/hunspell.so -Wall -Wl,-z,relro -Wl,-z,now -shared -L/usr/lib/aarch64-linux-gnu -lpython3.11 -Xlinker -export-dynamic -Wl,-O1 -Wl,-Bsymbolic-functions -L/usr/lib -lhunspell-1.7 @@ -2784,7 +2820,7 @@ -- Performing Test HAVE_STDATOMIC -- Performing Test HAVE_STDATOMIC - Success -- Found WrapAtomic: TRUE --- Configuring done (5.5s) +-- Configuring done (4.0s) -- Generating done (0.0s) -- Build files have been written to: /build/reproducible-path/calibre-7.10.0+ds/build/headless make[2]: Entering directory '/build/reproducible-path/calibre-7.10.0+ds/build/headless' @@ -2835,12 +2871,12 @@ make[4]: Entering directory '/build/reproducible-path/calibre-7.10.0+ds/build/headless' [ 33%] Building CXX object CMakeFiles/headless.dir/headless_autogen/mocs_compilation.cpp.o /usr/bin/c++ -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NO_DEBUG -Dheadless_EXPORTS -I/build/reproducible-path/calibre-7.10.0+ds/build/headless/headless_autogen/include -isystem /usr/include/aarch64-linux-gnu/qt6/QtGui -isystem /usr/include/aarch64-linux-gnu/qt6 -isystem /usr/include/aarch64-linux-gnu/qt6/QtCore -isystem /usr/lib/aarch64-linux-gnu/qt6/mkspecs/linux-g++ -isystem /usr/include/aarch64-linux-gnu/qt6/QtGui/6.4.2 -isystem /usr/include/aarch64-linux-gnu/qt6/QtGui/6.4.2/QtGui -isystem /usr/include/aarch64-linux-gnu/qt6/QtCore/6.4.2 -isystem /usr/include/aarch64-linux-gnu/qt6/QtCore/6.4.2/QtCore -g -O2 -ffile-prefix-map=/build/reproducible-path/calibre-7.10.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -MD -MT CMakeFiles/headless.dir/headless_autogen/mocs_compilation.cpp.o -MF CMakeFiles/headless.dir/headless_autogen/mocs_compilation.cpp.o.d -o CMakeFiles/headless.dir/headless_autogen/mocs_compilation.cpp.o -c /build/reproducible-path/calibre-7.10.0+ds/build/headless/headless_autogen/mocs_compilation.cpp -[ 50%] Building CXX object CMakeFiles/headless.dir/headless_backingstore.cpp.o -[ 66%] Building CXX object CMakeFiles/headless.dir/main.cpp.o +[ 50%] Building CXX object CMakeFiles/headless.dir/main.cpp.o +[ 66%] Building CXX object CMakeFiles/headless.dir/headless_backingstore.cpp.o +/usr/bin/c++ -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NO_DEBUG -Dheadless_EXPORTS -I/build/reproducible-path/calibre-7.10.0+ds/build/headless/headless_autogen/include -isystem /usr/include/aarch64-linux-gnu/qt6/QtGui -isystem /usr/include/aarch64-linux-gnu/qt6 -isystem /usr/include/aarch64-linux-gnu/qt6/QtCore -isystem /usr/lib/aarch64-linux-gnu/qt6/mkspecs/linux-g++ -isystem /usr/include/aarch64-linux-gnu/qt6/QtGui/6.4.2 -isystem /usr/include/aarch64-linux-gnu/qt6/QtGui/6.4.2/QtGui -isystem /usr/include/aarch64-linux-gnu/qt6/QtCore/6.4.2 -isystem /usr/include/aarch64-linux-gnu/qt6/QtCore/6.4.2/QtCore -g -O2 -ffile-prefix-map=/build/reproducible-path/calibre-7.10.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -MD -MT CMakeFiles/headless.dir/main.cpp.o -MF CMakeFiles/headless.dir/main.cpp.o.d -o CMakeFiles/headless.dir/main.cpp.o -c /build/reproducible-path/calibre-7.10.0+ds/src/calibre/headless/main.cpp /usr/bin/c++ -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NO_DEBUG -Dheadless_EXPORTS -I/build/reproducible-path/calibre-7.10.0+ds/build/headless/headless_autogen/include -isystem /usr/include/aarch64-linux-gnu/qt6/QtGui -isystem /usr/include/aarch64-linux-gnu/qt6 -isystem /usr/include/aarch64-linux-gnu/qt6/QtCore -isystem /usr/lib/aarch64-linux-gnu/qt6/mkspecs/linux-g++ -isystem /usr/include/aarch64-linux-gnu/qt6/QtGui/6.4.2 -isystem /usr/include/aarch64-linux-gnu/qt6/QtGui/6.4.2/QtGui -isystem /usr/include/aarch64-linux-gnu/qt6/QtCore/6.4.2 -isystem /usr/include/aarch64-linux-gnu/qt6/QtCore/6.4.2/QtCore -g -O2 -ffile-prefix-map=/build/reproducible-path/calibre-7.10.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -MD -MT CMakeFiles/headless.dir/headless_backingstore.cpp.o -MF CMakeFiles/headless.dir/headless_backingstore.cpp.o.d -o CMakeFiles/headless.dir/headless_backingstore.cpp.o -c /build/reproducible-path/calibre-7.10.0+ds/src/calibre/headless/headless_backingstore.cpp [ 83%] Building CXX object CMakeFiles/headless.dir/headless_integration.cpp.o /usr/bin/c++ -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NO_DEBUG -Dheadless_EXPORTS -I/build/reproducible-path/calibre-7.10.0+ds/build/headless/headless_autogen/include -isystem /usr/include/aarch64-linux-gnu/qt6/QtGui -isystem /usr/include/aarch64-linux-gnu/qt6 -isystem /usr/include/aarch64-linux-gnu/qt6/QtCore -isystem /usr/lib/aarch64-linux-gnu/qt6/mkspecs/linux-g++ -isystem /usr/include/aarch64-linux-gnu/qt6/QtGui/6.4.2 -isystem /usr/include/aarch64-linux-gnu/qt6/QtGui/6.4.2/QtGui -isystem /usr/include/aarch64-linux-gnu/qt6/QtCore/6.4.2 -isystem /usr/include/aarch64-linux-gnu/qt6/QtCore/6.4.2/QtCore -g -O2 -ffile-prefix-map=/build/reproducible-path/calibre-7.10.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -MD -MT CMakeFiles/headless.dir/headless_integration.cpp.o -MF CMakeFiles/headless.dir/headless_integration.cpp.o.d -o CMakeFiles/headless.dir/headless_integration.cpp.o -c /build/reproducible-path/calibre-7.10.0+ds/src/calibre/headless/headless_integration.cpp -/usr/bin/c++ -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NO_DEBUG -Dheadless_EXPORTS -I/build/reproducible-path/calibre-7.10.0+ds/build/headless/headless_autogen/include -isystem /usr/include/aarch64-linux-gnu/qt6/QtGui -isystem /usr/include/aarch64-linux-gnu/qt6 -isystem /usr/include/aarch64-linux-gnu/qt6/QtCore -isystem /usr/lib/aarch64-linux-gnu/qt6/mkspecs/linux-g++ -isystem /usr/include/aarch64-linux-gnu/qt6/QtGui/6.4.2 -isystem /usr/include/aarch64-linux-gnu/qt6/QtGui/6.4.2/QtGui -isystem /usr/include/aarch64-linux-gnu/qt6/QtCore/6.4.2 -isystem /usr/include/aarch64-linux-gnu/qt6/QtCore/6.4.2/QtCore -g -O2 -ffile-prefix-map=/build/reproducible-path/calibre-7.10.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -MD -MT CMakeFiles/headless.dir/main.cpp.o -MF CMakeFiles/headless.dir/main.cpp.o.d -o CMakeFiles/headless.dir/main.cpp.o -c /build/reproducible-path/calibre-7.10.0+ds/src/calibre/headless/main.cpp [100%] Linking CXX shared module libheadless.so /usr/bin/cmake -E cmake_link_script CMakeFiles/headless.dir/link.txt --verbose=1 /usr/bin/c++ -fPIC -g -O2 -ffile-prefix-map=/build/reproducible-path/calibre-7.10.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -Wl,-z,relro -Wl,-z,now -shared -o libheadless.so CMakeFiles/headless.dir/headless_autogen/mocs_compilation.cpp.o CMakeFiles/headless.dir/main.cpp.o CMakeFiles/headless.dir/headless_backingstore.cpp.o CMakeFiles/headless.dir/headless_integration.cpp.o /usr/lib/aarch64-linux-gnu/libQt6Gui.so.6.4.2 /usr/lib/aarch64-linux-gnu/libGLX.so /usr/lib/aarch64-linux-gnu/libOpenGL.so /usr/lib/aarch64-linux-gnu/libxkbcommon.so /usr/lib/aarch64-linux-gnu/libQt6Core.so.6.4.2 @@ -2849,21 +2885,21 @@ make[3]: Leaving directory '/build/reproducible-path/calibre-7.10.0+ds/build/headless' /usr/bin/cmake -E cmake_progress_start /build/reproducible-path/calibre-7.10.0+ds/build/headless/CMakeFiles 0 make[2]: Leaving directory '/build/reproducible-path/calibre-7.10.0+ds/build/headless' -* build took 244.1 seconds +* build took 232.3 seconds python3.11 setup.py liberation_fonts --system-liberation_fonts --path-to-liberation_fonts=/usr/share/fonts/truetype/liberation * * Running liberation_fonts * -* liberation_fonts took 0.7 seconds +* liberation_fonts took 0.0 seconds python3.11 setup.py gui * * Running gui * -No write access to /nonexistent/first-build/.config/calibre using a temporary dir instead +No write access to /nonexistent/second-build/.config/calibre using a temporary dir instead Compiling form /build/reproducible-path/calibre-7.10.0+ds/src/calibre/gui2/filename_pattern.ui Compiling form /build/reproducible-path/calibre-7.10.0+ds/src/calibre/gui2/wizard/stanza.ui Compiling form /build/reproducible-path/calibre-7.10.0+ds/src/calibre/gui2/wizard/send_email.ui @@ -2951,7 +2987,7 @@ Compiled 84 forms Creating icon theme resource file Creating images.qrc -* gui took 5.4 seconds +* gui took 4.5 seconds make[1]: Leaving directory '/build/reproducible-path/calibre-7.10.0+ds' debian/rules override_dh_auto_test make[1]: Entering directory '/build/reproducible-path/calibre-7.10.0+ds' @@ -2974,14 +3010,14 @@ test_human_readable_output (calibre.db.cli.tests.PrintCheckLibraryResultsTest.test_human_readable_output) Basic check of the human-readable output. ... ok [0.0 s] test_prints_nothing_if_no_errors (calibre.db.cli.tests.PrintCheckLibraryResultsTest.test_prints_nothing_if_no_errors) ... ok [0.0 s] -test_import_of_all_python_modules (calibre.utils.run_tests.TestImports.test_import_of_all_python_modules) ... ok [17.9 s] +test_import_of_all_python_modules (calibre.utils.run_tests.TestImports.test_import_of_all_python_modules) ... ok [14.5 s] test_copying_of_trees (calibre.utils.copy_files_test.TestCopyFiles.test_copying_of_trees) ... ok [0.0 s] test_renaming_of_files (calibre.utils.copy_files_test.TestCopyFiles.test_renaming_of_files) ... ok [0.0 s] test_live_cache (calibre.live.find_tests..LiveTest.test_live_cache) ... ok [0.0 s] test_module_loading (calibre.live.find_tests..LiveTest.test_module_loading) ... ok [0.0 s] -test_add_soft_hyphens (calibre.utils.hyphenation.test_hyphenation.TestHyphenation.test_add_soft_hyphens) ... ok [1.9 s] +test_add_soft_hyphens (calibre.utils.hyphenation.test_hyphenation.TestHyphenation.test_add_soft_hyphens) ... ok [1.7 s] test_hyphenate_html (calibre.utils.hyphenation.test_hyphenation.TestHyphenation.test_hyphenate_html) ... ok [0.6 s] -test_locale_to_hyphen_dictionary (calibre.utils.hyphenation.test_hyphenation.TestHyphenation.test_locale_to_hyphen_dictionary) ... ok [0.4 s] +test_locale_to_hyphen_dictionary (calibre.utils.hyphenation.test_hyphenation.TestHyphenation.test_locale_to_hyphen_dictionary) ... ok [0.3 s] test_viewer_cache (calibre.gui2.viewer.convert_book.find_tests..TestViewerCache.test_viewer_cache) ... ok [0.0 s] test_palmdoc_compression (calibre.ebooks.compression.palmdoc.find_tests..Test.test_palmdoc_compression) ... ok [0.0 s] test_comments_to_html (calibre.library.comments.find_tests..Test.test_comments_to_html) ... ok [0.0 s] @@ -2990,11 +3026,11 @@ test_sqp_optimized (calibre.utils.search_query_parser_test.TestSQP.test_sqp_optimized) ... ok [0.0 s] test_sqp_tokenizer (calibre.utils.search_query_parser_test.TestSQP.test_sqp_tokenizer) ... ok [0.0 s] test_sqp_unoptimized (calibre.utils.search_query_parser_test.TestSQP.test_sqp_unoptimized) ... ok [0.0 s] -test_exclusive_file_other_process_clean (calibre.utils.test_lock.IPCLockTest.test_exclusive_file_other_process_clean) ... ok [0.3 s] +test_exclusive_file_other_process_clean (calibre.utils.test_lock.IPCLockTest.test_exclusive_file_other_process_clean) ... ok [0.9 s] test_exclusive_file_other_process_kill (calibre.utils.test_lock.IPCLockTest.test_exclusive_file_other_process_kill) ... ok [0.5 s] test_exclusive_file_same_process (calibre.utils.test_lock.IPCLockTest.test_exclusive_file_same_process) ... ok [0.1 s] -test_single_instance (calibre.utils.test_lock.IPCLockTest.test_single_instance) ... ok [4.3 s] -test_tdir_in_cache_dir (calibre.utils.test_lock.IPCLockTest.test_tdir_in_cache_dir) ... ok [1.1 s] +test_single_instance (calibre.utils.test_lock.IPCLockTest.test_single_instance) ... ok [4.7 s] +test_tdir_in_cache_dir (calibre.utils.test_lock.IPCLockTest.test_tdir_in_cache_dir) ... ok [0.7 s] test_shared_file (calibre.utils.shared_file.find_tests..SharedFileTest.test_shared_file) ... ok [0.0 s] test_author_mapper (calibre.ebooks.metadata.author_mapper.find_tests..TestAuthorMapper.test_author_mapper) ... ok [0.0 s] test_tag_mapper (calibre.ebooks.metadata.tag_mapper.find_tests..TestTagMapper.test_tag_mapper) ... ok [0.0 s] @@ -3019,7 +3055,7 @@ test_merge_annotations (calibre.gui2.viewer.annotations.find_tests..AnnotationsTest.test_merge_annotations) ... ok [0.0 s] test_lxml_unicode_parsing (calibre.utils.xml_parse.find_tests..TestXMLParse.test_lxml_unicode_parsing) ... ok [0.0 s] test_safe_xml_fromstring (calibre.utils.xml_parse.find_tests..TestXMLParse.test_safe_xml_fromstring) ... ok [0.0 s] -test_input_comment_multi (calibre.ebooks.metadata.html.MetadataHtmlTest.test_input_comment_multi) ... ok [0.2 s] +test_input_comment_multi (calibre.ebooks.metadata.html.MetadataHtmlTest.test_input_comment_multi) ... ok [0.1 s] test_input_comment_single (calibre.ebooks.metadata.html.MetadataHtmlTest.test_input_comment_single) ... ok [0.0 s] test_input_meta_multi (calibre.ebooks.metadata.html.MetadataHtmlTest.test_input_meta_multi) ... ok [0.0 s] test_input_meta_single (calibre.ebooks.metadata.html.MetadataHtmlTest.test_input_meta_single) ... ok [0.0 s] @@ -3031,25 +3067,25 @@ test_ordinal_numbers (calibre.utils.smartypants.run_tests..TestSmartypantsAllAttributes.test_ordinal_numbers) ... ok [0.0 s] test_skip_tags (calibre.utils.smartypants.run_tests..TestSmartypantsAllAttributes.test_skip_tags) ... ok [0.0 s] test_break_iterator (calibre.utils.icu_test.TestICU.test_break_iterator) -Test the break iterator ... ok [0.1 s] +Test the break iterator ... ok [0.0 s] test_change_case (calibre.utils.icu_test.TestICU.test_change_case) Test the various ways of changing the case ... ok [0.0 s] test_character_name (calibre.utils.icu_test.TestICU.test_character_name) Test character naming ... ok [0.0 s] test_collation_order (calibre.utils.icu_test.TestICU.test_collation_order) -Testing collation ordering ... ok [0.2 s] +Testing collation ordering ... ok [0.0 s] test_collation_order_for_partitioning (calibre.utils.icu_test.TestICU.test_collation_order_for_partitioning) Testing collation ordering for partitioning ... ok [0.0 s] test_contractions (calibre.utils.icu_test.TestICU.test_contractions) Test contractions ... skipped 'Skipping as this depends too much on ICU version' [0.0 s] test_find (calibre.utils.icu_test.TestICU.test_find) -Test searching for substrings ... ok [0.1 s] -test_remove_accents (calibre.utils.icu_test.TestICU.test_remove_accents) ... ok [0.6 s] +Test searching for substrings ... ok [0.0 s] +test_remove_accents (calibre.utils.icu_test.TestICU.test_remove_accents) ... ok [0.1 s] test_roundtrip (calibre.utils.icu_test.TestICU.test_roundtrip) Test roundtripping ... ok [0.0 s] test_sorting (calibre.utils.icu_test.TestICU.test_sorting) Test the various sorting APIs ... ok [0.0 s] -test_mem_leaks (calibre.utils.matcher.test..Test.test_mem_leaks) ... ok [1.0 s] +test_mem_leaks (calibre.utils.matcher.test..Test.test_mem_leaks) ... ok [1.3 s] test_non_bmp (calibre.utils.matcher.test..Test.test_non_bmp) ... ok [0.0 s] test_cfi_decode (calibre.ebooks.epub.cfi.tests.Tests.test_cfi_decode) ... ok [0.0 s] test_parsing (calibre.ebooks.epub.cfi.tests.Tests.test_parsing) ... ok [0.0 s] @@ -3087,7 +3123,7 @@ test_at_media (tinycss.tests.css21.TestCSS21.test_at_media) ... ok [0.0 s] test_at_page (tinycss.tests.css21.TestCSS21.test_at_page) ... ok [0.0 s] test_at_rules (tinycss.tests.css21.TestCSS21.test_at_rules) ... ok [0.0 s] -test_bytes (tinycss.tests.css21.TestCSS21.test_bytes) ... ok [0.0 s] +test_bytes (tinycss.tests.css21.TestCSS21.test_bytes) ... ok [0.1 s] test_core_parser (tinycss.tests.css21.TestCSS21.test_core_parser) ... ok [0.0 s] test_important (tinycss.tests.css21.TestCSS21.test_important) ... ok [0.0 s] test_parse_style_attr (tinycss.tests.css21.TestCSS21.test_parse_style_attr) ... ok [0.0 s] @@ -3128,17 +3164,17 @@ testSmartUpdate (calibre.ebooks.metadata.opf2.suite..OPFTest.testSmartUpdate) ... ok [0.0 s] testWriting (calibre.ebooks.metadata.opf2.suite..OPFTest.testWriting) ... ok [0.0 s] test_fallback_font_matching (calibre.ebooks.oeb.polish.tests.cascade.CascadeTest.test_fallback_font_matching) ... ok [0.0 s] -test_font_stats (calibre.ebooks.oeb.polish.tests.cascade.CascadeTest.test_font_stats) ... ok [0.6 s] +test_font_stats (calibre.ebooks.oeb.polish.tests.cascade.CascadeTest.test_font_stats) ... ok [0.3 s] test_iterrules (calibre.ebooks.oeb.polish.tests.cascade.CascadeTest.test_iterrules) ... ok [0.1 s] test_remove_property_value (calibre.ebooks.oeb.polish.tests.cascade.CascadeTest.test_remove_property_value) ... ok [0.1 s] -test_resolve_styles (calibre.ebooks.oeb.polish.tests.cascade.CascadeTest.test_resolve_styles) ... ok [1.3 s] +test_resolve_styles (calibre.ebooks.oeb.polish.tests.cascade.CascadeTest.test_resolve_styles) ... ok [0.8 s] test_actual_case (calibre.ebooks.oeb.polish.tests.container.ContainerTests.test_actual_case) Test getting the actual case for files from names on case insensitive filesystems ... Conversion options changed from defaults: - level1_toc: '//h:h2' + cover: '/tmp/calibre_7.10.0_tmp_w120rklp/tvmjhj2ibpt/lt.png' + language: 'en' authors: 'Kovid Goyal' + level1_toc: '//h:h2' verbose: 2 - cover: '/tmp/calibre_7.10.0_tmp__k1b3i0l/ozu0a9t3bpt/lt.png' - language: 'en' Resolved conversion options calibre version: 7.10.0 {'allow_local_files_outside_root': False, @@ -3154,7 +3190,7 @@ "'i')) or @class = 'chapter']", 'chapter_mark': 'pagebreak', 'comments': None, - 'cover': '/tmp/calibre_7.10.0_tmp__k1b3i0l/ozu0a9t3bpt/lt.png', + 'cover': '/tmp/calibre_7.10.0_tmp_w120rklp/tvmjhj2ibpt/lt.png', 'debug_pipeline': None, 'dehyphenate': True, 'delete_blank_paragraphs': True, @@ -3180,7 +3216,7 @@ 'format_scene_breaks': True, 'html_unwrap_factor': 0.4, 'input_encoding': None, - 'input_profile': , + 'input_profile': , 'insert_blank_line': False, 'insert_blank_line_size': 0.5, 'insert_metadata': False, @@ -3205,7 +3241,7 @@ 'no_default_epub_cover': False, 'no_inline_navbars': False, 'no_svg_cover': False, - 'output_profile': , + 'output_profile': , 'page_breaks_before': "//*[name()='h1' or name()='h2']", 'prefer_metadata_cover': False, 'preserve_cover_aspect_ratio': False, @@ -3247,19 +3283,19 @@ 'verbose': 2} 1% Converting input to HTML... InputFormatPlugin: HTML Input running -on /tmp/calibre_7.10.0_tmp__k1b3i0l/ozu0a9t3bpt/index.html +on /tmp/calibre_7.10.0_tmp_w120rklp/tvmjhj2ibpt/index.html Building file list... Found files... - HTMLFile:0:a:'/tmp/calibre_7.10.0_tmp__k1b3i0l/ozu0a9t3bpt/index.html' + HTMLFile:0:a:'/tmp/calibre_7.10.0_tmp_w120rklp/tvmjhj2ibpt/index.html' Normalizing filename cases Rewriting HTML links Parsing index.html ... Initial parse failed, using more forgiving parsers Parsing index.html as HTML -Added /tmp/calibre_7.10.0_tmp__k1b3i0l/ozu0a9t3bpt/marked.png with href: marked.png -Added /tmp/calibre_7.10.0_tmp__k1b3i0l/ozu0a9t3bpt/LiberationMono-Regular.ttf with href: LiberationMono-Regular.ttf -Added /tmp/calibre_7.10.0_tmp__k1b3i0l/ozu0a9t3bpt/LiberationMono-Italic.ttf with href: LiberationMono-Italic.ttf -Added /tmp/calibre_7.10.0_tmp__k1b3i0l/ozu0a9t3bpt/light_wood.png with href: light_wood.png +Added /tmp/calibre_7.10.0_tmp_w120rklp/tvmjhj2ibpt/marked.png with href: marked.png +Added /tmp/calibre_7.10.0_tmp_w120rklp/tvmjhj2ibpt/LiberationMono-Regular.ttf with href: LiberationMono-Regular.ttf +Added /tmp/calibre_7.10.0_tmp_w120rklp/tvmjhj2ibpt/LiberationMono-Italic.ttf with href: LiberationMono-Italic.ttf +Added /tmp/calibre_7.10.0_tmp_w120rklp/tvmjhj2ibpt/light_wood.png with href: light_wood.png 34% Running transforms on e-book... Merging user specified metadata... Detecting structure... @@ -3286,14 +3322,14 @@ Removing anchor from TOC href: index_split_001.html#page2 EPUB output written to /build/reproducible-path/calibre-7.10.0+ds/debian/.debhelper/generated/_source/home/.cache/calibre/polish-test/simple.epub Output saved to /build/reproducible-path/calibre-7.10.0+ds/debian/.debhelper/generated/_source/home/.cache/calibre/polish-test/simple.epub -ok [0.6 s] +ok [0.4 s] test_clone (calibre.ebooks.oeb.polish.tests.container.ContainerTests.test_clone) Test cloning of containers ... Conversion options changed from defaults: level1_toc: '//h:h2' authors: 'Kovid Goyal' - cover: '/tmp/calibre_7.10.0_tmp__k1b3i0l/4aamxgb6bpt/lt.png' - language: 'en' + cover: '/tmp/calibre_7.10.0_tmp_w120rklp/3r02ti9xbpt/lt.png' verbose: 2 + language: 'en' Resolved conversion options calibre version: 7.10.0 {'allow_local_files_outside_root': False, @@ -3309,7 +3345,7 @@ "'i')) or @class = 'chapter']", 'chapter_mark': 'pagebreak', 'comments': None, - 'cover': '/tmp/calibre_7.10.0_tmp__k1b3i0l/4aamxgb6bpt/lt.png', + 'cover': '/tmp/calibre_7.10.0_tmp_w120rklp/3r02ti9xbpt/lt.png', 'debug_pipeline': None, 'dehyphenate': True, 'delete_blank_paragraphs': True, @@ -3329,7 +3365,7 @@ 'format_scene_breaks': True, 'html_unwrap_factor': 0.4, 'input_encoding': None, - 'input_profile': , + 'input_profile': , 'insert_blank_line': False, 'insert_blank_line_size': 0.5, 'insert_metadata': False, @@ -3354,7 +3390,7 @@ 'no_chapters_in_toc': False, 'no_inline_navbars': False, 'no_inline_toc': False, - 'output_profile': , + 'output_profile': , 'page_breaks_before': "//*[name()='h1' or name()='h2']", 'prefer_author_sort': False, 'prefer_metadata_cover': False, @@ -3397,19 +3433,19 @@ 'verbose': 2} 1% Converting input to HTML... InputFormatPlugin: HTML Input running -on /tmp/calibre_7.10.0_tmp__k1b3i0l/4aamxgb6bpt/index.html +on /tmp/calibre_7.10.0_tmp_w120rklp/3r02ti9xbpt/index.html Building file list... Found files... - HTMLFile:0:a:'/tmp/calibre_7.10.0_tmp__k1b3i0l/4aamxgb6bpt/index.html' + HTMLFile:0:a:'/tmp/calibre_7.10.0_tmp_w120rklp/3r02ti9xbpt/index.html' Normalizing filename cases Rewriting HTML links Parsing index.html ... Initial parse failed, using more forgiving parsers Parsing index.html as HTML -Added /tmp/calibre_7.10.0_tmp__k1b3i0l/4aamxgb6bpt/marked.png with href: marked.png -Added /tmp/calibre_7.10.0_tmp__k1b3i0l/4aamxgb6bpt/LiberationMono-Regular.ttf with href: LiberationMono-Regular.ttf -Added /tmp/calibre_7.10.0_tmp__k1b3i0l/4aamxgb6bpt/LiberationMono-Italic.ttf with href: LiberationMono-Italic.ttf -Added /tmp/calibre_7.10.0_tmp__k1b3i0l/4aamxgb6bpt/light_wood.png with href: light_wood.png +Added /tmp/calibre_7.10.0_tmp_w120rklp/3r02ti9xbpt/marked.png with href: marked.png +Added /tmp/calibre_7.10.0_tmp_w120rklp/3r02ti9xbpt/LiberationMono-Regular.ttf with href: LiberationMono-Regular.ttf +Added /tmp/calibre_7.10.0_tmp_w120rklp/3r02ti9xbpt/LiberationMono-Italic.ttf with href: LiberationMono-Italic.ttf +Added /tmp/calibre_7.10.0_tmp_w120rklp/3r02ti9xbpt/light_wood.png with href: light_wood.png 34% Running transforms on e-book... Merging user specified metadata... Detecting structure... @@ -3438,23 +3474,23 @@ Creating indices... AZW3 output written to /build/reproducible-path/calibre-7.10.0+ds/debian/.debhelper/generated/_source/home/.cache/calibre/polish-test/simple.azw3 Output saved to /build/reproducible-path/calibre-7.10.0+ds/debian/.debhelper/generated/_source/home/.cache/calibre/polish-test/simple.azw3 -ok [2.9 s] +ok [3.2 s] test_dir_container (calibre.ebooks.oeb.polish.tests.container.ContainerTests.test_dir_container) ... ok [0.0 s] test_file_add (calibre.ebooks.oeb.polish.tests.container.ContainerTests.test_file_add) Test adding of files ... ok [0.1 s] test_file_removal (calibre.ebooks.oeb.polish.tests.container.ContainerTests.test_file_removal) Test removal of files from the container ... ok [0.0 s] test_file_rename (calibre.ebooks.oeb.polish.tests.container.ContainerTests.test_file_rename) -Test renaming of files ... ok [0.5 s] +Test renaming of files ... ok [0.8 s] test_folder_type_map_case (calibre.ebooks.oeb.polish.tests.container.ContainerTests.test_folder_type_map_case) ... ok [0.0 s] test_merge_file (calibre.ebooks.oeb.polish.tests.container.ContainerTests.test_merge_file) Test merging of files ... ok [0.2 s] test_split_file (calibre.ebooks.oeb.polish.tests.container.ContainerTests.test_split_file) Test splitting of files ... Conversion options changed from defaults: - cover: '/build/reproducible-path/calibre-7.10.0+ds/resources/images/lt.png' - verbose: 2 - authors: 'Kovid Goyal' language: 'en' + authors: 'Kovid Goyal' + verbose: 2 + cover: '/build/reproducible-path/calibre-7.10.0+ds/resources/images/lt.png' level1_toc: '//h:h2' Resolved conversion options calibre version: 7.10.0 @@ -3497,7 +3533,7 @@ 'format_scene_breaks': True, 'html_unwrap_factor': 0.4, 'input_encoding': None, - 'input_profile': , + 'input_profile': , 'insert_blank_line': False, 'insert_blank_line_size': 0.5, 'insert_metadata': False, @@ -3522,7 +3558,7 @@ 'no_default_epub_cover': False, 'no_inline_navbars': False, 'no_svg_cover': False, - 'output_profile': , + 'output_profile': , 'page_breaks_before': "//*[name()='h1' or name()='h2']", 'prefer_metadata_cover': False, 'preserve_cover_aspect_ratio': False, @@ -3596,7 +3632,7 @@ Removing anchor from TOC href: index.html#page1 EPUB output written to /build/reproducible-path/calibre-7.10.0+ds/debian/.debhelper/generated/_source/home/.cache/calibre/polish-test/split.epub Output saved to /build/reproducible-path/calibre-7.10.0+ds/debian/.debhelper/generated/_source/home/.cache/calibre/polish-test/split.epub -ok [0.2 s] +ok [0.3 s] test_conversion_parser (calibre.ebooks.oeb.polish.tests.parsing.ParsingTests.test_conversion_parser) Test parsing with the HTML5 parser used for conversion ... ok [0.0 s] test_lxml_tostring (calibre.ebooks.oeb.polish.tests.parsing.ParsingTests.test_lxml_tostring) @@ -3606,115 +3642,133 @@ test_epub2_covers (calibre.ebooks.oeb.polish.tests.structure.Structure.test_epub2_covers) ... ok [0.0 s] test_epub3_covers (calibre.ebooks.oeb.polish.tests.structure.Structure.test_epub3_covers) ... ok [0.0 s] test_landmarks_detection (calibre.ebooks.oeb.polish.tests.structure.Structure.test_landmarks_detection) ... ok [0.0 s] -test_toc_detection (calibre.ebooks.oeb.polish.tests.structure.Structure.test_toc_detection) ... ok [0.1 s] +test_toc_detection (calibre.ebooks.oeb.polish.tests.structure.Structure.test_toc_detection) ... ok [0.0 s] test_add_books (calibre.db.tests.add_remove.AddRemoveTest.test_add_books) -Test the adding of new books ... ok [1.2 s] +Test the adding of new books ... ok [1.0 s] test_add_format (calibre.db.tests.add_remove.AddRemoveTest.test_add_format) -Test adding formats to an existing book record ... ok [0.9 s] -test_copy_to_library (calibre.db.tests.add_remove.AddRemoveTest.test_copy_to_library) ... ok [1.1 s] +Test adding formats to an existing book record ... ok [1.0 s] +test_copy_to_library (calibre.db.tests.add_remove.AddRemoveTest.test_copy_to_library) ... ok [1.0 s] test_create_book_entry (calibre.db.tests.add_remove.AddRemoveTest.test_create_book_entry) Test the creation of new book entries ... ok [1.1 s] test_format_orphan (calibre.db.tests.add_remove.AddRemoveTest.test_format_orphan) -Test that adding formats does not create orphans if the file name algorithm changes ... ok [1.0 s] -test_merging_extra_files (calibre.db.tests.add_remove.AddRemoveTest.test_merging_extra_files) ... ok [0.7 s] +Test that adding formats does not create orphans if the file name algorithm changes ... ok [1.3 s] +test_merging_extra_files (calibre.db.tests.add_remove.AddRemoveTest.test_merging_extra_files) ... ok [1.3 s] test_original_fmt (calibre.db.tests.add_remove.AddRemoveTest.test_original_fmt) -Test management of original fmt ... ok [0.6 s] +Test management of original fmt ... ok [0.9 s] test_remove_books (calibre.db.tests.add_remove.AddRemoveTest.test_remove_books) -Test removal of books ... ok [0.8 s] +Test removal of books ... ok [1.6 s] test_remove_formats (calibre.db.tests.add_remove.AddRemoveTest.test_remove_formats) -Test removal of formats from book records ... ok [0.6 s] +Test removal of formats from book records ... ok [1.1 s] test_fts_basic (calibre.db.tests.fts.FTSTest.test_fts_basic) ... ok [0.0 s] test_fts_query_syntax (calibre.db.tests.fts.FTSTest.test_fts_query_syntax) ... ok [0.0 s] test_fts_stemming (calibre.db.tests.fts.FTSTest.test_fts_stemming) ... ok [0.0 s] test_fts_tokenize (calibre.db.tests.fts.FTSTest.test_fts_tokenize) ... ok [0.1 s] test_pdftotext (calibre.db.tests.fts.FTSTest.test_pdftotext) ... ok [0.1 s] test_get_property (calibre.db.tests.legacy.LegacyTest.test_get_property) -Test the get_property interface for reading data ... ok [0.9 s] +Test the get_property interface for reading data ... ok [1.2 s] test_legacy_adding_books (calibre.db.tests.legacy.LegacyTest.test_legacy_adding_books) -Test various adding/deleting books methods ... ok [0.8 s] +Test various adding/deleting books methods ... ok [1.3 s] test_legacy_conversion_options (calibre.db.tests.legacy.LegacyTest.test_legacy_conversion_options) -Test conversion options API ... ok [0.4 s] +Test conversion options API ... ok [1.4 s] test_legacy_coverage (calibre.db.tests.legacy.LegacyTest.test_legacy_coverage) -Check that the emulation of the legacy interface is (almost) total ... ok [1.0 s] +Check that the emulation of the legacy interface is (almost) total ... ok [1.5 s] test_legacy_custom (calibre.db.tests.legacy.LegacyTest.test_legacy_custom) Test the legacy API for custom columns ... ok [1.5 s] test_legacy_custom_data (calibre.db.tests.legacy.LegacyTest.test_legacy_custom_data) -Test the API for custom data storage ... ok [0.8 s] +Test the API for custom data storage ... ok [0.6 s] test_legacy_delete_using (calibre.db.tests.legacy.LegacyTest.test_legacy_delete_using) -Test delete_using() API ... ok [0.9 s] +Test delete_using() API ... ok [1.5 s] test_legacy_direct (calibre.db.tests.legacy.LegacyTest.test_legacy_direct) -Test read-only methods that are directly equivalent in the old and new interface ... ok [1.2 s] +Test read-only methods that are directly equivalent in the old and new interface ... ok [0.8 s] test_legacy_getters (calibre.db.tests.legacy.LegacyTest.test_legacy_getters) -Test various functions to get individual bits of metadata ... ok [0.8 s] +Test various functions to get individual bits of metadata ... ok [1.3 s] test_legacy_saved_search (calibre.db.tests.legacy.LegacyTest.test_legacy_saved_search) -Test legacy saved search API ... ok [1.1 s] +Test legacy saved search API ... ok [1.6 s] test_legacy_setters (calibre.db.tests.legacy.LegacyTest.test_legacy_setters) -Test methods that are directly equivalent in the old and new interface ... ok [1.0 s] +Test methods that are directly equivalent in the old and new interface ... ok [2.3 s] test_library_wide_properties (calibre.db.tests.legacy.LegacyTest.test_library_wide_properties) -Test library wide properties ... ok [1.1 s] +Test library wide properties ... ok [1.4 s] test_refresh (calibre.db.tests.legacy.LegacyTest.test_refresh) -Test refreshing the view after a change to metadata.db ... ok [2.1 s] -test_acquire (calibre.db.tests.locking.TestLock.test_acquire) ... ok [2.8 s] -test_contention (calibre.db.tests.locking.TestLock.test_contention) ... ok [2.0 s] +Test refreshing the view after a change to metadata.db ... ok [2.5 s] +test_acquire (calibre.db.tests.locking.TestLock.test_acquire) ... ok [3.1 s] +test_contention (calibre.db.tests.locking.TestLock.test_contention) ... ok [1.8 s] test_downgrade (calibre.db.tests.locking.TestLock.test_downgrade) ... ok [0.9 s] -test_multithread_deadlock (calibre.db.tests.locking.TestLock.test_multithread_deadlock) ... ok [1.1 s] -test_owns_locks (calibre.db.tests.locking.TestLock.test_owns_locks) ... ok [0.9 s] -test_recursive (calibre.db.tests.locking.TestLock.test_recursive) ... ok [1.1 s] +test_multithread_deadlock (calibre.db.tests.locking.TestLock.test_multithread_deadlock) ... ok [1.2 s] +test_owns_locks (calibre.db.tests.locking.TestLock.test_owns_locks) ... ok [0.8 s] +test_recursive (calibre.db.tests.locking.TestLock.test_recursive) ... ok [0.8 s] test_release (calibre.db.tests.locking.TestLock.test_release) ... ok [3.0 s] -test_upgrade (calibre.db.tests.locking.TestLock.test_upgrade) ... ok [1.0 s] -test_notes (calibre.db.tests.notes.NotesTest.test_notes) ... ok [0.6 s] +test_upgrade (calibre.db.tests.locking.TestLock.test_upgrade) ... ok [0.9 s] +test_notes (calibre.db.tests.notes.NotesTest.test_notes) ... ok [1.1 s] test_author_sort_for_authors (calibre.db.tests.reading.ReadingTest.test_author_sort_for_authors) -Test getting the author sort for authors from the db ... ok [0.8 s] +Test getting the author sort for authors from the db ... ok [1.1 s] test_composites (calibre.db.tests.reading.ReadingTest.test_composites) Test sorting and searching in composite columns ... ok [1.2 s] test_datetime (calibre.db.tests.reading.ReadingTest.test_datetime) -Test the reading of datetimes stored in the db ... ok [0.8 s] +Test the reading of datetimes stored in the db ... ok [1.0 s] test_find_identical_books (calibre.db.tests.reading.ReadingTest.test_find_identical_books) -Test find_identical_books ... ok [0.6 s] +Test find_identical_books ... ok [0.9 s] test_get_categories (calibre.db.tests.reading.ReadingTest.test_get_categories) -Check that get_categories() returns the same data for both backends ... ok [0.8 s] +Check that get_categories() returns the same data for both backends ... ok [1.2 s] test_get_cover (calibre.db.tests.reading.ReadingTest.test_get_cover) -Test cover() returns the same data for both backends ... ok [0.7 s] +Test cover() returns the same data for both backends ... ok [1.1 s] test_get_formats (calibre.db.tests.reading.ReadingTest.test_get_formats) -Test reading ebook formats using the format() method ... ok [0.8 s] +Test reading ebook formats using the format() method ... ok [1.2 s] test_get_metadata (calibre.db.tests.reading.ReadingTest.test_get_metadata) -Test get_metadata() returns the same data for both backends ... ok [0.9 s] +Test get_metadata() returns the same data for both backends ... ok [1.0 s] test_get_next_series_num (calibre.db.tests.reading.ReadingTest.test_get_next_series_num) -Test getting the next series number for a series ... ok [0.6 s] +Test getting the next series number for a series ... ok [0.9 s] test_has_book (calibre.db.tests.reading.ReadingTest.test_has_book) Test detecting duplicates ... ok [0.7 s] -test_last_read_positions (calibre.db.tests.reading.ReadingTest.test_last_read_positions) ... ok [0.6 s] +test_last_read_positions (calibre.db.tests.reading.ReadingTest.test_last_read_positions) ... ok [0.5 s] test_marked_field (calibre.db.tests.reading.ReadingTest.test_marked_field) -Test the marked field ... ok [0.8 s] +Test the marked field ... ok [1.2 s] test_proxy_metadata (calibre.db.tests.reading.ReadingTest.test_proxy_metadata) -Test the ProxyMetadata object used for composite columns ... ok [0.7 s] -test_python_templates (calibre.db.tests.reading.ReadingTest.test_python_templates) ... ok [0.7 s] +Test the ProxyMetadata object used for composite columns ... ok [1.4 s] +test_python_templates (calibre.db.tests.reading.ReadingTest.test_python_templates) ... ok [1.4 s] test_read (calibre.db.tests.reading.ReadingTest.test_read) -Test the reading of data from the database ... ok [0.8 s] +Test the reading of data from the database ... ok [1.2 s] test_restrictions (calibre.db.tests.reading.ReadingTest.test_restrictions) -Test searching with and without restrictions ... ok [0.7 s] +Test searching with and without restrictions ... ok [1.3 s] test_search_caching (calibre.db.tests.reading.ReadingTest.test_search_caching) -Test caching of searches ... ok [0.8 s] +Test caching of searches ... ok [1.5 s] test_searching (calibre.db.tests.reading.ReadingTest.test_searching) -Test searching returns the same data for both backends ... ok [0.8 s] -test_serialize_metadata (calibre.db.tests.reading.ReadingTest.test_serialize_metadata) ... ok [0.7 s] +Test searching returns the same data for both backends ... ok [1.0 s] +test_serialize_metadata (calibre.db.tests.reading.ReadingTest.test_serialize_metadata) ... ok [0.8 s] test_sorting (calibre.db.tests.reading.ReadingTest.test_sorting) -Test sorting ... ok [1.0 s] -test_storing_conversion_options (calibre.db.tests.reading.ReadingTest.test_storing_conversion_options) ... ok [0.4 s] -test_template_db_functions (calibre.db.tests.reading.ReadingTest.test_template_db_functions) ... ok [0.5 s] +Test sorting ... ok [0.9 s] +test_storing_conversion_options (calibre.db.tests.reading.ReadingTest.test_storing_conversion_options) ... ok [1.3 s] +test_template_db_functions (calibre.db.tests.reading.ReadingTest.test_template_db_functions) ... ok [1.0 s] test_thumbnail_cache (calibre.db.tests.utils.UtilsTest.test_thumbnail_cache) Test the operation of the thumbnail cache ... ok [0.0 s] -test_export_import (calibre.db.tests.filesystem.FilesystemTest.test_export_import) ... ok [3.7 s] -test_find_books_in_directory (calibre.db.tests.filesystem.FilesystemTest.test_find_books_in_directory) ... ok [0.8 s] +test_export_import (calibre.db.tests.filesystem.FilesystemTest.test_export_import) ... ok [14.4 s] +test_find_books_in_directory (calibre.db.tests.filesystem.FilesystemTest.test_find_books_in_directory) ... ok [1.3 s] test_fname_change (calibre.db.tests.filesystem.FilesystemTest.test_fname_change) -Test the changing of the filename but not the folder name ... ok [0.6 s] +Test the changing of the filename but not the folder name ... ok [1.4 s] test_library_move (calibre.db.tests.filesystem.FilesystemTest.test_library_move) -Test moving of library ... ok [0.5 s] +Test moving of library ... Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +ok [1.0 s] test_long_filenames (calibre.db.tests.filesystem.FilesystemTest.test_long_filenames) -Test long file names ... ok [0.6 s] +Test long file names ... ok [1.1 s] test_metadata_move (calibre.db.tests.filesystem.FilesystemTest.test_metadata_move) -Test the moving of files when title/author change ... ok [0.7 s] -test_rename_of_extra_files (calibre.db.tests.filesystem.FilesystemTest.test_rename_of_extra_files) ... Traceback (most recent call last): +Test the moving of files when title/author change ... ok [1.3 s] +test_rename_of_extra_files (calibre.db.tests.filesystem.FilesystemTest.test_rename_of_extra_files) ... ok [1.4 s] +test_reserved_names (calibre.db.tests.filesystem.FilesystemTest.test_reserved_names) +Test that folders are not created with a windows reserve name ... Traceback (most recent call last): File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available has_more = do_one() ^^^^^^^^ @@ -3730,9 +3784,7 @@ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "src/cursor.c", line 169, in resetcursor apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database -ok [0.8 s] -test_reserved_names (calibre.db.tests.filesystem.FilesystemTest.test_reserved_names) -Test that folders are not created with a windows reserve name ... ok [0.7 s] +ok [1.4 s] test_windows_atomic_move (calibre.db.tests.filesystem.FilesystemTest.test_windows_atomic_move) Test book file open in another process when changing metadata ... skipped 'Windows only' [0.0 s] test_fts_search (calibre.db.tests.fts_api.FTSAPITest.test_fts_search) ... Traceback (most recent call last): @@ -89111,8 +89163,7 @@ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "src/cursor.c", line 169, in resetcursor apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database -ok [13.8 s] -test_fts_to_text (calibre.db.tests.fts_api.FTSAPITest.test_fts_to_text) ... Traceback (most recent call last): +Traceback (most recent call last): File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available has_more = do_one() ^^^^^^^^ @@ -89128,12 +89179,7 @@ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "src/cursor.c", line 169, in resetcursor apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database -ok [0.5 s] -test_fts_triggers (calibre.db.tests.fts_api.FTSAPITest.test_fts_triggers) ... ok [0.6 s] -test_annotations (calibre.db.tests.writing.WritingTest.test_annotations) -Test handling of annotations ... ok [0.7 s] -test_backup (calibre.db.tests.writing.WritingTest.test_backup) -Test the automatic backup of changed metadata ... Traceback (most recent call last): +Traceback (most recent call last): File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available has_more = do_one() ^^^^^^^^ @@ -89149,20 +89195,7 @@ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "src/cursor.c", line 169, in resetcursor apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database -ok [2.9 s] -test_changed_events (calibre.db.tests.writing.WritingTest.test_changed_events) ... ok [0.8 s] -test_composite_cache (calibre.db.tests.writing.WritingTest.test_composite_cache) -Test that the composite field cache is properly invalidated on writes ... ok [0.7 s] -test_conversion_options (calibre.db.tests.writing.WritingTest.test_conversion_options) -Test saving of conversion options ... ok [0.3 s] -test_dirtied (calibre.db.tests.writing.WritingTest.test_dirtied) -Test the setting of the dirtied flag and the last_modified column ... ok [0.3 s] -test_dump_and_restore (calibre.db.tests.writing.WritingTest.test_dump_and_restore) -Test roundtripping the db through SQL ... get_categories: item Unknown is not in authors list! -ok [0.6 s] -test_fix_case_duplicates (calibre.db.tests.writing.WritingTest.test_fix_case_duplicates) -Test fixing of databases that have items in is_many fields that differ only by case ... ok [0.6 s] -test_link_maps (calibre.db.tests.writing.WritingTest.test_link_maps) ... Traceback (most recent call last): +Traceback (most recent call last): File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available has_more = do_one() ^^^^^^^^ @@ -89178,13 +89211,7 @@ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "src/cursor.c", line 169, in resetcursor apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database -ok [0.6 s] -test_many_many_basic (calibre.db.tests.writing.WritingTest.test_many_many_basic) -Test the different code paths for writing to a many-many field ... ok [0.7 s] -test_many_one_basic (calibre.db.tests.writing.WritingTest.test_many_one_basic) -Test the different code paths for writing to a many-one field ... ok [0.4 s] -test_one_one (calibre.db.tests.writing.WritingTest.test_one_one) -Test setting of values in one-one fields ... Traceback (most recent call last): +Traceback (most recent call last): File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available has_more = do_one() ^^^^^^^^ @@ -89200,18 +89227,7 @@ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "src/cursor.c", line 169, in resetcursor apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database -ok [3.5 s] -test_preferences (calibre.db.tests.writing.WritingTest.test_preferences) -Test getting and setting of preferences, especially with mutable objects ... ok [0.4 s] -test_remove_items (calibre.db.tests.writing.WritingTest.test_remove_items) -Test removal of many-(many,one) items ... ok [0.3 s] -test_rename_items (calibre.db.tests.writing.WritingTest.test_rename_items) -Test renaming of many-(many,one) items ... ok [0.8 s] -test_set_author_data (calibre.db.tests.writing.WritingTest.test_set_author_data) ... ok [0.3 s] -test_set_cover (calibre.db.tests.writing.WritingTest.test_set_cover) -Test setting of cover ... ok [0.5 s] -test_set_metadata (calibre.db.tests.writing.WritingTest.test_set_metadata) -Test setting of metadata ... Traceback (most recent call last): +Traceback (most recent call last): File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available has_more = do_one() ^^^^^^^^ @@ -89227,25 +89243,6 @@ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "src/cursor.c", line 169, in resetcursor apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database -ok [1.1 s] -test_ajax_categories (calibre.srv.tests.ajax.ContentTest.test_ajax_categories) -Test /ajax/categories and /ajax/search ... calibre server listening on 127.0.0.1:37619 -ok [0.6 s] -test_srv_add_book (calibre.srv.tests.ajax.ContentTest.test_srv_add_book) ... calibre server listening on 127.0.0.1:43093 -ok [0.7 s] -test_srv_restrictions (calibre.srv.tests.ajax.ContentTest.test_srv_restrictions) -Test that virtual lib. + search restriction works on all end points ... calibre server listening on 127.0.0.1:41817 -ok [1.0 s] -test_android_auth_workaround (calibre.srv.tests.auth.TestAuth.test_android_auth_workaround) -Test authentication workaround for Android ... calibre server listening on 127.0.0.1:46391 -ok [0.3 s] -test_basic_auth (calibre.srv.tests.auth.TestAuth.test_basic_auth) -Test HTTP Basic auth ... calibre server listening on 127.0.0.1:33105 -ok [0.2 s] -test_digest_auth (calibre.srv.tests.auth.TestAuth.test_digest_auth) -Test HTTP Digest auth ... calibre server listening on 127.0.0.1:34589 -ok [0.8 s] -test_fail_ban (calibre.srv.tests.auth.TestAuth.test_fail_ban) ... calibre server listening on 127.0.0.1:36265 Traceback (most recent call last): File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available has_more = do_one() @@ -89262,16 +89259,6 @@ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "src/cursor.c", line 169, in resetcursor apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database -ok [0.6 s] -test_library_restrictions (calibre.srv.tests.auth.TestAuth.test_library_restrictions) ... ok [0.2 s] -test_char_count (calibre.srv.tests.content.ContentTest.test_char_count) ... ok [0.5 s] -test_get (calibre.srv.tests.content.ContentTest.test_get) -Test /get ... calibre server listening on 127.0.0.1:35645 -ok [1.3 s] -test_html_as_json (calibre.srv.tests.content.ContentTest.test_html_as_json) ... ok [0.3 s] -test_last_read_cache (calibre.srv.tests.content.ContentTest.test_last_read_cache) ... ok [0.5 s] -test_static (calibre.srv.tests.content.ContentTest.test_static) -Test serving of static content ... calibre server listening on 127.0.0.1:37549 Traceback (most recent call last): File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available has_more = do_one() @@ -89288,77 +89275,22 @@ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "src/cursor.c", line 169, in resetcursor apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database -ok [0.8 s] -test_basic_css_transforms (calibre.srv.tests.fast_css_transform.TestTransform.test_basic_css_transforms) ... ok [0.0 s] -test_number_parsing (calibre.srv.tests.fast_css_transform.TestTransform.test_number_parsing) ... ok [0.0 s] -test_library_id_construction (calibre.srv.tests.routes.TestRouter.test_library_id_construction) ... ok [0.0 s] -test_route_construction (calibre.srv.tests.routes.TestRouter.test_route_construction) -Test route construction ... ok [0.0 s] -test_route_finding (calibre.srv.tests.routes.TestRouter.test_route_finding) -Test route finding ... ok [0.0 s] -test_websocket_basic (calibre.srv.tests.web_sockets.WebSocketTest.test_websocket_basic) -Test basic interaction with the websocket server ... calibre server listening on 127.0.0.1:42173 -Too large control frame from client -RSV bits set in frame from client -RSV bits set in frame from client -RSV bits set in frame from client -RSV bits set in frame from client -RSV bits set in frame from client -RSV bits set in frame from client -Unknown OPCODE from client: 3 -Unknown OPCODE from client: 4 -Unknown OPCODE from client: 5 -Unknown OPCODE from client: 6 -Unknown OPCODE from client: 7 -Unknown OPCODE from client: 11 -Unknown OPCODE from client: 12 -Unknown OPCODE from client: 13 -Unknown OPCODE from client: 14 -Unknown OPCODE from client: 15 -Fragmented control frame from client -Fragmented control frame from client -Too large control frame from client -Client sent continuation frame with no message to continue -Client sent continuation frame with no message to continue -Client sent continuation frame with no message to continue -Client sent continuation frame with non-zero opcode -Client sent undecodeable UTF-8 -Client sent undecodeable UTF-8 -Client sent undecodeable UTF-8 -Client sent undecodeable UTF-8 -ok [0.4 s] -test_websocket_perf (calibre.srv.tests.web_sockets.WebSocketTest.test_websocket_perf) ... calibre server listening on 127.0.0.1:44419 -ok [1.4 s] -test_accept_encoding (calibre.srv.tests.http.TestHTTP.test_accept_encoding) -Test parsing of Accept-Encoding ... ok [0.0 s] -test_accept_language (calibre.srv.tests.http.TestHTTP.test_accept_language) -Test parsing of Accept-Language ... calibre server listening on 127.0.0.1:40473 -ok [0.3 s] -test_header_parsing (calibre.srv.tests.http.TestHTTP.test_header_parsing) -Test parsing of HTTP headers ... ok [0.0 s] -test_http_basic (calibre.srv.tests.http.TestHTTP.test_http_basic) -Test basic HTTP protocol conformance ... calibre server listening on 127.0.0.1:34555 -Unhandled exception in state: State: _job_done Client: 127.0.0.1:39610 Request: GET /test/ HTTP/1.1 Traceback (most recent call last): - File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/srv/loop.py", line 653, in tick - conn.handle_event(event) - File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/srv/loop.py", line 366, in _job_done - self.job_done(*event) - File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/srv/http_response.py", line 497, in job_done - reraise(etype, e, tb) - File "/build/reproducible-path/calibre-7.10.0+ds/src/polyglot/builtins.py", line 61, in reraise - raise value - File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/srv/pool.py", line 33, in run - result = func() - ^^^^^^ - File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/srv/http_response.py", line 454, in run_request_handler - result = self.request_handler(data) - ^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/srv/tests/http.py", line 203, in - server.change_handler(lambda data:1/0) - ~^~ -ZeroDivisionError: division by zero - + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database Traceback (most recent call last): File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available has_more = do_one() @@ -89599,9 +89531,6 @@ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "src/cursor.c", line 169, in resetcursor apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database -ok [60.4 s] -test_http_response (calibre.srv.tests.http.TestHTTP.test_http_response) -Test HTTP protocol responses ... calibre server listening on 127.0.0.1:45865 Traceback (most recent call last): File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available has_more = do_one() @@ -89618,22 +89547,7 @@ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "src/cursor.c", line 169, in resetcursor apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database -ok [2.4 s] -test_range_parsing (calibre.srv.tests.http.TestHTTP.test_range_parsing) -Test parsing of Range header ... ok [0.0 s] -test_static_generation (calibre.srv.tests.http.TestHTTP.test_static_generation) -Test static generation ... calibre server listening on 127.0.0.1:35331 -ok [0.3 s] -test_bonjour (calibre.srv.tests.loop.LoopTest.test_bonjour) -Test advertising via BonJour ... skipped 'Disabled as it is failing on the build server, need to investigate' [0.0 s] -test_dual_stack (calibre.srv.tests.loop.LoopTest.test_dual_stack) ... calibre server listening on [::]:33639 -ok [0.2 s] -test_fallback_interface (calibre.srv.tests.loop.LoopTest.test_fallback_interface) -Test falling back to default interface ... Failed to bind to 1.1.1.1 with error: No socket could be created -- (('1.1.1.1', 0): [Errno 99] Cannot assign requested address). Trying to bind to the default interface: 127.0.1.1 instead -calibre server listening on 127.0.1.1:45069 -ok [1.1 s] -test_jobs_manager (calibre.srv.tests.loop.LoopTest.test_jobs_manager) -Test the jobs manager ... Traceback (most recent call last): +Traceback (most recent call last): File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available has_more = do_one() ^^^^^^^^ @@ -89649,60 +89563,7 @@ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "src/cursor.c", line 169, in resetcursor apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database -ok [1.7 s] -test_log_rotation (calibre.srv.tests.loop.LoopTest.test_log_rotation) -Test log rotation ... ok [0.0 s] -test_monotonic (calibre.srv.tests.loop.LoopTest.test_monotonic) -Test the monotonic() clock ... ok [0.1 s] -test_plugins (calibre.srv.tests.loop.LoopTest.test_plugins) -Test plugin semantics ... calibre server listening on 127.0.0.1:38417 -ok [0.1 s] -test_ring_buffer (calibre.srv.tests.loop.LoopTest.test_ring_buffer) -Test the ring buffer used for reads ... ok [0.0 s] -test_socket_activation (calibre.srv.tests.loop.LoopTest.test_socket_activation) -Test socket activation ... skipped 'pre_activated_socket not available' [0.0 s] -test_ssl (calibre.srv.tests.loop.LoopTest.test_ssl) -Test serving over SSL ... calibre server listening on 127.0.0.1:39373 -ok [0.9 s] -test_7z (calibre.test_build.BuildTest.test_7z) ... ok [0.8 s] -test_apsw (calibre.test_build.BuildTest.test_apsw) ... ok [0.0 s] -test_bs4 (calibre.test_build.BuildTest.test_bs4) ... ok [0.0 s] -test_certgen (calibre.test_build.BuildTest.test_certgen) ... ok [0.7 s] -test_chardet (calibre.test_build.BuildTest.test_chardet) ... ok [0.1 s] -test_dlls (calibre.test_build.BuildTest.test_dlls) ... skipped 'DLL loading needs testing only on windows (non-continuous integration)' [0.0 s] -test_executables (calibre.test_build.BuildTest.test_executables) ... skipped 'Only makes sense to test executables in frozen builds' [0.0 s] -test_feedparser (calibre.test_build.BuildTest.test_feedparser) ... ok [0.0 s] -test_file_dialog_helper (calibre.test_build.BuildTest.test_file_dialog_helper) ... skipped 'File dialog helper only used on windows (non-continuous-integration)' [0.0 s] -test_fonttools (calibre.test_build.BuildTest.test_fonttools) ... ok [0.0 s] -test_fsevents (calibre.test_build.BuildTest.test_fsevents) ... skipped 'FSEvents only present on OS X' [0.0 s] -test_html2text (calibre.test_build.BuildTest.test_html2text) ... ok [0.0 s] -test_html5_parser (calibre.test_build.BuildTest.test_html5_parser) ... ok [0.0 s] -test_html5lib (calibre.test_build.BuildTest.test_html5lib) ... ok [0.0 s] -test_hunspell (calibre.test_build.BuildTest.test_hunspell) ... ok [0.2 s] -test_imaging (calibre.test_build.BuildTest.test_imaging) ... ok [0.1 s] -test_loaders (calibre.test_build.BuildTest.test_loaders) ... ok [0.0 s] -test_lxml (calibre.test_build.BuildTest.test_lxml) ... ok [0.0 s] -test_lzma (calibre.test_build.BuildTest.test_lzma) ... ok [0.0 s] -test_markdown (calibre.test_build.BuildTest.test_markdown) ... ok [0.1 s] -test_msgpack (calibre.test_build.BuildTest.test_msgpack) ... ok [0.2 s] -test_netifaces (calibre.test_build.BuildTest.test_netifaces) ... ok [0.0 s] -test_openssl (calibre.test_build.BuildTest.test_openssl) ... ok [0.0 s] -test_plugins (calibre.test_build.BuildTest.test_plugins) ... ok [0.0 s] -test_podofo (calibre.test_build.BuildTest.test_podofo) ... ok [0.0 s] -test_psutil (calibre.test_build.BuildTest.test_psutil) ... ok [0.0 s] -test_pychm (calibre.test_build.BuildTest.test_pychm) ... ok [0.0 s] -test_pycryptodome (calibre.test_build.BuildTest.test_pycryptodome) ... ok [0.0 s] -test_regex (calibre.test_build.BuildTest.test_regex) ... ok [0.0 s] -test_speech_dispatcher (calibre.test_build.BuildTest.test_speech_dispatcher) ... ok [0.0 s] -test_sqlite (calibre.test_build.BuildTest.test_sqlite) ... ok [0.0 s] -test_terminal (calibre.test_build.BuildTest.test_terminal) ... ok [0.1 s] -test_tinycss_tokenizer (calibre.test_build.BuildTest.test_tinycss_tokenizer) ... ok [0.0 s] -test_unrar (calibre.test_build.BuildTest.test_unrar) ... skipped 'Module unrardll is missing' [0.0 s] -test_winutil (calibre.test_build.BuildTest.test_winutil) ... skipped 'winutil is windows only' [0.0 s] -test_wpd (calibre.test_build.BuildTest.test_wpd) ... skipped 'WPD is windows only' [0.0 s] -test_zeroconf (calibre.test_build.BuildTest.test_zeroconf) ... ok [0.1 s] -test_zstd (calibre.test_build.BuildTest.test_zstd) ... ok [0.0 s] -test_dictionaries (calibre.spell.dictionary.find_tests..TestDictionaries.test_dictionaries) ... Traceback (most recent call last): +Traceback (most recent call last): File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available has_more = do_one() ^^^^^^^^ @@ -89718,256 +89579,15370 @@ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "src/cursor.c", line 169, in resetcursor apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database -ok [1.4 s] - -Slowest tests: calibre.srv.tests.http.TestHTTP.test_http_basic [60.4 s] calibre.utils.run_tests.TestImports.test_import_of_all_python_modules [17.9 s] calibre.db.tests.fts_api.FTSAPITest.test_fts_search [13.8 s] - ----------------------------------------------------------------------- -Ran 330 tests in 208.823s - -OK (skipped=11) -env LANGUAGE= LC_ALL=C LC_CTYPE=C LC_MESSAGES=C LANG=C TZ=UTC CI=true python3.11 setup.py test --test-name=ajax_book --exclude-test-name=fts_pool --exclude-test-name=workers --exclude-test-name=dbus -::group::test - -* -* Running test -* - -test_ajax_book (calibre.srv.tests.ajax.ContentTest.test_ajax_book) -Test /ajax/book ... calibre server listening on 127.0.0.1:41155 -ok [0.6 s] - ----------------------------------------------------------------------- -Ran 1 test in 0.591s - -OK -env LANGUAGE= LC_ALL=C LC_CTYPE=C LC_MESSAGES=C LANG=C TZ=UTC CI=true python3.11 setup.py test --test-name=workers --exclude-test-name=fts_pool --exclude-test-name=workers --exclude-test-name=dbus -::group::test - -* -* Running test -* - - ----------------------------------------------------------------------- -Ran 0 tests in 0.000s - -OK -env LANGUAGE= LC_ALL=C LC_CTYPE=C LC_MESSAGES=C LANG=C TZ=UTC CI=true python3.11 setup.py test --test-name=qt --exclude-test-name=fts_pool --exclude-test-name=workers --exclude-test-name=dbus -::group::test - -* -* Running test -* - -test_qt (calibre.test_build.BuildTest.test_qt) ... qt.webenginecontext: - -GL Type: disabled -Surface Type: DefaultRenderableType -Surface Profile: NoProfile -Surface Version: 2.0 -QSG RHI Backend: OpenGL -Using Supported QSG Backend: yes -Using Software Dynamic GL: no -Using Multithreaded OpenGL: no - -Init Parameters: - * application-name setup.py - * browser-subprocess-path /usr/lib/qt6/libexec/QtWebEngineProcess - * disable-features ConsolidatedMovementXY,InstalledApp,BackgroundFetch,WebOTP,WebPayments,WebUSB,PictureInPicture - * disable-gpu - * disable-setuid-sandbox - * disable-speech-api - * enable-features NetworkServiceInProcess,TracingServiceInProcess - * enable-threaded-compositing - * in-process-gpu - * use-gl disabled - -No suitable graphics backend found - -ok [4.5 s] - ----------------------------------------------------------------------- -Ran 1 test in 4.509s - -OK -env LANGUAGE= LC_ALL=C LC_CTYPE=C LC_MESSAGES=C LANG=C TZ=UTC CI=true python3.11 setup.py test --test-name=dom_load --exclude-test-name=fts_pool --exclude-test-name=workers --exclude-test-name=dbus -::group::test - -* -* Running test -* - -test_dom_load (calibre.scraper.simple.find_tests..TestSimpleWebEngineScraper.test_dom_load) ... FETCH:{"url": "file:///build/reproducible-path/calibre-7.10.0+ds/resources/templates/new_book.html", "timeout": 60} -No suitable graphics backend found - -load_started: self.is_current_url=True self.requestedUrl()=PyQt6.QtCore.QUrl('file:///build/reproducible-path/calibre-7.10.0+ds/resources/templates/new_book.html') -load_progress: progress=0 self.is_current_url=True -load_progress: progress=70 self.is_current_url=True -domready: self.is_current_url=True -FETCH:{"url": "file:///build/reproducible-path/calibre-7.10.0+ds/resources/templates/new_nav.html", "timeout": 60} -load_progress: progress=100 self.is_current_url=True -load_finished: ok=True self.is_current_url=True -domready: self.is_current_url=True -FETCH:{"url": "file:///does-not-exist.html", "timeout": 60} -load_started: self.is_current_url=True self.requestedUrl()=PyQt6.QtCore.QUrl('file:///does-not-exist.html') -load_progress: progress=0 self.is_current_url=True -Fontconfig error: Cannot load default config file: No such file: (null) -load_progress: progress=80 self.is_current_url=True -load_progress: progress=100 self.is_current_url=True -load_finished: ok=False self.is_current_url=True -EXIT:0 -ok [1.4 s] - ----------------------------------------------------------------------- -Ran 1 test in 1.363s - -OK -make[3]: Leaving directory '/build/reproducible-path/calibre-7.10.0+ds' -make[2]: 'test' is up to date. -make[2]: Leaving directory '/build/reproducible-path/calibre-7.10.0+ds' -make[1]: Leaving directory '/build/reproducible-path/calibre-7.10.0+ds' - create-stamp debian/debhelper-build-stamp - dh_testroot -O--buildsystem=makefile - dh_prep -O--buildsystem=makefile - debian/rules override_dh_auto_install -make[1]: Entering directory '/build/reproducible-path/calibre-7.10.0+ds' -dh_auto_install -O--buildsystem=makefile -- -f debian/calibre-builder.mak install - make -j12 install DESTDIR=/build/reproducible-path/calibre-7.10.0\+ds/debian/tmp AM_UPDATE_INFO_DIR=no "INSTALL=install --strip-program=true" -f debian/calibre-builder.mak install -make[2]: Entering directory '/build/reproducible-path/calibre-7.10.0+ds' -make MAKEFLAGS= -f debian/rules calibre_auto_install -make[3]: Entering directory '/build/reproducible-path/calibre-7.10.0+ds' -mkdir -p debian/tmp/usr/share/icons/hicolor -mkdir -p debian/tmp/usr/share/applications -mkdir -p debian/tmp/usr/share/mime/packages -mkdir -p debian/tmp/usr/share/zsh/vendor-completions -env LANGUAGE= LC_ALL=C LC_CTYPE=C LC_MESSAGES=C LANG=C XDG_DATA_DIRS=/build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/share CALIBRE_CONFIG_DIRECTORY=debian/tmp/config python3.11 setup.py install --root=debian/tmp/usr - -* -* Running build -* - -Building 27 extensions - -####### Building headless QPA plugin ####### -* build took 0.2 seconds - -* -* Running gui -* - -* gui took 0.2 seconds - -* -* Running install -* - -INSTALL paths: - LIB: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/lib/calibre - SHARE: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/share/calibre -Installing code to /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/lib/calibre -Installing resources to /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/share/calibre -Installing binary: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/bin/ebook-device -Installing binary: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/bin/ebook-meta -Installing binary: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/bin/ebook-convert -Installing binary: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/bin/ebook-polish -Installing binary: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/bin/markdown-calibre -Installing binary: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/bin/web2disk -Installing binary: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/bin/calibre-server -Installing binary: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/bin/lrf2lrs -Installing binary: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/bin/lrs2lrf -Installing binary: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/bin/calibre-debug -Installing binary: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/bin/calibredb -Installing binary: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/bin/calibre-parallel -Installing binary: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/bin/calibre-customize -Installing binary: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/bin/calibre-complete -Installing binary: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/bin/fetch-ebook-metadata -Installing binary: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/bin/calibre-smtp -Installing binary: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/bin/calibre -Installing binary: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/bin/lrfviewer -Installing binary: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/bin/ebook-viewer -Installing binary: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/bin/ebook-edit -Installing calibre environment module: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/lib/python3.11/site-packages/init_calibre.py -Setting up command-line completion... -Installing zsh completion to: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/share/zsh/vendor-completions/_calibre -Installing bash completion to: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/share/bash-completion/completions/ -Setting up desktop integration... - - -calibre successfully installed. You can start it by running the command calibre -* install took 24.0 seconds -rm debian/tmp/usr/share/calibre/calibre-portable.* -rm debian/tmp/usr/lib/python*/site-packages/init_calibre.py -rmdir debian/tmp/usr/share/desktop-directories -rm debian/tmp/usr/lib/calibre/calibre/devices/mtp/unix/upstream/update.py -rmdir debian/tmp/usr/lib/calibre/calibre/devices/mtp/unix/upstream/ -rm debian/tmp/usr/lib/calibre/tinycss/tests/*.py -rmdir debian/tmp/usr/lib/calibre/tinycss/tests/ -find debian/tmp/usr/lib/calibre debian/tmp/usr/share/calibre -name '*.py' -print | xargs --no-run-if-empty sed --separate --file=debian/fix-python-shebang.sed --in-place -find debian/tmp/usr/lib/calibre/calibre/gui2 -name '*_ui.py' -print | xargs --no-run-if-empty sed --separate --file=debian/remove-ui-basepath.sed --in-place -make[3]: Leaving directory '/build/reproducible-path/calibre-7.10.0+ds' -make[2]: 'install' is up to date. -make[2]: Leaving directory '/build/reproducible-path/calibre-7.10.0+ds' -make[1]: Leaving directory '/build/reproducible-path/calibre-7.10.0+ds' - debian/rules execute_before_dh_install -make[1]: Entering directory '/build/reproducible-path/calibre-7.10.0+ds' -dh_buildinfo -make[1]: Leaving directory '/build/reproducible-path/calibre-7.10.0+ds' - dh_install -O--buildsystem=makefile - dh_installdocs -O--buildsystem=makefile - dh_installchangelogs -O--buildsystem=makefile - debian/rules override_dh_installman -make[1]: Entering directory '/build/reproducible-path/calibre-7.10.0+ds' -debian/install-manpages.sh -make[1]: Leaving directory '/build/reproducible-path/calibre-7.10.0+ds' - debian/rules override_dh_python3 -make[1]: Entering directory '/build/reproducible-path/calibre-7.10.0+ds' -dh_python3 --no-package=calibre-bin --shebang=/usr/bin/python3.11 -I: dh_python3 tools:113: replacing shebang in debian/calibre/usr/lib/calibre/calibre/devices/cli.py -I: dh_python3 tools:113: replacing shebang in debian/calibre/usr/bin/ebook-edit -I: dh_python3 tools:113: replacing shebang in debian/calibre/usr/bin/ebook-viewer -I: dh_python3 tools:113: replacing shebang in debian/calibre/usr/bin/lrfviewer -I: dh_python3 tools:113: replacing shebang in debian/calibre/usr/bin/calibre -I: dh_python3 tools:113: replacing shebang in debian/calibre/usr/bin/calibre-smtp -I: dh_python3 tools:113: replacing shebang in debian/calibre/usr/bin/fetch-ebook-metadata -I: dh_python3 tools:113: replacing shebang in debian/calibre/usr/bin/calibre-complete -I: dh_python3 tools:113: replacing shebang in debian/calibre/usr/bin/calibre-customize -I: dh_python3 tools:113: replacing shebang in debian/calibre/usr/bin/calibre-parallel -I: dh_python3 tools:113: replacing shebang in debian/calibre/usr/bin/calibredb -I: dh_python3 tools:113: replacing shebang in debian/calibre/usr/bin/calibre-debug -I: dh_python3 tools:113: replacing shebang in debian/calibre/usr/bin/lrs2lrf -I: dh_python3 tools:113: replacing shebang in debian/calibre/usr/bin/lrf2lrs -I: dh_python3 tools:113: replacing shebang in debian/calibre/usr/bin/calibre-server -I: dh_python3 tools:113: replacing shebang in debian/calibre/usr/bin/web2disk -I: dh_python3 tools:113: replacing shebang in debian/calibre/usr/bin/markdown-calibre -I: dh_python3 tools:113: replacing shebang in debian/calibre/usr/bin/ebook-polish -I: dh_python3 tools:113: replacing shebang in debian/calibre/usr/bin/ebook-convert -I: dh_python3 tools:113: replacing shebang in debian/calibre/usr/bin/ebook-meta -I: dh_python3 tools:113: replacing shebang in debian/calibre/usr/bin/ebook-device -make[1]: Leaving directory '/build/reproducible-path/calibre-7.10.0+ds' - dh_installsystemduser -O--buildsystem=makefile - dh_lintian -O--buildsystem=makefile - dh_icons -O--buildsystem=makefile - dh_perl -O--buildsystem=makefile - dh_link -O--buildsystem=makefile - dh_strip_nondeterminism -O--buildsystem=makefile - dh_compress -O--buildsystem=makefile - dh_fixperms -O--buildsystem=makefile - dh_missing -O--buildsystem=makefile - dh_dwz -a -O--buildsystem=makefile - dh_strip -a -O--buildsystem=makefile - dh_makeshlibs -a -O--buildsystem=makefile - dh_shlibdeps -a -O--buildsystem=makefile - dh_installdeb -O--buildsystem=makefile - debian/rules override_dh_gencontrol -make[1]: Entering directory '/build/reproducible-path/calibre-7.10.0+ds' -dh_gencontrol -- -Vpyqt:Version=6.6.1-2+b1 -make[1]: Leaving directory '/build/reproducible-path/calibre-7.10.0+ds' - dh_md5sums -O--buildsystem=makefile - dh_builddeb -O--buildsystem=makefile -dpkg-deb: building package 'calibre-bin' in '../calibre-bin_7.10.0+ds-1_arm64.deb'. -dpkg-deb: building package 'calibre' in '../calibre_7.10.0+ds-1_all.deb'. -dpkg-deb: building package 'calibre-bin-dbgsym' in '../calibre-bin-dbgsym_7.10.0+ds-1_arm64.deb'. +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +ok [48.8 s] +test_fts_to_text (calibre.db.tests.fts_api.FTSAPITest.test_fts_to_text) ... ok [0.9 s] +test_fts_triggers (calibre.db.tests.fts_api.FTSAPITest.test_fts_triggers) ... ok [1.2 s] +test_annotations (calibre.db.tests.writing.WritingTest.test_annotations) +Test handling of annotations ... ok [1.5 s] +test_backup (calibre.db.tests.writing.WritingTest.test_backup) +Test the automatic backup of changed metadata ... Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +ok [3.8 s] +test_changed_events (calibre.db.tests.writing.WritingTest.test_changed_events) ... Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +ok [1.2 s] +test_composite_cache (calibre.db.tests.writing.WritingTest.test_composite_cache) +Test that the composite field cache is properly invalidated on writes ... ok [1.3 s] +test_conversion_options (calibre.db.tests.writing.WritingTest.test_conversion_options) +Test saving of conversion options ... ok [0.9 s] +test_dirtied (calibre.db.tests.writing.WritingTest.test_dirtied) +Test the setting of the dirtied flag and the last_modified column ... ok [0.7 s] +test_dump_and_restore (calibre.db.tests.writing.WritingTest.test_dump_and_restore) +Test roundtripping the db through SQL ... get_categories: item Unknown is not in authors list! +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +ok [1.2 s] +test_fix_case_duplicates (calibre.db.tests.writing.WritingTest.test_fix_case_duplicates) +Test fixing of databases that have items in is_many fields that differ only by case ... ok [1.1 s] +test_link_maps (calibre.db.tests.writing.WritingTest.test_link_maps) ... ok [1.3 s] +test_many_many_basic (calibre.db.tests.writing.WritingTest.test_many_many_basic) +Test the different code paths for writing to a many-many field ... Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +ok [1.5 s] +test_many_one_basic (calibre.db.tests.writing.WritingTest.test_many_one_basic) +Test the different code paths for writing to a many-one field ... ok [1.6 s] +test_one_one (calibre.db.tests.writing.WritingTest.test_one_one) +Test setting of values in one-one fields ... Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +ok [7.9 s] +test_preferences (calibre.db.tests.writing.WritingTest.test_preferences) +Test getting and setting of preferences, especially with mutable objects ... ok [0.8 s] +test_remove_items (calibre.db.tests.writing.WritingTest.test_remove_items) +Test removal of many-(many,one) items ... ok [0.7 s] +test_rename_items (calibre.db.tests.writing.WritingTest.test_rename_items) +Test renaming of many-(many,one) items ... Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +ok [1.1 s] +test_set_author_data (calibre.db.tests.writing.WritingTest.test_set_author_data) ... ok [1.3 s] +test_set_cover (calibre.db.tests.writing.WritingTest.test_set_cover) +Test setting of cover ... ok [1.3 s] +test_set_metadata (calibre.db.tests.writing.WritingTest.test_set_metadata) +Test setting of metadata ... ok [0.8 s] +test_ajax_categories (calibre.srv.tests.ajax.ContentTest.test_ajax_categories) +Test /ajax/categories and /ajax/search ... calibre server listening on 127.0.0.1:36633 +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +ok [1.1 s] +test_srv_add_book (calibre.srv.tests.ajax.ContentTest.test_srv_add_book) ... calibre server listening on 127.0.0.1:35171 +ok [1.2 s] +test_srv_restrictions (calibre.srv.tests.ajax.ContentTest.test_srv_restrictions) +Test that virtual lib. + search restriction works on all end points ... calibre server listening on 127.0.0.1:39111 +ok [1.3 s] +test_android_auth_workaround (calibre.srv.tests.auth.TestAuth.test_android_auth_workaround) +Test authentication workaround for Android ... calibre server listening on 127.0.0.1:34797 +ok [0.3 s] +test_basic_auth (calibre.srv.tests.auth.TestAuth.test_basic_auth) +Test HTTP Basic auth ... calibre server listening on 127.0.0.1:36523 +ok [0.2 s] +test_digest_auth (calibre.srv.tests.auth.TestAuth.test_digest_auth) +Test HTTP Digest auth ... calibre server listening on 127.0.0.1:37097 +ok [0.4 s] +test_fail_ban (calibre.srv.tests.auth.TestAuth.test_fail_ban) ... calibre server listening on 127.0.0.1:46797 +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +ok [0.7 s] +test_library_restrictions (calibre.srv.tests.auth.TestAuth.test_library_restrictions) ... ok [0.1 s] +test_char_count (calibre.srv.tests.content.ContentTest.test_char_count) ... ok [0.5 s] +test_get (calibre.srv.tests.content.ContentTest.test_get) +Test /get ... calibre server listening on 127.0.0.1:40947 +ok [2.1 s] +test_html_as_json (calibre.srv.tests.content.ContentTest.test_html_as_json) ... ok [1.0 s] +test_last_read_cache (calibre.srv.tests.content.ContentTest.test_last_read_cache) ... Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +ok [1.1 s] +test_static (calibre.srv.tests.content.ContentTest.test_static) +Test serving of static content ... calibre server listening on 127.0.0.1:37387 +ok [1.1 s] +test_basic_css_transforms (calibre.srv.tests.fast_css_transform.TestTransform.test_basic_css_transforms) ... ok [0.0 s] +test_number_parsing (calibre.srv.tests.fast_css_transform.TestTransform.test_number_parsing) ... ok [0.0 s] +test_library_id_construction (calibre.srv.tests.routes.TestRouter.test_library_id_construction) ... ok [0.0 s] +test_route_construction (calibre.srv.tests.routes.TestRouter.test_route_construction) +Test route construction ... ok [0.0 s] +test_route_finding (calibre.srv.tests.routes.TestRouter.test_route_finding) +Test route finding ... ok [0.0 s] +test_websocket_basic (calibre.srv.tests.web_sockets.WebSocketTest.test_websocket_basic) +Test basic interaction with the websocket server ... calibre server listening on 127.0.0.1:33343 +Too large control frame from client +RSV bits set in frame from client +RSV bits set in frame from client +RSV bits set in frame from client +RSV bits set in frame from client +RSV bits set in frame from client +RSV bits set in frame from client +Unknown OPCODE from client: 3 +Unknown OPCODE from client: 4 +Unknown OPCODE from client: 5 +Unknown OPCODE from client: 6 +Unknown OPCODE from client: 7 +Unknown OPCODE from client: 11 +Unknown OPCODE from client: 12 +Unknown OPCODE from client: 13 +Unknown OPCODE from client: 14 +Unknown OPCODE from client: 15 +Fragmented control frame from client +Fragmented control frame from client +Too large control frame from client +Client sent continuation frame with no message to continue +Client sent continuation frame with no message to continue +Client sent continuation frame with no message to continue +Client sent continuation frame with non-zero opcode +Client sent undecodeable UTF-8 +Client sent undecodeable UTF-8 +Client sent undecodeable UTF-8 +Client sent undecodeable UTF-8 +ok [0.6 s] +test_websocket_perf (calibre.srv.tests.web_sockets.WebSocketTest.test_websocket_perf) ... calibre server listening on 127.0.0.1:41379 +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +ok [2.0 s] +test_accept_encoding (calibre.srv.tests.http.TestHTTP.test_accept_encoding) +Test parsing of Accept-Encoding ... ok [0.0 s] +test_accept_language (calibre.srv.tests.http.TestHTTP.test_accept_language) +Test parsing of Accept-Language ... calibre server listening on 127.0.0.1:33191 +ok [0.4 s] +test_header_parsing (calibre.srv.tests.http.TestHTTP.test_header_parsing) +Test parsing of HTTP headers ... ok [0.0 s] +test_http_basic (calibre.srv.tests.http.TestHTTP.test_http_basic) +Test basic HTTP protocol conformance ... calibre server listening on 127.0.0.1:37851 +Unhandled exception in state: State: _job_done Client: 127.0.0.1:51530 Request: GET /test/ HTTP/1.1 +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/srv/loop.py", line 653, in tick + conn.handle_event(event) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/srv/loop.py", line 366, in _job_done + self.job_done(*event) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/srv/http_response.py", line 497, in job_done + reraise(etype, e, tb) + File "/build/reproducible-path/calibre-7.10.0+ds/src/polyglot/builtins.py", line 61, in reraise + raise value + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/srv/pool.py", line 33, in run + result = func() + ^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/srv/http_response.py", line 454, in run_request_handler + result = self.request_handler(data) + ^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/srv/tests/http.py", line 203, in + server.change_handler(lambda data:1/0) + ~^~ +ZeroDivisionError: division by zero + +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +ok [60.4 s] +test_http_response (calibre.srv.tests.http.TestHTTP.test_http_response) +Test HTTP protocol responses ... calibre server listening on 127.0.0.1:33907 +ok [0.5 s] +test_range_parsing (calibre.srv.tests.http.TestHTTP.test_range_parsing) +Test parsing of Range header ... ok [0.0 s] +test_static_generation (calibre.srv.tests.http.TestHTTP.test_static_generation) +Test static generation ... calibre server listening on 127.0.0.1:41405 +ok [0.2 s] +test_bonjour (calibre.srv.tests.loop.LoopTest.test_bonjour) +Test advertising via BonJour ... skipped 'Disabled as it is failing on the build server, need to investigate' [0.0 s] +test_dual_stack (calibre.srv.tests.loop.LoopTest.test_dual_stack) ... calibre server listening on [::]:46645 +ok [0.2 s] +test_fallback_interface (calibre.srv.tests.loop.LoopTest.test_fallback_interface) +Test falling back to default interface ... Failed to bind to 1.1.1.1 with error: No socket could be created -- (('1.1.1.1', 0): [Errno 99] Cannot assign requested address). Trying to bind to the default interface: 127.0.1.1 instead +calibre server listening on 127.0.1.1:34453 +ok [1.1 s] +test_jobs_manager (calibre.srv.tests.loop.LoopTest.test_jobs_manager) +Test the jobs manager ... Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +ok [2.0 s] +test_log_rotation (calibre.srv.tests.loop.LoopTest.test_log_rotation) +Test log rotation ... ok [0.0 s] +test_monotonic (calibre.srv.tests.loop.LoopTest.test_monotonic) +Test the monotonic() clock ... ok [0.1 s] +test_plugins (calibre.srv.tests.loop.LoopTest.test_plugins) +Test plugin semantics ... calibre server listening on 127.0.0.1:40099 +ok [0.2 s] +test_ring_buffer (calibre.srv.tests.loop.LoopTest.test_ring_buffer) +Test the ring buffer used for reads ... ok [0.0 s] +test_socket_activation (calibre.srv.tests.loop.LoopTest.test_socket_activation) +Test socket activation ... skipped 'pre_activated_socket not available' [0.0 s] +test_ssl (calibre.srv.tests.loop.LoopTest.test_ssl) +Test serving over SSL ... Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +calibre server listening on 127.0.0.1:33045 +ok [3.8 s] +test_7z (calibre.test_build.BuildTest.test_7z) ... ok [0.5 s] +test_apsw (calibre.test_build.BuildTest.test_apsw) ... ok [0.0 s] +test_bs4 (calibre.test_build.BuildTest.test_bs4) ... ok [0.0 s] +test_certgen (calibre.test_build.BuildTest.test_certgen) ... ok [0.5 s] +test_chardet (calibre.test_build.BuildTest.test_chardet) ... ok [0.0 s] +test_dlls (calibre.test_build.BuildTest.test_dlls) ... skipped 'DLL loading needs testing only on windows (non-continuous integration)' [0.0 s] +test_executables (calibre.test_build.BuildTest.test_executables) ... skipped 'Only makes sense to test executables in frozen builds' [0.0 s] +test_feedparser (calibre.test_build.BuildTest.test_feedparser) ... ok [0.0 s] +test_file_dialog_helper (calibre.test_build.BuildTest.test_file_dialog_helper) ... skipped 'File dialog helper only used on windows (non-continuous-integration)' [0.0 s] +test_fonttools (calibre.test_build.BuildTest.test_fonttools) ... ok [0.0 s] +test_fsevents (calibre.test_build.BuildTest.test_fsevents) ... skipped 'FSEvents only present on OS X' [0.0 s] +test_html2text (calibre.test_build.BuildTest.test_html2text) ... ok [0.0 s] +test_html5_parser (calibre.test_build.BuildTest.test_html5_parser) ... ok [0.0 s] +test_html5lib (calibre.test_build.BuildTest.test_html5lib) ... ok [0.0 s] +test_hunspell (calibre.test_build.BuildTest.test_hunspell) ... ok [0.1 s] +test_imaging (calibre.test_build.BuildTest.test_imaging) ... ok [0.1 s] +test_loaders (calibre.test_build.BuildTest.test_loaders) ... ok [0.0 s] +test_lxml (calibre.test_build.BuildTest.test_lxml) ... ok [0.0 s] +test_lzma (calibre.test_build.BuildTest.test_lzma) ... ok [0.0 s] +test_markdown (calibre.test_build.BuildTest.test_markdown) ... ok [0.1 s] +test_msgpack (calibre.test_build.BuildTest.test_msgpack) ... ok [0.2 s] +test_netifaces (calibre.test_build.BuildTest.test_netifaces) ... ok [0.0 s] +test_openssl (calibre.test_build.BuildTest.test_openssl) ... ok [0.0 s] +test_plugins (calibre.test_build.BuildTest.test_plugins) ... ok [0.0 s] +test_podofo (calibre.test_build.BuildTest.test_podofo) ... ok [0.0 s] +test_psutil (calibre.test_build.BuildTest.test_psutil) ... ok [0.0 s] +test_pychm (calibre.test_build.BuildTest.test_pychm) ... ok [0.0 s] +test_pycryptodome (calibre.test_build.BuildTest.test_pycryptodome) ... ok [0.0 s] +test_regex (calibre.test_build.BuildTest.test_regex) ... ok [0.0 s] +test_speech_dispatcher (calibre.test_build.BuildTest.test_speech_dispatcher) ... ok [0.0 s] +test_sqlite (calibre.test_build.BuildTest.test_sqlite) ... ok [0.0 s] +test_terminal (calibre.test_build.BuildTest.test_terminal) ... ok [0.1 s] +test_tinycss_tokenizer (calibre.test_build.BuildTest.test_tinycss_tokenizer) ... ok [0.0 s] +test_unrar (calibre.test_build.BuildTest.test_unrar) ... skipped 'Module unrardll is missing' [0.0 s] +test_winutil (calibre.test_build.BuildTest.test_winutil) ... skipped 'winutil is windows only' [0.0 s] +test_wpd (calibre.test_build.BuildTest.test_wpd) ... skipped 'WPD is windows only' [0.0 s] +test_zeroconf (calibre.test_build.BuildTest.test_zeroconf) ... ok [0.1 s] +test_zstd (calibre.test_build.BuildTest.test_zstd) ... ok [0.0 s] +test_dictionaries (calibre.spell.dictionary.find_tests..TestDictionaries.test_dictionaries) ... Traceback (most recent call last): + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + ^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 1101, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + File "/build/reproducible-path/calibre-7.10.0+ds/src/calibre/db/backend.py", line 414, in execute + return cursor.execute(sql, bindings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src/cursor.c", line 169, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +ok [1.6 s] + +Slowest tests: calibre.srv.tests.http.TestHTTP.test_http_basic [60.4 s] calibre.db.tests.fts_api.FTSAPITest.test_fts_search [48.8 s] calibre.utils.run_tests.TestImports.test_import_of_all_python_modules [14.5 s] + +---------------------------------------------------------------------- +Ran 330 tests in 290.816s + +OK (skipped=11) +env LANGUAGE= LC_ALL=C LC_CTYPE=C LC_MESSAGES=C LANG=C TZ=UTC CI=true python3.11 setup.py test --test-name=ajax_book --exclude-test-name=fts_pool --exclude-test-name=workers --exclude-test-name=dbus +::group::test + +* +* Running test +* + +test_ajax_book (calibre.srv.tests.ajax.ContentTest.test_ajax_book) +Test /ajax/book ... calibre server listening on 127.0.0.1:39651 +ok [0.9 s] + +---------------------------------------------------------------------- +Ran 1 test in 0.883s + +OK +env LANGUAGE= LC_ALL=C LC_CTYPE=C LC_MESSAGES=C LANG=C TZ=UTC CI=true python3.11 setup.py test --test-name=workers --exclude-test-name=fts_pool --exclude-test-name=workers --exclude-test-name=dbus +::group::test + +* +* Running test +* + + +---------------------------------------------------------------------- +Ran 0 tests in 0.000s + +OK +env LANGUAGE= LC_ALL=C LC_CTYPE=C LC_MESSAGES=C LANG=C TZ=UTC CI=true python3.11 setup.py test --test-name=qt --exclude-test-name=fts_pool --exclude-test-name=workers --exclude-test-name=dbus +::group::test + +* +* Running test +* + +test_qt (calibre.test_build.BuildTest.test_qt) ... qt.webenginecontext: + +GL Type: disabled +Surface Type: DefaultRenderableType +Surface Profile: NoProfile +Surface Version: 2.0 +QSG RHI Backend: OpenGL +Using Supported QSG Backend: yes +Using Software Dynamic GL: no +Using Multithreaded OpenGL: no + +Init Parameters: + * application-name setup.py + * browser-subprocess-path /usr/lib/qt6/libexec/QtWebEngineProcess + * disable-features ConsolidatedMovementXY,InstalledApp,BackgroundFetch,WebOTP,WebPayments,WebUSB,PictureInPicture + * disable-gpu + * disable-setuid-sandbox + * disable-speech-api + * enable-features NetworkServiceInProcess,TracingServiceInProcess + * enable-threaded-compositing + * in-process-gpu + * use-gl disabled + +No suitable graphics backend found + +ok [10.8 s] + +---------------------------------------------------------------------- +Ran 1 test in 10.771s + +OK +env LANGUAGE= LC_ALL=C LC_CTYPE=C LC_MESSAGES=C LANG=C TZ=UTC CI=true python3.11 setup.py test --test-name=dom_load --exclude-test-name=fts_pool --exclude-test-name=workers --exclude-test-name=dbus +::group::test + +* +* Running test +* + +test_dom_load (calibre.scraper.simple.find_tests..TestSimpleWebEngineScraper.test_dom_load) ... FETCH:{"url": "file:///build/reproducible-path/calibre-7.10.0+ds/resources/templates/new_book.html", "timeout": 60} +No suitable graphics backend found + +load_started: self.is_current_url=True self.requestedUrl()=PyQt6.QtCore.QUrl('file:///build/reproducible-path/calibre-7.10.0+ds/resources/templates/new_book.html') +load_progress: progress=0 self.is_current_url=True +load_progress: progress=70 self.is_current_url=True +domready: self.is_current_url=True +FETCH:{"url": "file:///build/reproducible-path/calibre-7.10.0+ds/resources/templates/new_nav.html", "timeout": 60} +domready: self.is_current_url=True +FETCH:{"url": "file:///does-not-exist.html", "timeout": 60} +Fontconfig error: Cannot load default config file: No such file: (null) +load_progress: progress=100 self.is_current_url=True +load_finished: ok=False self.is_current_url=True +EXIT:0 +ok [2.5 s] + +---------------------------------------------------------------------- +Ran 1 test in 2.532s + +OK +make[3]: Leaving directory '/build/reproducible-path/calibre-7.10.0+ds' +make[2]: 'test' is up to date. +make[2]: Leaving directory '/build/reproducible-path/calibre-7.10.0+ds' +make[1]: Leaving directory '/build/reproducible-path/calibre-7.10.0+ds' + create-stamp debian/debhelper-build-stamp + dh_testroot -O--buildsystem=makefile + dh_prep -O--buildsystem=makefile + debian/rules override_dh_auto_install +make[1]: Entering directory '/build/reproducible-path/calibre-7.10.0+ds' +dh_auto_install -O--buildsystem=makefile -- -f debian/calibre-builder.mak install + make -j12 install DESTDIR=/build/reproducible-path/calibre-7.10.0\+ds/debian/tmp AM_UPDATE_INFO_DIR=no "INSTALL=install --strip-program=true" -f debian/calibre-builder.mak install +make[2]: Entering directory '/build/reproducible-path/calibre-7.10.0+ds' +make MAKEFLAGS= -f debian/rules calibre_auto_install +make[3]: Entering directory '/build/reproducible-path/calibre-7.10.0+ds' +mkdir -p debian/tmp/usr/share/icons/hicolor +mkdir -p debian/tmp/usr/share/applications +mkdir -p debian/tmp/usr/share/mime/packages +mkdir -p debian/tmp/usr/share/zsh/vendor-completions +env LANGUAGE= LC_ALL=C LC_CTYPE=C LC_MESSAGES=C LANG=C XDG_DATA_DIRS=/build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/share CALIBRE_CONFIG_DIRECTORY=debian/tmp/config python3.11 setup.py install --root=debian/tmp/usr + +* +* Running build +* + +Building 27 extensions + +####### Building headless QPA plugin ####### +* build took 0.3 seconds + +* +* Running gui +* + +* gui took 0.2 seconds + +* +* Running install +* + +INSTALL paths: + LIB: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/lib/calibre + SHARE: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/share/calibre +Installing code to /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/lib/calibre +Installing resources to /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/share/calibre +Installing binary: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/bin/ebook-device +Installing binary: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/bin/ebook-meta +Installing binary: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/bin/ebook-convert +Installing binary: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/bin/ebook-polish +Installing binary: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/bin/markdown-calibre +Installing binary: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/bin/web2disk +Installing binary: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/bin/calibre-server +Installing binary: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/bin/lrf2lrs +Installing binary: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/bin/lrs2lrf +Installing binary: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/bin/calibre-debug +Installing binary: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/bin/calibredb +Installing binary: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/bin/calibre-parallel +Installing binary: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/bin/calibre-customize +Installing binary: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/bin/calibre-complete +Installing binary: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/bin/fetch-ebook-metadata +Installing binary: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/bin/calibre-smtp +Installing binary: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/bin/calibre +Installing binary: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/bin/lrfviewer +Installing binary: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/bin/ebook-viewer +Installing binary: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/bin/ebook-edit +Installing calibre environment module: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/lib/python3.11/site-packages/init_calibre.py +Setting up command-line completion... +Installing zsh completion to: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/share/zsh/vendor-completions/_calibre +Installing bash completion to: /build/reproducible-path/calibre-7.10.0+ds/debian/tmp/usr/share/bash-completion/completions/ +Setting up desktop integration... + + +calibre successfully installed. You can start it by running the command calibre +* install took 36.9 seconds +rm debian/tmp/usr/share/calibre/calibre-portable.* +rm debian/tmp/usr/lib/python*/site-packages/init_calibre.py +rmdir debian/tmp/usr/share/desktop-directories +rm debian/tmp/usr/lib/calibre/calibre/devices/mtp/unix/upstream/update.py +rmdir debian/tmp/usr/lib/calibre/calibre/devices/mtp/unix/upstream/ +rm debian/tmp/usr/lib/calibre/tinycss/tests/*.py +rmdir debian/tmp/usr/lib/calibre/tinycss/tests/ +find debian/tmp/usr/lib/calibre debian/tmp/usr/share/calibre -name '*.py' -print | xargs --no-run-if-empty sed --separate --file=debian/fix-python-shebang.sed --in-place +find debian/tmp/usr/lib/calibre/calibre/gui2 -name '*_ui.py' -print | xargs --no-run-if-empty sed --separate --file=debian/remove-ui-basepath.sed --in-place +make[3]: Leaving directory '/build/reproducible-path/calibre-7.10.0+ds' +make[2]: 'install' is up to date. +make[2]: Leaving directory '/build/reproducible-path/calibre-7.10.0+ds' +make[1]: Leaving directory '/build/reproducible-path/calibre-7.10.0+ds' + debian/rules execute_before_dh_install +make[1]: Entering directory '/build/reproducible-path/calibre-7.10.0+ds' +dh_buildinfo +make[1]: Leaving directory '/build/reproducible-path/calibre-7.10.0+ds' + dh_install -O--buildsystem=makefile + dh_installdocs -O--buildsystem=makefile + dh_installchangelogs -O--buildsystem=makefile + debian/rules override_dh_installman +make[1]: Entering directory '/build/reproducible-path/calibre-7.10.0+ds' +debian/install-manpages.sh +make[1]: Leaving directory '/build/reproducible-path/calibre-7.10.0+ds' + debian/rules override_dh_python3 +make[1]: Entering directory '/build/reproducible-path/calibre-7.10.0+ds' +dh_python3 --no-package=calibre-bin --shebang=/usr/bin/python3.11 +I: dh_python3 tools:113: replacing shebang in debian/calibre/usr/lib/calibre/calibre/devices/cli.py +I: dh_python3 tools:113: replacing shebang in debian/calibre/usr/bin/ebook-edit +I: dh_python3 tools:113: replacing shebang in debian/calibre/usr/bin/ebook-viewer +I: dh_python3 tools:113: replacing shebang in debian/calibre/usr/bin/lrfviewer +I: dh_python3 tools:113: replacing shebang in debian/calibre/usr/bin/calibre +I: dh_python3 tools:113: replacing shebang in debian/calibre/usr/bin/calibre-smtp +I: dh_python3 tools:113: replacing shebang in debian/calibre/usr/bin/fetch-ebook-metadata +I: dh_python3 tools:113: replacing shebang in debian/calibre/usr/bin/calibre-complete +I: dh_python3 tools:113: replacing shebang in debian/calibre/usr/bin/calibre-customize +I: dh_python3 tools:113: replacing shebang in debian/calibre/usr/bin/calibre-parallel +I: dh_python3 tools:113: replacing shebang in debian/calibre/usr/bin/calibredb +I: dh_python3 tools:113: replacing shebang in debian/calibre/usr/bin/calibre-debug +I: dh_python3 tools:113: replacing shebang in debian/calibre/usr/bin/lrs2lrf +I: dh_python3 tools:113: replacing shebang in debian/calibre/usr/bin/lrf2lrs +I: dh_python3 tools:113: replacing shebang in debian/calibre/usr/bin/calibre-server +I: dh_python3 tools:113: replacing shebang in debian/calibre/usr/bin/web2disk +I: dh_python3 tools:113: replacing shebang in debian/calibre/usr/bin/markdown-calibre +I: dh_python3 tools:113: replacing shebang in debian/calibre/usr/bin/ebook-polish +I: dh_python3 tools:113: replacing shebang in debian/calibre/usr/bin/ebook-convert +I: dh_python3 tools:113: replacing shebang in debian/calibre/usr/bin/ebook-meta +I: dh_python3 tools:113: replacing shebang in debian/calibre/usr/bin/ebook-device +make[1]: Leaving directory '/build/reproducible-path/calibre-7.10.0+ds' + dh_installsystemduser -O--buildsystem=makefile + dh_lintian -O--buildsystem=makefile + dh_icons -O--buildsystem=makefile + dh_perl -O--buildsystem=makefile + dh_link -O--buildsystem=makefile + dh_strip_nondeterminism -O--buildsystem=makefile + dh_compress -O--buildsystem=makefile + dh_fixperms -O--buildsystem=makefile + dh_missing -O--buildsystem=makefile + dh_dwz -a -O--buildsystem=makefile + dh_strip -a -O--buildsystem=makefile + dh_makeshlibs -a -O--buildsystem=makefile + dh_shlibdeps -a -O--buildsystem=makefile + dh_installdeb -O--buildsystem=makefile + debian/rules override_dh_gencontrol +make[1]: Entering directory '/build/reproducible-path/calibre-7.10.0+ds' +dh_gencontrol -- -Vpyqt:Version=6.6.1-2+b1 +make[1]: Leaving directory '/build/reproducible-path/calibre-7.10.0+ds' + dh_md5sums -O--buildsystem=makefile + dh_builddeb -O--buildsystem=makefile +dpkg-deb: building package 'calibre' in '../calibre_7.10.0+ds-1_all.deb'. +dpkg-deb: building package 'calibre-bin-dbgsym' in '../calibre-bin-dbgsym_7.10.0+ds-1_arm64.deb'. +dpkg-deb: building package 'calibre-bin' in '../calibre-bin_7.10.0+ds-1_arm64.deb'. dpkg-genbuildinfo --build=binary -O../calibre_7.10.0+ds-1_arm64.buildinfo dpkg-genchanges --build=binary -O../calibre_7.10.0+ds-1_arm64.changes dpkg-genchanges: info: binary-only upload (no source code included) @@ -89975,12 +104950,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: including full source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/3731387/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/3731387/tmp/hooks/B01_cleanup finished I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env -I: removing directory /srv/workspace/pbuilder/588056 and its subdirectories -I: Current time: Fri May 3 13:52:45 -12 2024 -I: pbuilder-time-stamp: 1714787565 +I: removing directory /srv/workspace/pbuilder/3731387 and its subdirectories +I: Current time: Sat May 4 16:12:07 +14 2024 +I: pbuilder-time-stamp: 1714788727